summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustin M. Forbes <jforbes@fedoraproject.org>2020-08-04 17:00:01 -0500
committerJustin M. Forbes <jforbes@fedoraproject.org>2020-08-04 17:00:01 -0500
commit9ab9ea2db0b13375d3d7114d5c82eb298a118740 (patch)
treeeb4615cacf3e4ee8bd71c2522241011baa6c56fe
parentbf5b588422a50d970ea8660d368cc6cdd2c377c9 (diff)
downloadkernel-9ab9ea2db0b13375d3d7114d5c82eb298a118740.tar.gz
kernel-9ab9ea2db0b13375d3d7114d5c82eb298a118740.tar.xz
kernel-9ab9ea2db0b13375d3d7114d5c82eb298a118740.zip
Linux v5.8 rebase
Signed-off-by: Justin M. Forbes <jforbes@fedoraproject.org>
-rw-r--r--0001-ACPI-APEI-arm64-Ignore-broken-HPE-moonshot-APEI-supp.patch2
-rw-r--r--0001-ARM-tegra-usb-no-reset.patch2
-rw-r--r--0001-Add-efi_status_to_str-and-rework-efi_status_to_err.patch10
-rw-r--r--0001-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch4
-rw-r--r--0001-Drop-that-for-now.patch4
-rw-r--r--0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch209
-rw-r--r--0001-PCI-brcmstb-Wait-for-Raspberry-Pi-s-firmware-when-pr.patch57
-rw-r--r--0001-PCI-tegra-Revert-raw_violation_fixup-for-tegra124.patch65
-rw-r--r--0001-Rename-RH_DISABLE_DEPRECATED-to-RHEL_DIFFERENCES.patch81
-rw-r--r--0001-Revert-arm64-allwinner-dts-a64-add-LCD-related-devic.patch76
-rw-r--r--0001-Revert-drm-panel-add-Xingbangda-XBD599-panel.patch418
-rw-r--r--0001-Revert-drm-sun4i-sun6i_mipi_dsi-fix-horizontal-timin.patch56
-rw-r--r--0001-Revert-dt-bindings-panel-add-binding-for-Xingbangda-.patch71
-rw-r--r--0001-USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch72
-rw-r--r--0001-Vulcan-AHCI-PCI-bar-fix-for-Broadcom-Vulcan-early-si.patch4
-rw-r--r--0001-Work-around-for-gcc-bug-https-gcc.gnu.org-bugzilla-s.patch29
-rw-r--r--0001-aarch64-acpi-scan-Fix-regression-related-to-X-Gene-U.patch4
-rw-r--r--0001-acpi-prefer-booting-with-ACPI-over-DTS.patch56
-rw-r--r--0001-acr-Use-kmemdup-instead-of-kmalloc-and-memcpy.patch55
-rw-r--r--0001-arm-aarch64-Drop-the-EXPERT-setting-from-ARM64_FORCE.patch4
-rw-r--r--0001-arm-make-CONFIG_HIGHPTE-optional-without-CONFIG_EXPE.patch4
-rw-r--r--0001-arm64-allwinner-dts-a64-add-LCD-related-device-nodes.patch81
-rw-r--r--0001-arm64-dts-sun50i-a64-pinephone-Add-touchscreen-suppo.patch (renamed from 0013-arm64-dts-sun50i-a64-pinephone-Add-touchscreen-suppo.patch)11
-rw-r--r--0001-arm64-dts-sun50i-a64-pinephone-Enable-LCD-support-on.patch (renamed from 0012-arm64-dts-sun50i-a64-pinephone-Enable-LCD-support-on.patch)16
-rw-r--r--0001-core-memory-remove-redundant-assignments-to-variable.patch32
-rw-r--r--0001-device-detect-if-changing-endianness-failed.patch62
-rw-r--r--0001-device-detect-vGPUs.patch59
-rw-r--r--0001-device-rework-mmio-mapping-code-to-get-rid-of-second.patch84
-rw-r--r--0001-device-use-regular-PRI-accessors-in-chipset-detectio.patch113
-rw-r--r--0001-disp-gv100-expose-capabilities-class.patch149
-rw-r--r--0001-disp-hda-gf119-add-HAL-for-programming-device-entry-.patch146
-rw-r--r--0001-disp-hda-gf119-select-HDA-device-entry-based-on-boun.patch49
-rw-r--r--0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch83
-rw-r--r--0001-disp-hda-gv100-NV_PDISP_SF_AUDIO_CNTRL0-register-mov.patch105
-rw-r--r--0001-disp-nv50-increase-timeout-on-pio-channel-free-polli.patch26
-rw-r--r--0001-drm-Use-generic-helper-to-check-_PR3-presence.patch96
-rw-r--r--0001-drm-panel-add-Xingbangda-XBD599-panel.patch423
-rw-r--r--0001-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch948
-rw-r--r--0001-drm-panel-st7703-Add-support-for-Xingbangda-XBD599.patch (renamed from 0009-drm-panel-st7703-Add-support-for-Xingbangda-XBD599.patch)12
-rw-r--r--0001-drm-panel-st7703-Assert-reset-prior-to-powering-down.patch (renamed from 0011-drm-panel-st7703-Assert-reset-prior-to-powering-down.patch)10
-rw-r--r--0001-drm-panel-st7703-Enter-sleep-after-display-off.patch (renamed from 0010-drm-panel-st7703-Enter-sleep-after-display-off.patch)10
-rw-r--r--0001-drm-panel-st7703-Move-code-specific-to-jh057n-closer.patch (renamed from 0007-drm-panel-st7703-Move-code-specific-to-jh057n-closer.patch)10
-rw-r--r--0001-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch (renamed from 0008-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch)20
-rw-r--r--0001-drm-panel-st7703-Prepare-for-supporting-multiple-pan.patch (renamed from 0006-drm-panel-st7703-Prepare-for-supporting-multiple-pan.patch)35
-rw-r--r--0001-drm-panel-st7703-Rename-functions-from-jh057n-prefix.patch (renamed from 0005-drm-panel-st7703-Rename-functions-from-jh057n-prefix.patch)84
-rw-r--r--0001-drm-sun4i-sun6i_mipi_dsi-fix-horizontal-timing-calcu.patch59
-rw-r--r--0001-dt-bindings-panel-Add-compatible-for-Xingbangda-XBD5.patch (renamed from 0003-dt-bindings-panel-Add-compatible-for-Xingbangda-XBD5.patch)12
-rw-r--r--0001-dt-bindings-panel-Convert-rocktech-jh057n00900-to-ya.patch (renamed from 0002-dt-bindings-panel-Convert-rocktech-jh057n00900-to-ya.patch)9
-rw-r--r--0001-dt-bindings-panel-add-binding-for-Xingbangda-XBD599-.patch74
-rw-r--r--0001-dt-bindings-vendor-prefixes-Add-Xingbangda.patch8
-rw-r--r--0001-e1000e-bump-up-timeout-to-wait-when-ME-un-configure-.patch4
-rw-r--r--0001-efi-Add-an-EFI_SECURE_BOOT-flag-to-indicate-secure-b.patch161
-rw-r--r--0001-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch4
-rw-r--r--0001-firmware-raspberrypi-Introduce-vl805-init-routine.patch110
-rw-r--r--0001-iommu-arm-smmu-workaround-DMA-mode-issues.patch4
-rw-r--r--0001-ipmi-do-not-configure-ipmi-for-HPE-m400.patch6
-rw-r--r--0001-kABI-Add-generic-kABI-macros-to-use-for-kABI-workaro.patch214
-rw-r--r--0001-kdump-add-support-for-crashkernel-auto.patch2
-rw-r--r--0001-kms-gv100-Add-support-for-interlaced-modes.patch64
-rw-r--r--0001-kms-nv50-Initialize-core-channel-in-nouveau_display_.patch47
-rw-r--r--0001-kms-nv50-Move-8BPC-limit-for-MST-into-nv50_mstc_get_.patch65
-rw-r--r--0001-kms-nv50-Probe-SOR-and-PIOR-caps-for-DP-interlacing-.patch439
-rw-r--r--0001-kms-nv50-Share-DP-SST-mode_valid-handling-with-MST.patch209
-rw-r--r--0001-mmu-Remove-unneeded-semicolon.patch47
-rw-r--r--0001-modules-add-rhelversion-MODULE_INFO-tag.patch151
-rw-r--r--0001-perf-cs-etm-Move-defined-of-traceid_list.patch58
-rw-r--r--0001-platform-x86-thinkpad_acpi-Add-support-for-dual-fan-.patch136
-rw-r--r--0001-s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch12
-rw-r--r--0001-security-lockdown-expose-a-hook-to-lock-the-kernel-d.patch22
-rw-r--r--0001-selinux-allow-reading-labels-before-policy-is-loaded.patch49
-rw-r--r--0001-soc-bcm2835-Sync-xHCI-reset-firmware-property-with-d.patch32
-rw-r--r--0001-usb-fusb302-Convert-to-use-GPIO-descriptors.patch162
-rw-r--r--0001-virt-vbox-Fix-VBGL_IOCTL_VMMDEV_REQUEST_BIG-and-_LOG.patch123
-rw-r--r--0001-virt-vbox-Fix-guest-capabilities-mask-check.patch47
-rw-r--r--0004-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch91
-rw-r--r--20200505_leo_yan_linaro_org.patch70
-rw-r--r--configs/fedora/debug/CONFIG_BTRFS_ASSERT1
-rw-r--r--configs/fedora/debug/CONFIG_DEBUG_VM_PGTABLE24
-rw-r--r--configs/fedora/debug/CONFIG_DMADEVICES_DEBUG2
-rw-r--r--configs/fedora/debug/CONFIG_KASAN_VMALLOC1
-rw-r--r--configs/fedora/debug/CONFIG_KPROBE_EVENT_GEN_TEST1
-rw-r--r--configs/fedora/debug/CONFIG_MMIOTRACE1
-rw-r--r--configs/fedora/debug/CONFIG_PROVE_RCU1
-rw-r--r--configs/fedora/debug/CONFIG_PTDUMP_DEBUGFS1
-rw-r--r--configs/fedora/debug/CONFIG_SND_CTL_VALIDATION1
-rw-r--r--configs/fedora/debug/CONFIG_SND_SOC_SOF_DEBUG_PROBES1
-rw-r--r--configs/fedora/debug/CONFIG_SND_SOC_SOF_HDA_PROBES1
-rw-r--r--configs/fedora/debug/CONFIG_SYNTH_EVENT_GEN_TEST1
-rw-r--r--configs/fedora/debug/CONFIG_TEST_MIN_HEAP1
-rw-r--r--configs/fedora/debug/CONFIG_TRACE_EVENT_INJECT1
-rw-r--r--configs/fedora/debug/arm/aarch64/CONFIG_ARM64_FORCE_52BIT1
-rw-r--r--configs/fedora/debug/arm/aarch64/README0
-rw-r--r--configs/fedora/debug/arm/armv7/README0
-rw-r--r--configs/fedora/debug/powerpc/README0
-rw-r--r--configs/fedora/debug/s390x/README0
-rw-r--r--configs/fedora/generic/CONFIG_ACPI_TABLE_UPGRADE1
-rw-r--r--configs/fedora/generic/CONFIG_AD946726
-rw-r--r--configs/fedora/generic/CONFIG_ADIS1647523
-rw-r--r--configs/fedora/generic/CONFIG_ADI_AXI_ADC32
-rw-r--r--configs/fedora/generic/CONFIG_AMDTEE1
-rw-r--r--configs/fedora/generic/CONFIG_ARCH_REALTEK1
-rw-r--r--configs/fedora/generic/CONFIG_ARCH_S32 (renamed from configs/fedora/generic/arm/CONFIG_ARCH_S32)0
-rw-r--r--configs/fedora/generic/CONFIG_ARM64_AMU_EXTN (renamed from configs/fedora/generic/arm/aarch64/CONFIG_ARM64_AMU_EXTN)0
-rw-r--r--configs/fedora/generic/CONFIG_ARM64_BTI31
-rw-r--r--configs/fedora/generic/CONFIG_ARM64_E0PD (renamed from configs/fedora/generic/arm/aarch64/CONFIG_ARM64_E0PD)0
-rw-r--r--configs/fedora/generic/CONFIG_ARM64_ERRATUM_1319367 (renamed from configs/fedora/generic/arm/aarch64/CONFIG_ARM64_ERRATUM_1319367)0
-rw-r--r--configs/fedora/generic/CONFIG_ARM64_ERRATUM_1530923 (renamed from configs/fedora/generic/arm/aarch64/CONFIG_ARM64_ERRATUM_1530923)0
-rw-r--r--configs/fedora/generic/CONFIG_ARM64_ERRATUM_1542419 (renamed from configs/fedora/generic/arm/aarch64/CONFIG_ARM64_ERRATUM_1542419)0
-rw-r--r--configs/fedora/generic/CONFIG_ARM64_USE_LSE_ATOMICS (renamed from configs/fedora/generic/arm/aarch64/CONFIG_ARM64_USE_LSE_ATOMICS)0
-rw-r--r--configs/fedora/generic/CONFIG_ARM_SMC_WATCHDOG21
-rw-r--r--configs/fedora/generic/CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS (renamed from configs/fedora/generic/arm/CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS)0
-rw-r--r--configs/fedora/generic/CONFIG_ATLAS_EZO_SENSOR1
-rw-r--r--configs/fedora/generic/CONFIG_BACKLIGHT_PM8941_WLED1
-rw-r--r--configs/fedora/generic/CONFIG_BATTERY_CW201521
-rw-r--r--configs/fedora/generic/CONFIG_BCACHE_ASYNC_REGISTRAION20
-rw-r--r--configs/fedora/generic/CONFIG_BCM54140_PHY21
-rw-r--r--configs/fedora/generic/CONFIG_BLK_DEV_RNBD_CLIENT1
-rw-r--r--configs/fedora/generic/CONFIG_BLK_DEV_RNBD_SERVER1
-rw-r--r--configs/fedora/generic/CONFIG_BLK_INLINE_ENCRYPTION17
-rw-r--r--configs/fedora/generic/CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK1
-rw-r--r--configs/fedora/generic/CONFIG_BRIDGE_MRP22
-rw-r--r--configs/fedora/generic/CONFIG_BTRFS_FS2
-rw-r--r--configs/fedora/generic/CONFIG_BT_MSFTEXT17
-rw-r--r--configs/fedora/generic/CONFIG_CAPI_AVM1
-rw-r--r--configs/fedora/generic/CONFIG_CEC_SECO20
-rw-r--r--configs/fedora/generic/CONFIG_CEC_SECO_RC20
-rw-r--r--configs/fedora/generic/CONFIG_CHARGER_BD9995419
-rw-r--r--configs/fedora/generic/CONFIG_CHELSIO_TLS_DEVICE18
-rw-r--r--configs/fedora/generic/CONFIG_COMMON_CLK24
-rw-r--r--configs/fedora/generic/CONFIG_COMMON_CLK_MMP2_AUDIO16
-rw-r--r--configs/fedora/generic/CONFIG_CPU_LITTLE_ENDIAN (renamed from configs/fedora/generic/arm/aarch64/CONFIG_CPU_LITTLE_ENDIAN)0
-rw-r--r--configs/fedora/generic/CONFIG_CRYPTO_BLAKE2B2
-rw-r--r--configs/fedora/generic/CONFIG_CRYPTO_BLAKE2S_X861
-rw-r--r--configs/fedora/generic/CONFIG_CRYPTO_BLKCIPHER1
-rw-r--r--configs/fedora/generic/CONFIG_CRYPTO_CURVE25519_X861
-rw-r--r--configs/fedora/generic/CONFIG_CRYPTO_DEV_HISI_HPRE1
-rw-r--r--configs/fedora/generic/CONFIG_CRYPTO_DEV_HISI_SEC21
-rw-r--r--configs/fedora/generic/CONFIG_CRYPTO_DEV_OCTEONTX_CPT21
-rw-r--r--configs/fedora/generic/CONFIG_CRYPTO_POLY1305_NEON1
-rw-r--r--configs/fedora/generic/CONFIG_CRYPTO_SHA5121
-rw-r--r--configs/fedora/generic/CONFIG_CRYPTO_XXHASH2
-rw-r--r--configs/fedora/generic/CONFIG_DEBUG_INFO_COMPRESSED1
-rw-r--r--configs/fedora/generic/CONFIG_DEBUG_VM_PGTABLE24
-rw-r--r--configs/fedora/generic/CONFIG_DEBUG_WX (renamed from configs/fedora/generic/arm/CONFIG_DEBUG_WX)0
-rw-r--r--configs/fedora/generic/CONFIG_DEFAULT_INIT18
-rw-r--r--configs/fedora/generic/CONFIG_DMABUF_HEAPS2
-rw-r--r--configs/fedora/generic/CONFIG_DMABUF_HEAPS_CMA19
-rw-r--r--configs/fedora/generic/CONFIG_DMABUF_HEAPS_SYSTEM18
-rw-r--r--configs/fedora/generic/CONFIG_DM_EBS19
-rw-r--r--configs/fedora/generic/CONFIG_DM_MULTIPATH_HST23
-rw-r--r--configs/fedora/generic/CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG2
-rw-r--r--configs/fedora/generic/CONFIG_DRM_AMD_DC_DCN2_0 (renamed from configs/fedora/generic/x86/CONFIG_DRM_AMD_DC_DCN2_0)0
-rw-r--r--configs/fedora/generic/CONFIG_DRM_AMD_DC_DSC_SUPPORT (renamed from configs/fedora/generic/x86/CONFIG_DRM_AMD_DC_DSC_SUPPORT)0
-rw-r--r--configs/fedora/generic/CONFIG_DRM_CHRONTEL_CH703321
-rw-r--r--configs/fedora/generic/CONFIG_DRM_DP_CEC2
-rw-r--r--configs/fedora/generic/CONFIG_DRM_LVDS_ENCODER1
-rw-r--r--configs/fedora/generic/CONFIG_DRM_NWL_MIPI_DSI1
-rw-r--r--configs/fedora/generic/CONFIG_DRM_PANEL_ARM_VERSATILE1
-rw-r--r--configs/fedora/generic/CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT3559619
-rw-r--r--configs/fedora/generic/CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W20
-rw-r--r--configs/fedora/generic/CONFIG_DRM_PANEL_ROCKTECH_JH057N009001
-rw-r--r--configs/fedora/generic/CONFIG_DRM_PANEL_SITRONIX_ST77032
-rw-r--r--configs/fedora/generic/CONFIG_DRM_PANEL_VISIONOX_RM6929918
-rw-r--r--configs/fedora/generic/CONFIG_DWMAC_IMX825
-rw-r--r--configs/fedora/generic/CONFIG_EDAC_DMC520 (renamed from configs/fedora/generic/arm/aarch64/CONFIG_EDAC_DMC520)0
-rw-r--r--configs/fedora/generic/CONFIG_EFI_CUSTOM_SSDT_OVERLAYS19
-rw-r--r--configs/fedora/generic/CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER21
-rw-r--r--configs/fedora/generic/CONFIG_EXTCON_QCOM_SPMI_MISC (renamed from configs/fedora/generic/arm/aarch64/CONFIG_EXTCON_QCOM_SPMI_MISC)0
-rw-r--r--configs/fedora/generic/CONFIG_F2FS_FS_LZORLE18
-rw-r--r--configs/fedora/generic/CONFIG_FLATMEM_MANUAL25
-rw-r--r--configs/fedora/generic/CONFIG_FRAME_WARN2
-rw-r--r--configs/fedora/generic/CONFIG_FSL_RCPM1
-rw-r--r--configs/fedora/generic/CONFIG_GIGASET_BASE1
-rw-r--r--configs/fedora/generic/CONFIG_GIGASET_CAPI1
-rw-r--r--configs/fedora/generic/CONFIG_GIGASET_DEBUG1
-rw-r--r--configs/fedora/generic/CONFIG_GIGASET_M1011
-rw-r--r--configs/fedora/generic/CONFIG_GIGASET_M1051
-rw-r--r--configs/fedora/generic/CONFIG_GPIO_AGGREGATOR23
-rw-r--r--configs/fedora/generic/CONFIG_GPIO_BCM_XGS_IPROC1
-rw-r--r--configs/fedora/generic/CONFIG_GPIO_MLXBF2 (renamed from configs/fedora/generic/arm/aarch64/CONFIG_GPIO_MLXBF2)0
-rw-r--r--configs/fedora/generic/CONFIG_GPIO_PCA953X_IRQ1
-rw-r--r--configs/fedora/generic/CONFIG_GPIO_SYSCON1
-rw-r--r--configs/fedora/generic/CONFIG_HEADERS_CHECK1
-rw-r--r--configs/fedora/generic/CONFIG_HEADER_TEST1
-rw-r--r--configs/fedora/generic/CONFIG_HIBERNATION_SNAPSHOT_DEV1
-rw-r--r--configs/fedora/generic/CONFIG_HISI_DMA1
-rw-r--r--configs/fedora/generic/CONFIG_HIST_TRIGGERS_DEBUG33
-rw-r--r--configs/fedora/generic/CONFIG_HW_RANDOM_CCTRNG1
-rw-r--r--configs/fedora/generic/CONFIG_HYPERV_TESTING (renamed from configs/fedora/generic/x86/CONFIG_HYPERV_TESTING)0
-rw-r--r--configs/fedora/generic/CONFIG_HYSDN1
-rw-r--r--configs/fedora/generic/CONFIG_HYSDN_CAPI1
-rw-r--r--configs/fedora/generic/CONFIG_I2C_QCOM_CCI1
-rw-r--r--configs/fedora/generic/CONFIG_ICST20
-rw-r--r--configs/fedora/generic/CONFIG_INET6_ESPINTCP23
-rw-r--r--configs/fedora/generic/CONFIG_INFINIBAND_RTRS_CLIENT21
-rw-r--r--configs/fedora/generic/CONFIG_INFINIBAND_RTRS_SERVER21
-rw-r--r--configs/fedora/generic/CONFIG_INPUT_FF_MEMLESS1
-rw-r--r--configs/fedora/generic/CONFIG_INPUT_IQS269A23
-rw-r--r--configs/fedora/generic/CONFIG_INTEL_IDXD (renamed from configs/fedora/generic/x86/x86_64/CONFIG_INTEL_IDXD)0
-rw-r--r--configs/fedora/generic/CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON1
-rw-r--r--configs/fedora/generic/CONFIG_INTEL_SCU_PCI27
-rw-r--r--configs/fedora/generic/CONFIG_INTEL_SCU_PLATFORM19
-rw-r--r--configs/fedora/generic/CONFIG_INTEL_UNCORE_FREQ_CONTROL (renamed from configs/fedora/generic/x86/x86_64/CONFIG_INTEL_UNCORE_FREQ_CONTROL)0
-rw-r--r--configs/fedora/generic/CONFIG_INTEL_WMI_SBL_FW_UPDATE21
-rw-r--r--configs/fedora/generic/CONFIG_INTERCONNECT20
-rw-r--r--configs/fedora/generic/CONFIG_IR_SERIAL2
-rw-r--r--configs/fedora/generic/CONFIG_ISDN_CAPI1
-rw-r--r--configs/fedora/generic/CONFIG_KASAN_VMALLOC1
-rw-r--r--configs/fedora/generic/CONFIG_KERNEL_HEADER_TEST1
-rw-r--r--configs/fedora/generic/CONFIG_KEXEC_SIG1
-rw-r--r--configs/fedora/generic/CONFIG_KEYBOARD_BCM22
-rw-r--r--configs/fedora/generic/CONFIG_KEY_NOTIFICATIONS19
-rw-r--r--configs/fedora/generic/CONFIG_KVM_ARM_PMU17
-rw-r--r--configs/fedora/generic/CONFIG_LEDS_AW201320
-rw-r--r--configs/fedora/generic/CONFIG_LEDS_SGM314017
-rw-r--r--configs/fedora/generic/CONFIG_LEDS_SYSCON1
-rw-r--r--configs/fedora/generic/CONFIG_LIBCRC32C2
-rw-r--r--configs/fedora/generic/CONFIG_MAX124121
-rw-r--r--configs/fedora/generic/CONFIG_MDIO_IPQ401918
-rw-r--r--configs/fedora/generic/CONFIG_MDIO_IPQ80641
-rw-r--r--configs/fedora/generic/CONFIG_MEDIA_PLATFORM_SUPPORT25
-rw-r--r--configs/fedora/generic/CONFIG_MEDIA_SUPPORT_FILTER25
-rw-r--r--configs/fedora/generic/CONFIG_MEDIA_TEST_SUPPORT26
-rw-r--r--configs/fedora/generic/CONFIG_MFD_GATEWORKS_GSC1
-rw-r--r--configs/fedora/generic/CONFIG_MFD_INTEL_PMC_BXT21
-rw-r--r--configs/fedora/generic/CONFIG_MFD_MP262919
-rw-r--r--configs/fedora/generic/CONFIG_MFD_MT636020
-rw-r--r--configs/fedora/generic/CONFIG_MFD_SYSCON2
-rw-r--r--configs/fedora/generic/CONFIG_MLX5_CLS_ACT28
-rw-r--r--configs/fedora/generic/CONFIG_MLXBF_BOOTCTL (renamed from configs/fedora/generic/arm/aarch64/CONFIG_MLXBF_BOOTCTL)0
-rw-r--r--configs/fedora/generic/CONFIG_MODULE_SIG_SHA2562
-rw-r--r--configs/fedora/generic/CONFIG_MODULE_SIG_SHA5122
-rw-r--r--configs/fedora/generic/CONFIG_MSM_GCC_893920
-rw-r--r--configs/fedora/generic/CONFIG_MT7663U21
-rw-r--r--configs/fedora/generic/CONFIG_MT7915E24
-rw-r--r--configs/fedora/generic/CONFIG_MTD_NAND_ARASAN19
-rw-r--r--configs/fedora/generic/CONFIG_MTD_PSTORE20
-rw-r--r--configs/fedora/generic/CONFIG_NET_ACT_GATE24
-rw-r--r--configs/fedora/generic/CONFIG_NET_SCH_ETS2
-rw-r--r--configs/fedora/generic/CONFIG_OPAL_CORE (renamed from configs/fedora/generic/powerpc/CONFIG_OPAL_CORE)0
-rw-r--r--configs/fedora/generic/CONFIG_PAGE_REPORTING1
-rw-r--r--configs/fedora/generic/CONFIG_PCIEASPM_DEBUG1
-rw-r--r--configs/fedora/generic/CONFIG_PCIE_LAYERSCAPE_GEN41
-rw-r--r--configs/fedora/generic/CONFIG_PHY_CADENCE_SALVO19
-rw-r--r--configs/fedora/generic/CONFIG_PHY_QCOM_IPQ4019_USB1
-rw-r--r--configs/fedora/generic/CONFIG_PHY_QCOM_USB_HS_28NM1
-rw-r--r--configs/fedora/generic/CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V21
-rw-r--r--configs/fedora/generic/CONFIG_PHY_QCOM_USB_SS1
-rw-r--r--configs/fedora/generic/CONFIG_PINCTRL_JASPERLAKE18
-rw-r--r--configs/fedora/generic/CONFIG_PINCTRL_LYNXPOINT1
-rw-r--r--configs/fedora/generic/CONFIG_PINCTRL_MSM8976 (renamed from configs/fedora/generic/arm/CONFIG_PINCTRL_MSM8976)0
-rw-r--r--configs/fedora/generic/CONFIG_PINCTRL_SM825019
-rw-r--r--configs/fedora/generic/CONFIG_PMU_SYSFS14
-rw-r--r--configs/fedora/generic/CONFIG_POWER_RESET_VEXPRESS17
-rw-r--r--configs/fedora/generic/CONFIG_PRIME_NUMBERS1
-rw-r--r--configs/fedora/generic/CONFIG_PSTORE_BLK23
-rw-r--r--configs/fedora/generic/CONFIG_PSTORE_BLK_BLKDEV40
-rw-r--r--configs/fedora/generic/CONFIG_PSTORE_BLK_KMSG_SIZE22
-rw-r--r--configs/fedora/generic/CONFIG_PSTORE_BLK_MAX_REASON23
-rw-r--r--configs/fedora/generic/CONFIG_PTP_1588_CLOCK_VMW1
-rw-r--r--configs/fedora/generic/CONFIG_QCOM_IPCC20
-rw-r--r--configs/fedora/generic/CONFIG_QCOM_OCMEM21
-rw-r--r--configs/fedora/generic/CONFIG_QRTR1
-rw-r--r--configs/fedora/generic/CONFIG_QRTR_MHI18
-rw-r--r--configs/fedora/generic/CONFIG_QUICC_ENGINE (renamed from configs/fedora/generic/arm/CONFIG_QUICC_ENGINE)0
-rw-r--r--configs/fedora/generic/CONFIG_REFCOUNT_FULL1
-rw-r--r--configs/fedora/generic/CONFIG_REGULATOR_MAX7782620
-rw-r--r--configs/fedora/generic/CONFIG_RTW88_8723DE22
-rw-r--r--configs/fedora/generic/CONFIG_RTW88_8822BE2
-rw-r--r--configs/fedora/generic/CONFIG_RTW88_8822CE2
-rw-r--r--configs/fedora/generic/CONFIG_SENSORS_AMD_ENERGY1
-rw-r--r--configs/fedora/generic/CONFIG_SENSORS_MAX166011
-rw-r--r--configs/fedora/generic/CONFIG_SERIAL_LANTIQ21
-rw-r--r--configs/fedora/generic/CONFIG_SND_SOC_AMD_RENOIR18
-rw-r--r--configs/fedora/generic/CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH1
-rw-r--r--configs/fedora/generic/CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH21
-rw-r--r--configs/fedora/generic/CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH (renamed from configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH)0
-rw-r--r--configs/fedora/generic/CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH23
-rw-r--r--configs/fedora/generic/CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES1
-rw-r--r--configs/fedora/generic/CONFIG_SND_SOC_MAX983901
-rw-r--r--configs/fedora/generic/CONFIG_SND_SOC_PCM512x_I2C2
-rw-r--r--configs/fedora/generic/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 (renamed from configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1)0
-rw-r--r--configs/fedora/generic/CONFIG_SND_SOC_ZL3806024
-rw-r--r--configs/fedora/generic/CONFIG_SPI_AMD16
-rw-r--r--configs/fedora/generic/CONFIG_STAGING_EXFAT_FS1
-rw-r--r--configs/fedora/generic/CONFIG_SURFACE_3_POWER_OPREGION1
-rw-r--r--configs/fedora/generic/CONFIG_SX931022
-rw-r--r--configs/fedora/generic/CONFIG_SYNTH_EVENTS28
-rw-r--r--configs/fedora/generic/CONFIG_SYSTEM76_ACPI1
-rw-r--r--configs/fedora/generic/CONFIG_TARGET_TCP (renamed from configs/fedora/generic/CONFIG_NVME_TCP)0
-rw-r--r--configs/fedora/generic/CONFIG_TEST_BITOPS24
-rw-r--r--configs/fedora/generic/CONFIG_TEST_HMM1
-rw-r--r--configs/fedora/generic/CONFIG_TIME_NS (renamed from configs/fedora/generic/x86/CONFIG_TIME_NS)0
-rw-r--r--configs/fedora/generic/CONFIG_TOUCHSCREEN_CY8CTMA14024
-rw-r--r--configs/fedora/generic/CONFIG_USB41
-rw-r--r--configs/fedora/generic/CONFIG_USB4_NET (renamed from configs/fedora/generic/x86/CONFIG_USB4_NET)0
-rw-r--r--configs/fedora/generic/CONFIG_USB_XHCI_PCI_RENESAS20
-rw-r--r--configs/fedora/generic/CONFIG_VBOXSF_FS1
-rw-r--r--configs/fedora/generic/CONFIG_VCNL302022
-rw-r--r--configs/fedora/generic/CONFIG_VEXPRESS_CONFIG18
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_AD582021
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_ADP165321
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_AK737523
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_DW971423
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_DW9807_VCM23
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_ET8EK821
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_HI55624
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_IMX21424
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_IMX21924
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_IMX25824
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_IMX27421
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_IMX29024
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_IMX31924
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_IMX35524
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_IPU3_CIO225
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_LM356021
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_LM364620
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_M5MOLS20
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_MT9M00121
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_MT9M03221
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_MT9M11123
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_MT9P03121
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_MT9T00121
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_MT9T11223
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_MT9V01123
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_MT9V03221
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_MT9V11123
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_NOON010PC3020
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV1385821
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV264025
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV265924
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV268024
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV268524
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV274024
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV564021
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV564524
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV564724
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV567024
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV567524
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV569524
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV665023
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV725124
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV764025
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV767026
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV772X24
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV774021
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV885624
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV964020
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_OV965021
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_RJ54N123
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_ROCKCHIP_VDEC21
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_S5C73M321
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_S5K4ECGX21
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_S5K5BAF21
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_S5K6A321
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_S5K6AA21
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_SMIAPP20
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_SR030PC3019
-rw-r--r--configs/fedora/generic/CONFIG_VIDEO_VS662423
-rw-r--r--configs/fedora/generic/CONFIG_VIRTIO_BLK_SCSI1
-rw-r--r--configs/fedora/generic/CONFIG_VIRTIO_MEM23
-rw-r--r--configs/fedora/generic/CONFIG_WATCH_QUEUE20
-rw-r--r--configs/fedora/generic/CONFIG_X86_IOPL_IOPERM (renamed from configs/fedora/generic/x86/CONFIG_X86_IOPL_IOPERM)0
-rw-r--r--configs/fedora/generic/CONFIG_ZLIB_DFLTCC (renamed from configs/fedora/generic/s390x/CONFIG_ZLIB_DFLTCC)0
-rw-r--r--configs/fedora/generic/CONFIG_ZSMALLOC_PGTABLE_MAPPING23
-rw-r--r--configs/fedora/generic/arm/CONFIG_ARCH_ASPEED1
-rw-r--r--configs/fedora/generic/arm/CONFIG_ARM_IMX_BUS_DEVFREQ18
-rw-r--r--configs/fedora/generic/arm/CONFIG_ARM_QCOM_SPM_CPUIDLE22
-rw-r--r--configs/fedora/generic/arm/CONFIG_ARM_SMC_WATCHDOG21
-rw-r--r--configs/fedora/generic/arm/CONFIG_CEC_CROS_EC20
-rw-r--r--configs/fedora/generic/arm/CONFIG_CEC_MESON_AO19
-rw-r--r--configs/fedora/generic/arm/CONFIG_CEC_MESON_G12A_AO22
-rw-r--r--configs/fedora/generic/arm/CONFIG_CEC_TEGRA20
-rw-r--r--configs/fedora/generic/arm/CONFIG_CLK_IMX8MM (renamed from configs/fedora/generic/arm/aarch64/CONFIG_CLK_IMX8MM)0
-rw-r--r--configs/fedora/generic/arm/CONFIG_CLK_IMX8MN (renamed from configs/fedora/generic/arm/aarch64/CONFIG_CLK_IMX8MN)0
-rw-r--r--configs/fedora/generic/arm/CONFIG_CLK_IMX8MP (renamed from configs/fedora/generic/arm/aarch64/CONFIG_CLK_IMX8MP)0
-rw-r--r--configs/fedora/generic/arm/CONFIG_CLK_IMX8MQ (renamed from configs/fedora/generic/arm/aarch64/CONFIG_CLK_IMX8MQ)0
-rw-r--r--configs/fedora/generic/arm/CONFIG_DRM_DUMB_VGA_DAC1
-rw-r--r--configs/fedora/generic/arm/CONFIG_DRM_MCDE1
-rw-r--r--configs/fedora/generic/arm/CONFIG_DRM_NWL_MIPI_DSI19
-rw-r--r--configs/fedora/generic/arm/CONFIG_DRM_PANEL_SITRONIX_ST77031
-rw-r--r--configs/fedora/generic/arm/CONFIG_FSL_DPAA2_ETH_DCB19
-rw-r--r--configs/fedora/generic/arm/CONFIG_HISILICON_IRQ_MBIGEN1
-rw-r--r--configs/fedora/generic/arm/CONFIG_HOTPLUG_PCI_SHPC (renamed from configs/fedora/generic/x86/i686/CONFIG_HOTPLUG_PCI_SHPC)0
-rw-r--r--configs/fedora/generic/arm/CONFIG_I2C_BRCMSTB21
-rw-r--r--configs/fedora/generic/arm/CONFIG_ICST20
-rw-r--r--configs/fedora/generic/arm/CONFIG_INTERCONNECT_IMX1
-rw-r--r--configs/fedora/generic/arm/CONFIG_INTERCONNECT_IMX8MM1
-rw-r--r--configs/fedora/generic/arm/CONFIG_INTERCONNECT_IMX8MN1
-rw-r--r--configs/fedora/generic/arm/CONFIG_INTERCONNECT_IMX8MQ1
-rw-r--r--configs/fedora/generic/arm/CONFIG_INTERCONNECT_QCOM (renamed from configs/fedora/generic/arm/aarch64/CONFIG_INTERCONNECT_QCOM)0
-rw-r--r--configs/fedora/generic/arm/CONFIG_LEDS_SGM31401
-rw-r--r--configs/fedora/generic/arm/CONFIG_MESON_WATCHDOG (renamed from configs/fedora/generic/arm/armv7/CONFIG_MESON_WATCHDOG)0
-rw-r--r--configs/fedora/generic/arm/CONFIG_MFD_SYSCON1
-rw-r--r--configs/fedora/generic/arm/CONFIG_MMC_MESON_MX_SDHC22
-rw-r--r--configs/fedora/generic/arm/CONFIG_MSM_GCC_893920
-rw-r--r--configs/fedora/generic/arm/CONFIG_NET_VENDOR_MELLANOX1
-rw-r--r--configs/fedora/generic/arm/CONFIG_PINCTRL_IMX8DXL17
-rw-r--r--configs/fedora/generic/arm/CONFIG_QCOM_RPMPD20
-rw-r--r--configs/fedora/generic/arm/CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT1
-rw-r--r--configs/fedora/generic/arm/CONFIG_REGMAP_MMIO (renamed from configs/fedora/generic/arm/armv7/CONFIG_REGMAP_MMIO)0
-rw-r--r--configs/fedora/generic/arm/CONFIG_SND_MMP_SOC_SSPA20
-rw-r--r--configs/fedora/generic/arm/CONFIG_SND_SOC_FSL_EASRC23
-rw-r--r--configs/fedora/generic/arm/CONFIG_SND_SOC_SGTL50001
-rw-r--r--configs/fedora/generic/arm/CONFIG_SPI_DW_DMA1
-rw-r--r--configs/fedora/generic/arm/CONFIG_SUN50I_IOMMU17
-rw-r--r--configs/fedora/generic/arm/CONFIG_VIDEO_TEGRA21
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_ACPI_TABLE_UPGRADE1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_ARM64_BTI_KERNEL1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_ARM64_FORCE_52BIT1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_ARM_PSCI_CPUIDLE1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_COMMON_CLK_MESON_PHASE1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_COMMON_CLK_MESON_SCLK_DIV1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_FORCE_MAX_ZONEORDER3
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_HW_RANDOM_HISI_V21
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_IMX_REMOTEPROC1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_INTERCONNECT1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_MESON_WATCHDOG1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_PCIE_TEGRA1941
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_PINCTRL_IMX8MM1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_PINCTRL_IMX8MN1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_PINCTRL_IMX8MP1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_PINCTRL_IMX8MQ1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_SND_SOC_MAX98357A1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_SND_SOC_SOF_IMX8M_SUPPORT22
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_STRICT_DEVMEM1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_XILINX_XADC1
-rw-r--r--configs/fedora/generic/arm/armv7/CONFIG_CEC_SAMSUNG_S5P20
-rw-r--r--configs/fedora/generic/arm/armv7/CONFIG_CEC_STI20
-rw-r--r--configs/fedora/generic/arm/armv7/CONFIG_CEC_STM3220
-rw-r--r--configs/fedora/generic/arm/armv7/CONFIG_DRM_EXYNOS_G2D18
-rw-r--r--configs/fedora/generic/arm/armv7/CONFIG_MTD_NAND_BRCMNAND1
-rw-r--r--configs/fedora/generic/arm/armv7/CONFIG_NET_VENDOR_XILINX1
-rw-r--r--configs/fedora/generic/arm/armv7/CONFIG_NVMEM_STM32_ROMEM1
-rw-r--r--configs/fedora/generic/arm/armv7/CONFIG_SPI_CADENCE_QUADSPI1
-rw-r--r--configs/fedora/generic/arm/armv7/CONFIG_STRICT_KERNEL_RWX1
-rw-r--r--configs/fedora/generic/arm/armv7/armv7/CONFIG_AM335X_PHY_USB1
-rw-r--r--configs/fedora/generic/arm/armv7/armv7/CONFIG_ARM_TI_CPUFREQ1
-rw-r--r--configs/fedora/generic/arm/armv7/armv7/CONFIG_AXI_DMAC1
-rw-r--r--configs/fedora/generic/arm/armv7/armv7/CONFIG_IMX_REMOTEPROC1
-rw-r--r--configs/fedora/generic/arm/armv7/armv7/CONFIG_NVMEM_SNVS_LPGPR1
-rw-r--r--configs/fedora/generic/arm/armv7/armv7/CONFIG_PHY_DM816X_USB1
-rw-r--r--configs/fedora/generic/arm/armv7/armv7/CONFIG_PWM_TIEHRPWM1
-rw-r--r--configs/fedora/generic/arm/armv7/armv7/CONFIG_SND_SOC_TLV320AIC231
-rw-r--r--configs/fedora/generic/arm/armv7/armv7/CONFIG_ST_THERMAL_SYSCFG1
-rw-r--r--configs/fedora/generic/arm/armv7/armv7/CONFIG_WKUP_M3_RPROC1
-rw-r--r--configs/fedora/generic/arm/armv7/armv7/CONFIG_XILINX_XADC1
-rw-r--r--configs/fedora/generic/arm/armv7/armv7/README0
-rw-r--r--configs/fedora/generic/powerpc/CONFIG_COMPAT11
-rw-r--r--configs/fedora/generic/powerpc/CONFIG_CPU_LITTLE_ENDIAN1
-rw-r--r--configs/fedora/generic/powerpc/CONFIG_EFI_TEST1
-rw-r--r--configs/fedora/generic/powerpc/CONFIG_FRAME_WARN1
-rw-r--r--configs/fedora/generic/powerpc/CONFIG_INPUT_PWM_BEEPER (renamed from configs/fedora/generic/arm/CONFIG_INPUT_PWM_BEEPER)0
-rw-r--r--configs/fedora/generic/powerpc/CONFIG_PMU_SYSFS1
-rw-r--r--configs/fedora/generic/powerpc/CONFIG_QUICC_ENGINE1
-rw-r--r--configs/fedora/generic/powerpc/CONFIG_SIMPLE_GPIO1
-rw-r--r--configs/fedora/generic/powerpc/CONFIG_TICK_CPU_ACCOUNTING1
-rw-r--r--configs/fedora/generic/s390x/CONFIG_EFI_TEST1
-rw-r--r--configs/fedora/generic/s390x/CONFIG_SCLP_ASYNC1
-rw-r--r--configs/fedora/generic/s390x/CONFIG_SCLP_ASYNC_ID1
-rw-r--r--configs/fedora/generic/s390x/CONFIG_TICK_CPU_ACCOUNTING1
-rw-r--r--configs/fedora/generic/s390x/CONFIG_TUNE_DEFAULT4
-rw-r--r--configs/fedora/generic/s390x/CONFIG_TUNE_Z141
-rw-r--r--configs/fedora/generic/s390x/CONFIG_VIRTIO_FS1
-rw-r--r--configs/fedora/generic/s390x/README0
-rw-r--r--configs/fedora/generic/s390x/zfcpdump/CONFIG_CRYPTO_ESSIV1
-rw-r--r--configs/fedora/generic/s390x/zfcpdump/CONFIG_CRYPTO_LIB_CHACHA1
-rw-r--r--configs/fedora/generic/s390x/zfcpdump/CONFIG_CRYPTO_LIB_POLY13051
-rw-r--r--configs/fedora/generic/s390x/zfcpdump/CONFIG_CRYPTO_SHA3_256_S3901
-rw-r--r--configs/fedora/generic/s390x/zfcpdump/CONFIG_CRYPTO_SHA3_512_S3901
-rw-r--r--configs/fedora/generic/s390x/zfcpdump/README0
-rw-r--r--configs/fedora/generic/x86/CONFIG_ACPI_TABLE_UPGRADE1
-rw-r--r--configs/fedora/generic/x86/CONFIG_ACRN_GUEST1
-rw-r--r--configs/fedora/generic/x86/CONFIG_CEC_SECO20
-rw-r--r--configs/fedora/generic/x86/CONFIG_CLK_LGM_CGU18
-rw-r--r--configs/fedora/generic/x86/CONFIG_DEBUG_WX1
-rw-r--r--configs/fedora/generic/x86/CONFIG_DRM_NOUVEAU_SVM1
-rw-r--r--configs/fedora/generic/x86/CONFIG_EXTCON_INTEL_MRFLD17
-rw-r--r--configs/fedora/generic/x86/CONFIG_GPIO_MSIC18
-rw-r--r--configs/fedora/generic/x86/CONFIG_GPIO_WHISKEY_COVE2
-rw-r--r--configs/fedora/generic/x86/CONFIG_IMA_ARCH_POLICY1
-rw-r--r--configs/fedora/generic/x86/CONFIG_INTEL_ATOMISP19
-rw-r--r--configs/fedora/generic/x86/CONFIG_INTEL_MFLD_THERMAL17
-rw-r--r--configs/fedora/generic/x86/CONFIG_INTEL_MID_POWER_BUTTON18
-rw-r--r--configs/fedora/generic/x86/CONFIG_INTEL_MRFLD_ADC22
-rw-r--r--configs/fedora/generic/x86/CONFIG_INTEL_MRFLD_PWRBTN20
-rw-r--r--configs/fedora/generic/x86/CONFIG_INTEL_SCU_IPC_UTIL18
-rw-r--r--configs/fedora/generic/x86/CONFIG_INTEL_SCU_PCI27
-rw-r--r--configs/fedora/generic/x86/CONFIG_INTEL_SCU_PLATFORM19
-rw-r--r--configs/fedora/generic/x86/CONFIG_INTEL_SOC_PMIC_BXTWC2
-rw-r--r--configs/fedora/generic/x86/CONFIG_INTEL_SOC_PMIC_MRFLD18
-rw-r--r--configs/fedora/generic/x86/CONFIG_INTEL_TH1
-rw-r--r--configs/fedora/generic/x86/CONFIG_INTEL_TH_ACPI1
-rw-r--r--configs/fedora/generic/x86/CONFIG_INTEL_TH_DEBUG1
-rw-r--r--configs/fedora/generic/x86/CONFIG_INTEL_TH_GTH1
-rw-r--r--configs/fedora/generic/x86/CONFIG_INTEL_TH_MSU1
-rw-r--r--configs/fedora/generic/x86/CONFIG_INTEL_TH_PCI1
-rw-r--r--configs/fedora/generic/x86/CONFIG_INTEL_TH_PTI1
-rw-r--r--configs/fedora/generic/x86/CONFIG_INTEL_TH_STH1
-rw-r--r--configs/fedora/generic/x86/CONFIG_INTEL_WMI_SBL_FW_UPDATE21
-rw-r--r--configs/fedora/generic/x86/CONFIG_MFD_INTEL_MSIC21
-rw-r--r--configs/fedora/generic/x86/CONFIG_MFD_INTEL_PMC_BXT21
-rw-r--r--configs/fedora/generic/x86/CONFIG_NET_VENDOR_XILINX1
-rw-r--r--configs/fedora/generic/x86/CONFIG_PHY_INTEL_COMBO21
-rw-r--r--configs/fedora/generic/x86/CONFIG_PINCTRL_JASPERLAKE18
-rw-r--r--configs/fedora/generic/x86/CONFIG_SENSORS_AMD_ENERGY20
-rw-r--r--configs/fedora/generic/x86/CONFIG_SERIAL_LANTIQ21
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_HDA_INTEL_DETECT_DMIC1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_AMD_RENOIR18
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_AMD_RENOIR_MACH1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH21
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH23
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_PCM512x_I2C1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_BAYTRAIL_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_BROADWELL_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_WM88041
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_WM8804_I2C1
-rw-r--r--configs/fedora/generic/x86/CONFIG_STM1
-rw-r--r--configs/fedora/generic/x86/CONFIG_STM_DUMMY1
-rw-r--r--configs/fedora/generic/x86/CONFIG_STM_PROTO_BASIC1
-rw-r--r--configs/fedora/generic/x86/CONFIG_STM_PROTO_SYS_T1
-rw-r--r--configs/fedora/generic/x86/CONFIG_STM_SOURCE_CONSOLE1
-rw-r--r--configs/fedora/generic/x86/CONFIG_STM_SOURCE_FTRACE1
-rw-r--r--configs/fedora/generic/x86/CONFIG_STM_SOURCE_HEARTBEAT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_XILINX_LL_TEMAC1
-rw-r--r--configs/fedora/generic/x86/i686/CONFIG_FLATMEM_MANUAL1
-rw-r--r--configs/fedora/generic/x86/i686/CONFIG_INPUT_PWM_BEEPER1
-rw-r--r--configs/fedora/generic/x86/i686/README0
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_CALGARY_IOMMU1
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_CONTEXT_TRACKING_FORCE1
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_CPU_FREQ_GOV_SCHEDUTIL1
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_BLAKE2S_x861
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_FRAME_WARN1
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_KEYBOARD_APPLESPI1
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY1
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY1
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE1
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_SND_XEN_FRONTEND1
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_VIRT_CPU_ACCOUNTING_GEN1
-rw-r--r--configs/fedora/generic/x86/x86_64/README0
-rw-r--r--kernel-aarch64-debug-fedora.config302
-rw-r--r--kernel-aarch64-fedora.config281
-rw-r--r--kernel-armv7hl-debug-fedora.config315
-rw-r--r--kernel-armv7hl-fedora.config294
-rw-r--r--kernel-armv7hl-lpae-debug-fedora.config316
-rw-r--r--kernel-armv7hl-lpae-fedora.config295
-rw-r--r--kernel-i686-debug-fedora.config329
-rw-r--r--kernel-i686-fedora.config309
-rw-r--r--kernel-ppc64le-debug-fedora.config308
-rw-r--r--kernel-ppc64le-fedora.config287
-rw-r--r--kernel-s390x-debug-fedora.config315
-rw-r--r--kernel-s390x-fedora.config294
-rw-r--r--kernel-x86_64-debug-fedora.config327
-rw-r--r--kernel-x86_64-fedora.config307
-rw-r--r--kernel.spec215
-rw-r--r--sources3
556 files changed, 11077 insertions, 4412 deletions
diff --git a/0001-ACPI-APEI-arm64-Ignore-broken-HPE-moonshot-APEI-supp.patch b/0001-ACPI-APEI-arm64-Ignore-broken-HPE-moonshot-APEI-supp.patch
index ec362d9b2..1a5bec6ce 100644
--- a/0001-ACPI-APEI-arm64-Ignore-broken-HPE-moonshot-APEI-supp.patch
+++ b/0001-ACPI-APEI-arm64-Ignore-broken-HPE-moonshot-APEI-supp.patch
@@ -48,7 +48,7 @@ Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
1 file changed, 8 insertions(+)
diff --git a/drivers/acpi/apei/hest.c b/drivers/acpi/apei/hest.c
-index 822402480f7d..3f87d8602560 100644
+index 953a2fae8b15..7ea07f7da582 100644
--- a/drivers/acpi/apei/hest.c
+++ b/drivers/acpi/apei/hest.c
@@ -88,6 +88,14 @@ int apei_hest_parse(apei_hest_func_t func, void *data)
diff --git a/0001-ARM-tegra-usb-no-reset.patch b/0001-ARM-tegra-usb-no-reset.patch
index f91c6b83e..21ebad41e 100644
--- a/0001-ARM-tegra-usb-no-reset.patch
+++ b/0001-ARM-tegra-usb-no-reset.patch
@@ -10,7 +10,7 @@ Patch for disconnect issues with storage attached to a
1 file changed, 7 insertions(+)
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
-index fc748c731832..7d35e12de70f 100644
+index b1e14beaac5f..b28779779058 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -5517,6 +5517,13 @@ static void hub_event(struct work_struct *work)
diff --git a/0001-Add-efi_status_to_str-and-rework-efi_status_to_err.patch b/0001-Add-efi_status_to_str-and-rework-efi_status_to_err.patch
index ee11a2428..9fa2f1a8e 100644
--- a/0001-Add-efi_status_to_str-and-rework-efi_status_to_err.patch
+++ b/0001-Add-efi_status_to_str-and-rework-efi_status_to_err.patch
@@ -15,7 +15,7 @@ Signed-off-by: Peter Jones <pjones@redhat.com>
2 files changed, 96 insertions(+), 31 deletions(-)
diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
-index 4e3055238f31..36ca9e2943ce 100644
+index fdd1db025dbf..8ef7d1df09dd 100644
--- a/drivers/firmware/efi/efi.c
+++ b/drivers/firmware/efi/efi.c
@@ -31,6 +31,7 @@
@@ -26,7 +26,7 @@ index 4e3055238f31..36ca9e2943ce 100644
#include <asm/early_ioremap.h>
-@@ -828,40 +829,101 @@ int efi_mem_type(unsigned long phys_addr)
+@@ -831,40 +832,101 @@ int efi_mem_type(unsigned long phys_addr)
}
#endif
@@ -160,10 +160,10 @@ index 4e3055238f31..36ca9e2943ce 100644
static DEFINE_SPINLOCK(efi_mem_reserve_persistent_lock);
diff --git a/include/linux/efi.h b/include/linux/efi.h
-index 9430d01c0c3d..51503bf118ab 100644
+index 05c47f857383..2e2f9f608f68 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
-@@ -42,6 +42,8 @@
+@@ -43,6 +43,8 @@
#define EFI_ABORTED (21 | (1UL << (BITS_PER_LONG-1)))
#define EFI_SECURITY_VIOLATION (26 | (1UL << (BITS_PER_LONG-1)))
@@ -172,7 +172,7 @@ index 9430d01c0c3d..51503bf118ab 100644
typedef unsigned long efi_status_t;
typedef u8 efi_bool_t;
typedef u16 efi_char16_t; /* UNICODE character */
-@@ -825,6 +827,7 @@ static inline bool efi_rt_services_supported(unsigned int mask)
+@@ -828,6 +830,7 @@ static inline bool efi_rt_services_supported(unsigned int mask)
#endif
extern int efi_status_to_err(efi_status_t status);
diff --git a/0001-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch b/0001-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch
index 970824d59..64cdd4136 100644
--- a/0001-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch
+++ b/0001-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch
@@ -16,10 +16,10 @@ Signed-off-by: Jeremy Cline <jcline@redhat.com>
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
-index 7f37a6d0658a..c88ee0e8ce6e 100644
+index 2e0700a451e5..77e7e749d7e5 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
-@@ -1126,6 +1126,7 @@ config XEN
+@@ -1133,6 +1133,7 @@ config XEN
config FORCE_MAX_ZONEORDER
int
default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE)
diff --git a/0001-Drop-that-for-now.patch b/0001-Drop-that-for-now.patch
index bc898b654..c26066ec6 100644
--- a/0001-Drop-that-for-now.patch
+++ b/0001-Drop-that-for-now.patch
@@ -8,10 +8,10 @@ Subject: [PATCH] Drop that for now
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
-index 3d65d1153aac..0e2fb7fe2675 100644
+index 37cfb39d77af..c65a263990ae 100644
--- a/Makefile
+++ b/Makefile
-@@ -479,7 +479,7 @@ KBUILD_AFLAGS := -D__ASSEMBLY__ -fno-PIE
+@@ -496,7 +496,7 @@ KBUILD_AFLAGS := -D__ASSEMBLY__ -fno-PIE
KBUILD_CFLAGS := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \
-fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \
-Werror=implicit-function-declaration -Werror=implicit-int \
diff --git a/0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch b/0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch
deleted file mode 100644
index 6fc81f845..000000000
--- a/0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch
+++ /dev/null
@@ -1,209 +0,0 @@
-From 92c547f35f4852908f40c2861d9b9d10e0c5099b Mon Sep 17 00:00:00 2001
-From: Peter Robinson <pbrobinson@gmail.com>
-Date: Sun, 28 Jun 2020 16:48:50 +0100
-Subject: [PATCH] PCI: Add MCFG quirks for Tegra194 host controllers
-
-The PCIe controller in Tegra194 SoC is not completely ECAM-compliant.
-With the current hardware design limitations in place, ECAM can be enabled
-only for one controller (C5 controller to be precise) with bus numbers
-starting from 160 instead of 0. A different approach is taken to avoid this
-abnormal way of enabling ECAM for just one controller but to enable
-configuration space access for all the other controllers. In this approach,
-ops are added through MCFG quirk mechanism which access the configuration
-spaces by dynamically programming iATU (internal AddressTranslation Unit)
-to generate respective configuration accesses just like the way it is
-done in DesignWare core sub-system.
-
-Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
-Reported-by: kbuild test robot <lkp@intel.com>
-Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
----
-V3:
-* Removed MCFG address hardcoding in pci_mcfg.c file
-* Started using 'dbi_base' for accessing root port's own config space
-* and using 'config_base' for accessing config space of downstream hierarchy
-
-V2:
-* Fixed build issues reported by kbuild test bot
----
- drivers/acpi/pci_mcfg.c | 7 ++
- drivers/pci/controller/dwc/Makefile | 2 +-
- drivers/pci/controller/dwc/pcie-tegra194.c | 102 +++++++++++++++++++++
- include/linux/pci-ecam.h | 1 +
- 4 files changed, 111 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/acpi/pci_mcfg.c b/drivers/acpi/pci_mcfg.c
-index 6b347d9920cc2..7071814081736 100644
---- a/drivers/acpi/pci_mcfg.c
-+++ b/drivers/acpi/pci_mcfg.c
-@@ -116,6 +116,13 @@ static struct mcfg_fixup mcfg_quirks[] = {
- THUNDER_ECAM_QUIRK(2, 12),
- THUNDER_ECAM_QUIRK(2, 13),
-
-+ { "NVIDIA", "TEGRA194", 1, 0, MCFG_BUS_ANY, &tegra194_pcie_ops},
-+ { "NVIDIA", "TEGRA194", 1, 1, MCFG_BUS_ANY, &tegra194_pcie_ops},
-+ { "NVIDIA", "TEGRA194", 1, 2, MCFG_BUS_ANY, &tegra194_pcie_ops},
-+ { "NVIDIA", "TEGRA194", 1, 3, MCFG_BUS_ANY, &tegra194_pcie_ops},
-+ { "NVIDIA", "TEGRA194", 1, 4, MCFG_BUS_ANY, &tegra194_pcie_ops},
-+ { "NVIDIA", "TEGRA194", 1, 5, MCFG_BUS_ANY, &tegra194_pcie_ops},
-+
- #define XGENE_V1_ECAM_MCFG(rev, seg) \
- {"APM ", "XGENE ", rev, seg, MCFG_BUS_ANY, \
- &xgene_v1_pcie_ecam_ops }
-diff --git a/drivers/pci/controller/dwc/Makefile b/drivers/pci/controller/dwc/Makefile
-index 8a637cfcf6e99..76a6c52b8500e 100644
---- a/drivers/pci/controller/dwc/Makefile
-+++ b/drivers/pci/controller/dwc/Makefile
-@@ -17,7 +17,6 @@ obj-$(CONFIG_PCIE_INTEL_GW) += pcie-intel-gw.o
- obj-$(CONFIG_PCIE_KIRIN) += pcie-kirin.o
- obj-$(CONFIG_PCIE_HISI_STB) += pcie-histb.o
- obj-$(CONFIG_PCI_MESON) += pci-meson.o
--obj-$(CONFIG_PCIE_TEGRA194) += pcie-tegra194.o
- obj-$(CONFIG_PCIE_UNIPHIER) += pcie-uniphier.o
-
- # The following drivers are for devices that use the generic ACPI
-@@ -33,4 +32,5 @@ obj-$(CONFIG_PCIE_UNIPHIER) += pcie-uniphier.o
- ifdef CONFIG_PCI
- obj-$(CONFIG_ARM64) += pcie-al.o
- obj-$(CONFIG_ARM64) += pcie-hisi.o
-+obj-$(CONFIG_ARM64) += pcie-tegra194.o
- endif
-diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c
-index ae30a2fd3716a..571b39c5cac63 100644
---- a/drivers/pci/controller/dwc/pcie-tegra194.c
-+++ b/drivers/pci/controller/dwc/pcie-tegra194.c
-@@ -22,6 +22,8 @@
- #include <linux/of_irq.h>
- #include <linux/of_pci.h>
- #include <linux/pci.h>
-+#include <linux/pci-acpi.h>
-+#include <linux/pci-ecam.h>
- #include <linux/phy/phy.h>
- #include <linux/pinctrl/consumer.h>
- #include <linux/platform_device.h>
-@@ -324,6 +326,103 @@ struct tegra_pcie_dw_of_data {
- enum dw_pcie_device_mode mode;
- };
-
-+#if defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS)
-+struct tegra194_pcie_acpi {
-+ void __iomem *config_base;
-+ void __iomem *iatu_base;
-+ void __iomem *dbi_base;
-+};
-+
-+static int tegra194_acpi_init(struct pci_config_window *cfg)
-+{
-+ struct device *dev = cfg->parent;
-+ struct tegra194_pcie_acpi *pcie;
-+
-+ pcie = devm_kzalloc(dev, sizeof(*pcie), GFP_KERNEL);
-+ if (!pcie)
-+ return -ENOMEM;
-+
-+ pcie->config_base = cfg->win;
-+ pcie->iatu_base = cfg->win + SZ_256K;
-+ pcie->dbi_base = cfg->win + SZ_512K;
-+ cfg->priv = pcie;
-+
-+ return 0;
-+}
-+
-+static inline void atu_reg_write(struct tegra194_pcie_acpi *pcie, int index,
-+ u32 val, u32 reg)
-+{
-+ u32 offset = PCIE_GET_ATU_OUTB_UNR_REG_OFFSET(index);
-+
-+ writel(val, pcie->iatu_base + offset + reg);
-+}
-+
-+static void program_outbound_atu(struct tegra194_pcie_acpi *pcie, int index,
-+ int type, u64 cpu_addr, u64 pci_addr, u64 size)
-+{
-+ atu_reg_write(pcie, index, lower_32_bits(cpu_addr),
-+ PCIE_ATU_LOWER_BASE);
-+ atu_reg_write(pcie, index, upper_32_bits(cpu_addr),
-+ PCIE_ATU_UPPER_BASE);
-+ atu_reg_write(pcie, index, lower_32_bits(pci_addr),
-+ PCIE_ATU_LOWER_TARGET);
-+ atu_reg_write(pcie, index, lower_32_bits(cpu_addr + size - 1),
-+ PCIE_ATU_LIMIT);
-+ atu_reg_write(pcie, index, upper_32_bits(pci_addr),
-+ PCIE_ATU_UPPER_TARGET);
-+ atu_reg_write(pcie, index, type, PCIE_ATU_CR1);
-+ atu_reg_write(pcie, index, PCIE_ATU_ENABLE, PCIE_ATU_CR2);
-+}
-+
-+static void __iomem *tegra194_map_bus(struct pci_bus *bus,
-+ unsigned int devfn, int where)
-+{
-+ struct pci_config_window *cfg = bus->sysdata;
-+ struct tegra194_pcie_acpi *pcie = cfg->priv;
-+ u32 busdev;
-+ int type;
-+
-+ if (bus->number < cfg->busr.start || bus->number > cfg->busr.end)
-+ return NULL;
-+
-+ if (bus->number == cfg->busr.start) {
-+ if (PCI_SLOT(devfn) == 0)
-+ return pcie->dbi_base + where;
-+ else
-+ return NULL;
-+ }
-+
-+ busdev = PCIE_ATU_BUS(bus->number) | PCIE_ATU_DEV(PCI_SLOT(devfn)) |
-+ PCIE_ATU_FUNC(PCI_FUNC(devfn));
-+
-+ if (bus->parent->number == cfg->busr.start) {
-+ if (PCI_SLOT(devfn) == 0)
-+ type = PCIE_ATU_TYPE_CFG0;
-+ else
-+ return NULL;
-+ } else {
-+ type = PCIE_ATU_TYPE_CFG1;
-+ }
-+
-+ program_outbound_atu(pcie, PCIE_ATU_REGION_INDEX0, type,
-+ cfg->res.start, busdev, SZ_256K);
-+ return (void __iomem *)(pcie->config_base + where);
-+}
-+
-+struct pci_ecam_ops tegra194_pcie_ops = {
-+ .bus_shift = 20,
-+ .init = tegra194_acpi_init,
-+ .pci_ops = {
-+ .map_bus = tegra194_map_bus,
-+ .read = pci_generic_config_read,
-+ .write = pci_generic_config_write,
-+ }
-+};
-+#endif /* defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS) */
-+
-+#ifdef CONFIG_PCIE_TEGRA194
-+
- static inline struct tegra_pcie_dw *to_tegra_pcie(struct dw_pcie *pci)
- {
- return container_of(pci, struct tegra_pcie_dw, pci);
-@@ -2406,3 +2505,6 @@ MODULE_DEVICE_TABLE(of, tegra_pcie_dw_of_match);
- MODULE_AUTHOR("Vidya Sagar <vidyas@nvidia.com>");
- MODULE_DESCRIPTION("NVIDIA PCIe host controller driver");
- MODULE_LICENSE("GPL v2");
-+
-+#endif /* CONFIG_PCIE_TEGRA194 */
-+
-diff --git a/include/linux/pci-ecam.h b/include/linux/pci-ecam.h
-index a73164c85e78b..6156140dcbb65 100644
---- a/include/linux/pci-ecam.h
-+++ b/include/linux/pci-ecam.h
-@@ -57,6 +57,7 @@ extern struct pci_ecam_ops pci_thunder_ecam_ops; /* Cavium ThunderX 1.x */
- extern struct pci_ecam_ops xgene_v1_pcie_ecam_ops; /* APM X-Gene PCIe v1 */
- extern struct pci_ecam_ops xgene_v2_pcie_ecam_ops; /* APM X-Gene PCIe v2.x */
- extern struct pci_ecam_ops al_pcie_ops; /* Amazon Annapurna Labs PCIe */
-+extern struct pci_ecam_ops tegra194_pcie_ops; /* Tegra194 PCIe */
- #endif
-
- #ifdef CONFIG_PCI_HOST_COMMON
---
-2.26.2
-
diff --git a/0001-PCI-brcmstb-Wait-for-Raspberry-Pi-s-firmware-when-pr.patch b/0001-PCI-brcmstb-Wait-for-Raspberry-Pi-s-firmware-when-pr.patch
deleted file mode 100644
index 07f8b4e26..000000000
--- a/0001-PCI-brcmstb-Wait-for-Raspberry-Pi-s-firmware-when-pr.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
-Date: Tue, 10 Mar 2020 13:52:41 +0100
-Subject: [PATCH] PCI: brcmstb: Wait for Raspberry Pi's firmware when present
-
-xHCI's PCI fixup, run at the end of pcie-brcmstb's probe, depends on
-RPi4's VideoCore firmware interface to be up and running. It's possible
-for both initializations to race, so make sure it's available prior to
-starting.
-
-Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
-Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
----
- drivers/pci/controller/pcie-brcmstb.c | 15 +++++++++++++++
- 1 file changed, 15 insertions(+)
-
-diff --git a/drivers/pci/controller/pcie-brcmstb.c b/drivers/pci/controller/pcie-brcmstb.c
-index 6d79d14527a6..aee84679a997 100644
---- a/drivers/pci/controller/pcie-brcmstb.c
-+++ b/drivers/pci/controller/pcie-brcmstb.c
-@@ -28,6 +28,8 @@
- #include <linux/string.h>
- #include <linux/types.h>
-
-+#include <soc/bcm2835/raspberrypi-firmware.h>
-+
- #include "../pci.h"
-
- /* BRCM_PCIE_CAP_REGS - Offset for the mandatory capability config regs */
-@@ -917,11 +919,24 @@ static int brcm_pcie_probe(struct platform_device *pdev)
- {
- struct device_node *np = pdev->dev.of_node, *msi_np;
- struct pci_host_bridge *bridge;
-+ struct device_node *fw_np;
- struct brcm_pcie *pcie;
- struct pci_bus *child;
- struct resource *res;
- int ret;
-
-+ /*
-+ * We have to wait for the Raspberry Pi's firmware interface to be up
-+ * as some PCI fixups depend on it.
-+ */
-+ fw_np = of_find_compatible_node(NULL, NULL,
-+ "raspberrypi,bcm2835-firmware");
-+ if (fw_np && !rpi_firmware_get(fw_np)) {
-+ of_node_put(fw_np);
-+ return -EPROBE_DEFER;
-+ }
-+ of_node_put(fw_np);
-+
- bridge = devm_pci_alloc_host_bridge(&pdev->dev, sizeof(*pcie));
- if (!bridge)
- return -ENOMEM;
---
-2.26.2
-
diff --git a/0001-PCI-tegra-Revert-raw_violation_fixup-for-tegra124.patch b/0001-PCI-tegra-Revert-raw_violation_fixup-for-tegra124.patch
new file mode 100644
index 000000000..0af11db2d
--- /dev/null
+++ b/0001-PCI-tegra-Revert-raw_violation_fixup-for-tegra124.patch
@@ -0,0 +1,65 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Nicolas Chauvet <kwizart@gmail.com>
+Date: Mon, 20 Apr 2020 18:43:04 +0200
+Subject: [PATCH] PCI: tegra: Revert raw_violation_fixup for tegra124
+
+As reported in https://bugzilla.kernel.org/206217 , raw_violation_fixup
+is causing more harm than good in some common use-cases.
+
+This patch as RFC is a partial revert of the 191cd6fb5 commit:
+ "PCI: tegra: Add SW fixup for RAW violations"
+that was first introduced in 5.3 kernel.
+This fix the following regression since then.
+
+When using both the network NIC and I/O on MMC this can lead to the
+following message on jetson-tk1:
+
+ NETDEV WATCHDOG: enp1s0 (r8169): transmit queue 0 timed out
+
+and
+
+ pcieport 0000:00:02.0: AER: Uncorrected (Non-Fatal) error received: 0000:01:00.0
+ r8169 0000:01:00.0: AER: PCIe Bus Error: severity=Uncorrected (Non-Fatal), type=Transaction Layer, (Requester ID)
+ r8169 0000:01:00.0: AER: device [10ec:8168] error status/mask=00004000/00400000
+ r8169 0000:01:00.0: AER: [14] CmpltTO (First)
+ r8169 0000:01:00.0: AER: can't recover (no error_detected callback)
+ pcieport 0000:00:02.0: AER: device recovery failed
+
+After that, the ethernet NIC isn't functional anymore even after reloading
+the module.
+After a reboot, this is reproducible by copying a large file over the
+ethernet NIC to the MMC.
+For some reasons this cannot be reproduced when the same file is copied
+to a tmpfs.
+
+This patch is RFC because it requires more understanding from Nvidia.
+ - Is the fixup (available in l4t downstrem) still needed for upstream ?
+ - Is there a need to update the fixup values for upstream ?
+ - If the fixup is reverted, does the hw bug can still be seen with
+ upstream ?
+
+Others can also provides more understanding:
+ - Conditions to reproduce the bug (or not)...
+
+Signed-off-by: Nicolas Chauvet <kwizart@gmail.com>
+Reviewed-by: Manikanta Maddireddy <mmaddireddy@nvidia.com>
+---
+ drivers/pci/controller/pci-tegra.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/pci/controller/pci-tegra.c b/drivers/pci/controller/pci-tegra.c
+index 235b456698fc..d5a4a167ffa1 100644
+--- a/drivers/pci/controller/pci-tegra.c
++++ b/drivers/pci/controller/pci-tegra.c
+@@ -2470,7 +2470,7 @@ static const struct tegra_pcie_soc tegra124_pcie = {
+ .program_uphy = true,
+ .update_clamp_threshold = true,
+ .program_deskew_time = false,
+- .raw_violation_fixup = true,
++ .raw_violation_fixup = false,
+ .update_fc_timer = false,
+ .has_cache_bars = false,
+ .ectl.enable = false,
+--
+2.26.2
+
diff --git a/0001-Rename-RH_DISABLE_DEPRECATED-to-RHEL_DIFFERENCES.patch b/0001-Rename-RH_DISABLE_DEPRECATED-to-RHEL_DIFFERENCES.patch
new file mode 100644
index 000000000..dd77c307a
--- /dev/null
+++ b/0001-Rename-RH_DISABLE_DEPRECATED-to-RHEL_DIFFERENCES.patch
@@ -0,0 +1,81 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Don Zickus <dzickus@redhat.com>
+Date: Tue, 3 Mar 2020 09:35:28 -0500
+Subject: [PATCH] Rename RH_DISABLE_DEPRECATED to RHEL_DIFFERENCES
+
+The intent of RH_DISABLE_DEPRECATED was to provide Red Hat a
+simple way to disable drivers it did not want to support in RHEL.
+
+As the config option was applied to more drivers and infra, it became
+clear the option was being used for not only deprecating drivers (which
+implied limited support) to disabling drivers (implying no support).
+
+Using the word 'deprecated' seemed confusing in the second scenario.
+Rename the option to be more generic and useable across more parts
+of the kernel tree.
+
+The new wording is RHEL_DIFFERENCES.
+
+Upstream Status: RHEL only
+---
+ Kconfig.redhat | 2 +-
+ arch/x86/kernel/setup.c | 2 +-
+ include/linux/kernel.h | 2 +-
+ kernel/Makefile | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/Kconfig.redhat b/Kconfig.redhat
+index 733a26bd887a..effb81d04bfd 100644
+--- a/Kconfig.redhat
++++ b/Kconfig.redhat
+@@ -5,7 +5,7 @@
+
+ menu "Red Hat options"
+
+-config RH_DISABLE_DEPRECATED
++config RHEL_DIFFERENCES
+ bool "Remove support for deprecated features"
+ help
+ Red Hat may choose to deprecate certain features in its kernels.
+diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
+index 19d57bfc12f9..e677bb144835 100644
+--- a/arch/x86/kernel/setup.c
++++ b/arch/x86/kernel/setup.c
+@@ -1372,7 +1372,7 @@ void __init setup_arch(char **cmdline_p)
+ efi_apply_memmap_quirks();
+ #endif
+
+-#ifdef CONFIG_RH_DISABLE_DEPRECATED
++#ifdef CONFIG_RHEL_DIFFERENCES
+ rh_check_supported();
+ #endif
+
+diff --git a/include/linux/kernel.h b/include/linux/kernel.h
+index 0a0081b10edb..cfaaa6a234d4 100644
+--- a/include/linux/kernel.h
++++ b/include/linux/kernel.h
+@@ -1058,7 +1058,7 @@ static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { }
+
+ struct module;
+
+-#ifdef CONFIG_RH_DISABLE_DEPRECATED
++#ifdef CONFIG_RHEL_DIFFERENCES
+ void mark_hardware_unsupported(const char *msg);
+ void mark_hardware_deprecated(const char *msg);
+ void mark_tech_preview(const char *msg, struct module *mod);
+diff --git a/kernel/Makefile b/kernel/Makefile
+index c0a4904413b5..1a0c362cddfb 100644
+--- a/kernel/Makefile
++++ b/kernel/Makefile
+@@ -12,7 +12,7 @@ obj-y = fork.o exec_domain.o panic.o \
+ notifier.o ksysfs.o cred.o reboot.o \
+ async.o range.o smpboot.o ucount.o
+
+-obj-$(CONFIG_RH_DISABLE_DEPRECATED) += rh_taint.o
++obj-$(CONFIG_RHEL_DIFFERENCES) += rh_taint.o
+
+ obj-$(CONFIG_MODULES) += kmod.o
+ obj-$(CONFIG_MULTIUSER) += groups.o
+--
+2.26.2
+
diff --git a/0001-Revert-arm64-allwinner-dts-a64-add-LCD-related-devic.patch b/0001-Revert-arm64-allwinner-dts-a64-add-LCD-related-devic.patch
new file mode 100644
index 000000000..0ea8f7da8
--- /dev/null
+++ b/0001-Revert-arm64-allwinner-dts-a64-add-LCD-related-devic.patch
@@ -0,0 +1,76 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Peter Robinson <pbrobinson@gmail.com>
+Date: Sun, 12 Jul 2020 13:42:14 +0100
+Subject: [PATCH] Revert "arm64: allwinner: dts: a64: add LCD-related device
+ nodes for PinePhone"
+
+This reverts commit 6b9deda8c30064a254bc66e3f6763281c96db7db.
+---
+ .../dts/allwinner/sun50i-a64-pinephone.dtsi | 37 -------------------
+ 1 file changed, 37 deletions(-)
+
+diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
+index 96d9150423e0..cefda145c3c9 100644
+--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
+@@ -16,15 +16,6 @@ aliases {
+ serial0 = &uart0;
+ };
+
+- backlight: backlight {
+- compatible = "pwm-backlight";
+- pwms = <&r_pwm 0 50000 PWM_POLARITY_INVERTED>;
+- brightness-levels = <0 16 18 20 22 24 26 29 32 35 38 42 46 51 56 62 68 75 83 91 100>;
+- default-brightness-level = <15>;
+- enable-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */
+- power-supply = <&reg_ldo_io0>;
+- };
+-
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+@@ -93,30 +84,6 @@ &dai {
+ status = "okay";
+ };
+
+-&de {
+- status = "okay";
+-};
+-
+-&dphy {
+- status = "okay";
+-};
+-
+-&dsi {
+- vcc-dsi-supply = <&reg_dldo1>;
+- #address-cells = <1>;
+- #size-cells = <0>;
+- status = "okay";
+-
+- panel@0 {
+- compatible = "xingbangda,xbd599";
+- reg = <0>;
+- reset-gpios = <&pio 3 23 GPIO_ACTIVE_LOW>; /* PD23 */
+- iovcc-supply = <&reg_dldo2>;
+- vcc-supply = <&reg_ldo_io0>;
+- backlight = <&backlight>;
+- };
+-};
+-
+ &ehci0 {
+ status = "okay";
+ };
+@@ -221,10 +188,6 @@ &r_pio {
+ */
+ };
+
+-&r_pwm {
+- status = "okay";
+-};
+-
+ &r_rsb {
+ status = "okay";
+
+--
+2.26.2
+
diff --git a/0001-Revert-drm-panel-add-Xingbangda-XBD599-panel.patch b/0001-Revert-drm-panel-add-Xingbangda-XBD599-panel.patch
new file mode 100644
index 000000000..2950f8a79
--- /dev/null
+++ b/0001-Revert-drm-panel-add-Xingbangda-XBD599-panel.patch
@@ -0,0 +1,418 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Peter Robinson <pbrobinson@gmail.com>
+Date: Sun, 12 Jul 2020 13:41:56 +0100
+Subject: [PATCH] Revert "drm: panel: add Xingbangda XBD599 panel"
+
+This reverts commit 5d53795bb19e39f048ac8028ec36ff04765e1237.
+---
+ drivers/gpu/drm/panel/Kconfig | 9 -
+ drivers/gpu/drm/panel/Makefile | 1 -
+ .../gpu/drm/panel/panel-xingbangda-xbd599.c | 366 ------------------
+ 3 files changed, 376 deletions(-)
+ delete mode 100644 drivers/gpu/drm/panel/panel-xingbangda-xbd599.c
+
+diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig
+index 1f55a87bb657..39055c1f0e2f 100644
+--- a/drivers/gpu/drm/panel/Kconfig
++++ b/drivers/gpu/drm/panel/Kconfig
+@@ -462,15 +462,6 @@ config DRM_PANEL_VISIONOX_RM69299
+ Say Y here if you want to enable support for Visionox
+ RM69299 DSI Video Mode panel.
+
+-config DRM_PANEL_XINGBANGDA_XBD599
+- tristate "Xingbangda XBD599 panel"
+- depends on OF
+- depends on DRM_MIPI_DSI
+- depends on BACKLIGHT_CLASS_DEVICE
+- help
+- Say Y here if you want to enable support for the Xingbangda XBD599
+- MIPI DSI Video Mode panel.
+-
+ config DRM_PANEL_XINPENG_XPP055C272
+ tristate "Xinpeng XPP055C272 panel driver"
+ depends on OF
+diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile
+index 7b6b0c0397d6..de74f282c433 100644
+--- a/drivers/gpu/drm/panel/Makefile
++++ b/drivers/gpu/drm/panel/Makefile
+@@ -49,5 +49,4 @@ obj-$(CONFIG_DRM_PANEL_TPO_TD043MTEA1) += panel-tpo-td043mtea1.o
+ obj-$(CONFIG_DRM_PANEL_TPO_TPG110) += panel-tpo-tpg110.o
+ obj-$(CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA) += panel-truly-nt35597.o
+ obj-$(CONFIG_DRM_PANEL_VISIONOX_RM69299) += panel-visionox-rm69299.o
+-obj-$(CONFIG_DRM_PANEL_XINGBANGDA_XBD599) += panel-xingbangda-xbd599.o
+ obj-$(CONFIG_DRM_PANEL_XINPENG_XPP055C272) += panel-xinpeng-xpp055c272.o
+diff --git a/drivers/gpu/drm/panel/panel-xingbangda-xbd599.c b/drivers/gpu/drm/panel/panel-xingbangda-xbd599.c
+deleted file mode 100644
+index b483f96ee1db..000000000000
+--- a/drivers/gpu/drm/panel/panel-xingbangda-xbd599.c
++++ /dev/null
+@@ -1,366 +0,0 @@
+-// SPDX-License-Identifier: GPL-2.0
+-/*
+- * Xingbangda XBD599 MIPI-DSI panel driver
+- *
+- * Copyright (C) 2019-2020 Icenowy Zheng <icenowy@aosc.io>
+- *
+- * Based on panel-rocktech-jh057n00900.c, which is:
+- * Copyright (C) Purism SPC 2019
+- */
+-
+-#include <linux/delay.h>
+-#include <linux/gpio/consumer.h>
+-#include <linux/mod_devicetable.h>
+-#include <linux/module.h>
+-#include <linux/of_device.h>
+-#include <linux/regulator/consumer.h>
+-
+-#include <drm/drm_mipi_dsi.h>
+-#include <drm/drm_modes.h>
+-#include <drm/drm_panel.h>
+-#include <drm/drm_print.h>
+-
+-/* Manufacturer specific Commands send via DSI */
+-#define ST7703_CMD_ALL_PIXEL_OFF 0x22
+-#define ST7703_CMD_ALL_PIXEL_ON 0x23
+-#define ST7703_CMD_SETDISP 0xB2
+-#define ST7703_CMD_SETRGBIF 0xB3
+-#define ST7703_CMD_SETCYC 0xB4
+-#define ST7703_CMD_SETBGP 0xB5
+-#define ST7703_CMD_SETVCOM 0xB6
+-#define ST7703_CMD_SETOTP 0xB7
+-#define ST7703_CMD_SETPOWER_EXT 0xB8
+-#define ST7703_CMD_SETEXTC 0xB9
+-#define ST7703_CMD_SETMIPI 0xBA
+-#define ST7703_CMD_SETVDC 0xBC
+-#define ST7703_CMD_SETSCR 0xC0
+-#define ST7703_CMD_SETPOWER 0xC1
+-#define ST7703_CMD_UNK_C6 0xC6
+-#define ST7703_CMD_SETPANEL 0xCC
+-#define ST7703_CMD_SETGAMMA 0xE0
+-#define ST7703_CMD_SETEQ 0xE3
+-#define ST7703_CMD_SETGIP1 0xE9
+-#define ST7703_CMD_SETGIP2 0xEA
+-
+-static const char * const regulator_names[] = {
+- "iovcc",
+- "vcc",
+-};
+-
+-struct xbd599 {
+- struct device *dev;
+- struct drm_panel panel;
+- struct gpio_desc *reset_gpio;
+- struct regulator_bulk_data supplies[ARRAY_SIZE(regulator_names)];
+- bool prepared;
+-};
+-
+-static inline struct xbd599 *panel_to_xbd599(struct drm_panel *panel)
+-{
+- return container_of(panel, struct xbd599, panel);
+-}
+-
+-#define dsi_dcs_write_seq(dsi, cmd, seq...) do { \
+- static const u8 d[] = { seq }; \
+- int ret; \
+- ret = mipi_dsi_dcs_write(dsi, cmd, d, ARRAY_SIZE(d)); \
+- if (ret < 0) \
+- return ret; \
+- } while (0)
+-
+-static int xbd599_init_sequence(struct xbd599 *ctx)
+-{
+- struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
+- struct device *dev = ctx->dev;
+- int ret;
+-
+- /*
+- * Init sequence was supplied by the panel vendor.
+- */
+- dsi_dcs_write_seq(dsi, ST7703_CMD_SETEXTC,
+- 0xF1, 0x12, 0x83);
+- dsi_dcs_write_seq(dsi, ST7703_CMD_SETMIPI,
+- 0x33, 0x81, 0x05, 0xF9, 0x0E, 0x0E, 0x20, 0x00,
+- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x25,
+- 0x00, 0x91, 0x0a, 0x00, 0x00, 0x02, 0x4F, 0x11,
+- 0x00, 0x00, 0x37);
+- dsi_dcs_write_seq(dsi, ST7703_CMD_SETPOWER_EXT,
+- 0x25, 0x22, 0x20, 0x03);
+- dsi_dcs_write_seq(dsi, ST7703_CMD_SETRGBIF,
+- 0x10, 0x10, 0x05, 0x05, 0x03, 0xFF, 0x00, 0x00,
+- 0x00, 0x00);
+- dsi_dcs_write_seq(dsi, ST7703_CMD_SETSCR,
+- 0x73, 0x73, 0x50, 0x50, 0x00, 0xC0, 0x08, 0x70,
+- 0x00);
+- dsi_dcs_write_seq(dsi, ST7703_CMD_SETVDC, 0x4E);
+- dsi_dcs_write_seq(dsi, ST7703_CMD_SETPANEL, 0x0B);
+- dsi_dcs_write_seq(dsi, ST7703_CMD_SETCYC, 0x80);
+- dsi_dcs_write_seq(dsi, ST7703_CMD_SETDISP, 0xF0, 0x12, 0xF0);
+- dsi_dcs_write_seq(dsi, ST7703_CMD_SETEQ,
+- 0x00, 0x00, 0x0B, 0x0B, 0x10, 0x10, 0x00, 0x00,
+- 0x00, 0x00, 0xFF, 0x00, 0xC0, 0x10);
+- dsi_dcs_write_seq(dsi, 0xC6, 0x01, 0x00, 0xFF, 0xFF, 0x00);
+- dsi_dcs_write_seq(dsi, ST7703_CMD_SETPOWER,
+- 0x74, 0x00, 0x32, 0x32, 0x77, 0xF1, 0xFF, 0xFF,
+- 0xCC, 0xCC, 0x77, 0x77);
+- dsi_dcs_write_seq(dsi, ST7703_CMD_SETBGP, 0x07, 0x07);
+- dsi_dcs_write_seq(dsi, ST7703_CMD_SETVCOM, 0x2C, 0x2C);
+- dsi_dcs_write_seq(dsi, 0xBF, 0x02, 0x11, 0x00);
+-
+- dsi_dcs_write_seq(dsi, ST7703_CMD_SETGIP1,
+- 0x82, 0x10, 0x06, 0x05, 0xA2, 0x0A, 0xA5, 0x12,
+- 0x31, 0x23, 0x37, 0x83, 0x04, 0xBC, 0x27, 0x38,
+- 0x0C, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x00,
+- 0x03, 0x00, 0x00, 0x00, 0x75, 0x75, 0x31, 0x88,
+- 0x88, 0x88, 0x88, 0x88, 0x88, 0x13, 0x88, 0x64,
+- 0x64, 0x20, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+- 0x02, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
+- dsi_dcs_write_seq(dsi, ST7703_CMD_SETGIP2,
+- 0x02, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+- 0x00, 0x00, 0x00, 0x00, 0x02, 0x46, 0x02, 0x88,
+- 0x88, 0x88, 0x88, 0x88, 0x88, 0x64, 0x88, 0x13,
+- 0x57, 0x13, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+- 0x75, 0x88, 0x23, 0x14, 0x00, 0x00, 0x02, 0x00,
+- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0A,
+- 0xA5, 0x00, 0x00, 0x00, 0x00);
+- dsi_dcs_write_seq(dsi, ST7703_CMD_SETGAMMA,
+- 0x00, 0x09, 0x0D, 0x23, 0x27, 0x3C, 0x41, 0x35,
+- 0x07, 0x0D, 0x0E, 0x12, 0x13, 0x10, 0x12, 0x12,
+- 0x18, 0x00, 0x09, 0x0D, 0x23, 0x27, 0x3C, 0x41,
+- 0x35, 0x07, 0x0D, 0x0E, 0x12, 0x13, 0x10, 0x12,
+- 0x12, 0x18);
+- msleep(20);
+-
+- ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
+- if (ret < 0) {
+- DRM_DEV_ERROR(dev, "Failed to exit sleep mode\n");
+- return ret;
+- }
+- msleep(250);
+-
+- ret = mipi_dsi_dcs_set_display_on(dsi);
+- if (ret)
+- return ret;
+- msleep(50);
+-
+- DRM_DEV_DEBUG_DRIVER(dev, "Panel init sequence done\n");
+- return 0;
+-}
+-
+-static int xbd599_prepare(struct drm_panel *panel)
+-{
+- struct xbd599 *ctx = panel_to_xbd599(panel);
+- int ret;
+-
+- if (ctx->prepared)
+- return 0;
+-
+- ret = regulator_bulk_enable(ARRAY_SIZE(ctx->supplies), ctx->supplies);
+- if (ret)
+- return ret;
+-
+- DRM_DEV_DEBUG_DRIVER(ctx->dev, "Resetting the panel\n");
+- gpiod_set_value_cansleep(ctx->reset_gpio, 1);
+- usleep_range(20, 40);
+- gpiod_set_value_cansleep(ctx->reset_gpio, 0);
+- msleep(20);
+-
+- ctx->prepared = true;
+-
+- return 0;
+-}
+-
+-static int xbd599_enable(struct drm_panel *panel)
+-{
+- struct xbd599 *ctx = panel_to_xbd599(panel);
+- int ret;
+-
+- ret = xbd599_init_sequence(ctx);
+- if (ret < 0) {
+- DRM_DEV_ERROR(ctx->dev, "Panel init sequence failed: %d\n",
+- ret);
+- return ret;
+- }
+-
+- return 0;
+-}
+-
+-static int xbd599_disable(struct drm_panel *panel)
+-{
+- struct xbd599 *ctx = panel_to_xbd599(panel);
+- struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
+-
+- return mipi_dsi_dcs_set_display_off(dsi);
+-}
+-
+-static int xbd599_unprepare(struct drm_panel *panel)
+-{
+- struct xbd599 *ctx = panel_to_xbd599(panel);
+-
+- if (!ctx->prepared)
+- return 0;
+-
+- gpiod_set_value_cansleep(ctx->reset_gpio, 1);
+- regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies);
+- ctx->prepared = false;
+-
+- return 0;
+-}
+-
+-static const struct drm_display_mode xbd599_default_mode = {
+- .hdisplay = 720,
+- .hsync_start = 720 + 40,
+- .hsync_end = 720 + 40 + 40,
+- .htotal = 720 + 40 + 40 + 40,
+- .vdisplay = 1440,
+- .vsync_start = 1440 + 18,
+- .vsync_end = 1440 + 18 + 10,
+- .vtotal = 1440 + 18 + 10 + 17,
+- .vrefresh = 60,
+- .clock = 69000,
+- .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
+-
+- .width_mm = 68,
+- .height_mm = 136,
+- .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
+-};
+-
+-static int xbd599_get_modes(struct drm_panel *panel,
+- struct drm_connector *connector)
+-{
+- struct xbd599 *ctx = panel_to_xbd599(panel);
+- struct drm_display_mode *mode;
+-
+- mode = drm_mode_duplicate(connector->dev, &xbd599_default_mode);
+- if (!mode) {
+- DRM_DEV_ERROR(ctx->dev, "Failed to add mode\n");
+- return -ENOMEM;
+- }
+-
+- drm_mode_set_name(mode);
+-
+- mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
+- connector->display_info.width_mm = mode->width_mm;
+- connector->display_info.height_mm = mode->height_mm;
+- drm_mode_probed_add(connector, mode);
+-
+- return 1;
+-}
+-
+-static const struct drm_panel_funcs xbd599_drm_funcs = {
+- .prepare = xbd599_prepare,
+- .enable = xbd599_enable,
+- .disable = xbd599_disable,
+- .unprepare = xbd599_unprepare,
+- .get_modes = xbd599_get_modes,
+-};
+-
+-static int xbd599_probe(struct mipi_dsi_device *dsi)
+-{
+- struct device *dev = &dsi->dev;
+- struct xbd599 *ctx;
+- int i, ret;
+-
+- ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
+- if (!ctx)
+- return -ENOMEM;
+-
+- for (i = 0; i < ARRAY_SIZE(ctx->supplies); i++)
+- ctx->supplies[i].supply = regulator_names[i];
+-
+- ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(ctx->supplies),
+- ctx->supplies);
+- if (ret < 0) {
+- DRM_DEV_ERROR(&dsi->dev, "cannot get regulators\n");
+- return ret;
+- }
+-
+- ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
+- if (IS_ERR(ctx->reset_gpio)) {
+- DRM_DEV_ERROR(dev, "cannot get reset gpio\n");
+- return PTR_ERR(ctx->reset_gpio);
+- }
+-
+- mipi_dsi_set_drvdata(dsi, ctx);
+-
+- ctx->dev = dev;
+-
+- dsi->lanes = 4;
+- dsi->format = MIPI_DSI_FMT_RGB888;
+- dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE;
+-
+- drm_panel_init(&ctx->panel, &dsi->dev, &xbd599_drm_funcs,
+- DRM_MODE_CONNECTOR_DSI);
+-
+- ret = drm_panel_of_backlight(&ctx->panel);
+- if (ret)
+- return ret;
+-
+- drm_panel_add(&ctx->panel);
+-
+- ret = mipi_dsi_attach(dsi);
+- if (ret < 0) {
+- DRM_DEV_ERROR(dev, "mipi_dsi_attach failed. Is host ready?\n");
+- drm_panel_remove(&ctx->panel);
+- return ret;
+- }
+-
+- DRM_DEV_INFO(dev, "%ux%u@%u %ubpp dsi %udl - ready\n",
+- xbd599_default_mode.hdisplay,
+- xbd599_default_mode.vdisplay,
+- xbd599_default_mode.vrefresh,
+- mipi_dsi_pixel_format_to_bpp(dsi->format), dsi->lanes);
+-
+- return 0;
+-}
+-
+-static void xbd599_shutdown(struct mipi_dsi_device *dsi)
+-{
+- struct xbd599 *ctx = mipi_dsi_get_drvdata(dsi);
+- int ret;
+-
+- ret = drm_panel_unprepare(&ctx->panel);
+- if (ret < 0)
+- DRM_DEV_ERROR(&dsi->dev, "Failed to unprepare panel: %d\n",
+- ret);
+-}
+-
+-static int xbd599_remove(struct mipi_dsi_device *dsi)
+-{
+- struct xbd599 *ctx = mipi_dsi_get_drvdata(dsi);
+- int ret;
+-
+- xbd599_shutdown(dsi);
+-
+- ret = mipi_dsi_detach(dsi);
+- if (ret < 0)
+- DRM_DEV_ERROR(&dsi->dev, "Failed to detach from DSI host: %d\n",
+- ret);
+-
+- drm_panel_remove(&ctx->panel);
+-
+- return 0;
+-}
+-
+-static const struct of_device_id xbd599_of_match[] = {
+- { .compatible = "xingbangda,xbd599", },
+- { /* sentinel */ }
+-};
+-MODULE_DEVICE_TABLE(of, xbd599_of_match);
+-
+-static struct mipi_dsi_driver xbd599_driver = {
+- .probe = xbd599_probe,
+- .remove = xbd599_remove,
+- .shutdown = xbd599_shutdown,
+- .driver = {
+- .name = "panel-xingbangda-xbd599",
+- .of_match_table = xbd599_of_match,
+- },
+-};
+-module_mipi_dsi_driver(xbd599_driver);
+-
+-MODULE_AUTHOR("Icenowy Zheng <icenowy@aosc.io>");
+-MODULE_DESCRIPTION("DRM driver for Xingbangda XBD599 MIPI DSI panel");
+-MODULE_LICENSE("GPL v2");
+--
+2.26.2
+
diff --git a/0001-Revert-drm-sun4i-sun6i_mipi_dsi-fix-horizontal-timin.patch b/0001-Revert-drm-sun4i-sun6i_mipi_dsi-fix-horizontal-timin.patch
new file mode 100644
index 000000000..c290e7ab7
--- /dev/null
+++ b/0001-Revert-drm-sun4i-sun6i_mipi_dsi-fix-horizontal-timin.patch
@@ -0,0 +1,56 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Peter Robinson <pbrobinson@gmail.com>
+Date: Sun, 12 Jul 2020 13:42:04 +0100
+Subject: [PATCH] Revert "drm/sun4i: sun6i_mipi_dsi: fix horizontal timing
+ calculation"
+
+This reverts commit d20a2ac9c6ecf514e115f06b6744b584bbc7c1b8.
+---
+ drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
+index 52e009dc632b..aa67cb037e9d 100644
+--- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
++++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
+@@ -556,7 +556,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi,
+ */
+ #define HSA_PACKET_OVERHEAD 10
+ hsa = max((unsigned int)HSA_PACKET_OVERHEAD,
+- (mode->hsync_end - mode->hsync_start) * Bpp) - HSA_PACKET_OVERHEAD;
++ (mode->hsync_end - mode->hsync_start) * Bpp - HSA_PACKET_OVERHEAD);
+
+ /*
+ * The backporch is set using a blanking packet (4
+@@ -565,7 +565,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi,
+ */
+ #define HBP_PACKET_OVERHEAD 6
+ hbp = max((unsigned int)HBP_PACKET_OVERHEAD,
+- (mode->htotal - mode->hsync_end) * Bpp) - HBP_PACKET_OVERHEAD;
++ (mode->htotal - mode->hsync_end) * Bpp - HBP_PACKET_OVERHEAD);
+
+ /*
+ * The frontporch is set using a sync event (4 bytes)
+@@ -575,7 +575,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi,
+ */
+ #define HFP_PACKET_OVERHEAD 16
+ hfp = max((unsigned int)HFP_PACKET_OVERHEAD,
+- (mode->hsync_start - mode->hdisplay) * Bpp) - HFP_PACKET_OVERHEAD;
++ (mode->hsync_start - mode->hdisplay) * Bpp - HFP_PACKET_OVERHEAD);
+
+ /*
+ * The blanking is set using a sync event (4 bytes)
+@@ -584,8 +584,8 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi,
+ */
+ #define HBLK_PACKET_OVERHEAD 10
+ hblk = max((unsigned int)HBLK_PACKET_OVERHEAD,
+- (mode->htotal - (mode->hsync_end - mode->hsync_start)) * Bpp) -
+- HBLK_PACKET_OVERHEAD;
++ (mode->htotal - (mode->hsync_end - mode->hsync_start)) * Bpp -
++ HBLK_PACKET_OVERHEAD);
+
+ /*
+ * And I'm not entirely sure what vblk is about. The driver in
+--
+2.26.2
+
diff --git a/0001-Revert-dt-bindings-panel-add-binding-for-Xingbangda-.patch b/0001-Revert-dt-bindings-panel-add-binding-for-Xingbangda-.patch
new file mode 100644
index 000000000..990e624d3
--- /dev/null
+++ b/0001-Revert-dt-bindings-panel-add-binding-for-Xingbangda-.patch
@@ -0,0 +1,71 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Peter Robinson <pbrobinson@gmail.com>
+Date: Sun, 12 Jul 2020 13:41:49 +0100
+Subject: [PATCH] Revert "dt-bindings: panel: add binding for Xingbangda XBD599
+ panel"
+
+This reverts commit 8a717270db2000ff734d89e9448b32fbc038c49a.
+---
+ .../display/panel/xingbangda,xbd599.yaml | 50 -------------------
+ 1 file changed, 50 deletions(-)
+ delete mode 100644 Documentation/devicetree/bindings/display/panel/xingbangda,xbd599.yaml
+
+diff --git a/Documentation/devicetree/bindings/display/panel/xingbangda,xbd599.yaml b/Documentation/devicetree/bindings/display/panel/xingbangda,xbd599.yaml
+deleted file mode 100644
+index b27bcf11198f..000000000000
+--- a/Documentation/devicetree/bindings/display/panel/xingbangda,xbd599.yaml
++++ /dev/null
+@@ -1,50 +0,0 @@
+-# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+-%YAML 1.2
+----
+-$id: http://devicetree.org/schemas/display/panel/xingbangda,xbd599.yaml#
+-$schema: http://devicetree.org/meta-schemas/core.yaml#
+-
+-title: Xingbangda XBD599 5.99in MIPI-DSI LCD panel
+-
+-maintainers:
+- - Icenowy Zheng <icenowy@aosc.io>
+-
+-allOf:
+- - $ref: panel-common.yaml#
+-
+-properties:
+- compatible:
+- const: xingbangda,xbd599
+- reg: true
+- backlight: true
+- reset-gpios: true
+- vcc-supply:
+- description: regulator that supplies the VCC voltage
+- iovcc-supply:
+- description: regulator that supplies the IOVCC voltage
+-
+-required:
+- - compatible
+- - reg
+- - backlight
+- - vcc-supply
+- - iovcc-supply
+-
+-additionalProperties: false
+-
+-examples:
+- - |
+- dsi {
+- #address-cells = <1>;
+- #size-cells = <0>;
+-
+- panel@0 {
+- compatible = "xingbangda,xbd599";
+- reg = <0>;
+- backlight = <&backlight>;
+- iovcc-supply = <&reg_dldo2>;
+- vcc-supply = <&reg_ldo_io0>;
+- };
+- };
+-
+-...
+--
+2.26.2
+
diff --git a/0001-USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch b/0001-USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch
deleted file mode 100644
index 7f13ec1f5..000000000
--- a/0001-USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
-Date: Tue, 10 Mar 2020 13:52:42 +0100
-Subject: [PATCH] USB: pci-quirks: Add Raspberry Pi 4 quirk
-
-On the Raspberry Pi 4, after a PCI reset, VL805's firmware may either be
-loaded directly from an EEPROM or, if not present, by the SoC's
-VideCore. Inform VideCore that VL805 was just reset.
-
-Also, as this creates a dependency between XHCI_PCI and VideoCore's
-firmware interface, reflect that on the firmware interface Kconfg.
-
-Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
----
- drivers/firmware/Kconfig | 1 +
- drivers/usb/host/pci-quirks.c | 16 ++++++++++++++++
- 2 files changed, 17 insertions(+)
-
-diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig
-index 8007d4aa76dc..7ca346d3d337 100644
---- a/drivers/firmware/Kconfig
-+++ b/drivers/firmware/Kconfig
-@@ -180,6 +180,7 @@ config ISCSI_IBFT
- config RASPBERRYPI_FIRMWARE
- tristate "Raspberry Pi Firmware Driver"
- depends on BCM2835_MBOX
-+ default XHCI_PCI
- help
- This option enables support for communicating with the firmware on the
- Raspberry Pi.
-diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
-index beb2efa71341..0dc34668bb2a 100644
---- a/drivers/usb/host/pci-quirks.c
-+++ b/drivers/usb/host/pci-quirks.c
-@@ -16,6 +16,9 @@
- #include <linux/export.h>
- #include <linux/acpi.h>
- #include <linux/dmi.h>
-+
-+#include <soc/bcm2835/raspberrypi-firmware.h>
-+
- #include "pci-quirks.h"
- #include "xhci-ext-caps.h"
-
-@@ -1243,11 +1246,24 @@ static void quirk_usb_handoff_xhci(struct pci_dev *pdev)
-
- static void quirk_usb_early_handoff(struct pci_dev *pdev)
- {
-+ int ret;
-+
- /* Skip Netlogic mips SoC's internal PCI USB controller.
- * This device does not need/support EHCI/OHCI handoff
- */
- if (pdev->vendor == 0x184e) /* vendor Netlogic */
- return;
-+
-+ if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) {
-+ ret = rpi_firmware_init_vl805(pdev);
-+ if (ret) {
-+ /* Firmware might be outdated, or something failed */
-+ dev_warn(&pdev->dev,
-+ "Failed to load VL805's firmware: %d. Will continue to attempt to work, but bad things might happen. You should fix this...\n",
-+ ret);
-+ }
-+ }
-+
- if (pdev->class != PCI_CLASS_SERIAL_USB_UHCI &&
- pdev->class != PCI_CLASS_SERIAL_USB_OHCI &&
- pdev->class != PCI_CLASS_SERIAL_USB_EHCI &&
---
-2.26.2
-
diff --git a/0001-Vulcan-AHCI-PCI-bar-fix-for-Broadcom-Vulcan-early-si.patch b/0001-Vulcan-AHCI-PCI-bar-fix-for-Broadcom-Vulcan-early-si.patch
index 828ed5d9a..6352ff73a 100644
--- a/0001-Vulcan-AHCI-PCI-bar-fix-for-Broadcom-Vulcan-early-si.patch
+++ b/0001-Vulcan-AHCI-PCI-bar-fix-for-Broadcom-Vulcan-early-si.patch
@@ -36,10 +36,10 @@ Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
1 file changed, 24 insertions(+)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
-index ca9ed5774eb1..bd0cee4236b0 100644
+index 2ea61abd5830..abb314891f5b 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
-@@ -4183,6 +4183,30 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9000,
+@@ -4196,6 +4196,30 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9000,
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9084,
quirk_bridge_cavm_thrx2_pcie_root);
diff --git a/0001-Work-around-for-gcc-bug-https-gcc.gnu.org-bugzilla-s.patch b/0001-Work-around-for-gcc-bug-https-gcc.gnu.org-bugzilla-s.patch
new file mode 100644
index 000000000..93b1e9be0
--- /dev/null
+++ b/0001-Work-around-for-gcc-bug-https-gcc.gnu.org-bugzilla-s.patch
@@ -0,0 +1,29 @@
+From 90750a5b1205a7dcc002224738585b861779cdae Mon Sep 17 00:00:00 2001
+From: "Justin M. Forbes" <jforbes@fedoraproject.org>
+Date: Thu, 30 Jul 2020 10:26:11 -0500
+Subject: [PATCH] Work around for gcc bug
+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96377
+
+Signed-off-by: Justin M. Forbes <jforbes@fedoraproject.org>
+---
+ crypto/aegis128-neon-inner.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/crypto/aegis128-neon-inner.c b/crypto/aegis128-neon-inner.c
+index 2a660ac1bc3a..fa87ff6a2a71 100644
+--- a/crypto/aegis128-neon-inner.c
++++ b/crypto/aegis128-neon-inner.c
+@@ -148,8 +148,8 @@ void crypto_aegis128_init_neon(void *state, const void *key, const void *iv)
+ kiv,
+ vld1q_u8(const1),
+ vld1q_u8(const0),
+- k ^ vld1q_u8(const0),
+- k ^ vld1q_u8(const1),
++ (uint8x16_t) (k ^ vld1q_u8(const0)),
++ (uint8x16_t) (k ^ vld1q_u8(const1)),
+ }};
+ int i;
+
+--
+2.26.2
+
diff --git a/0001-aarch64-acpi-scan-Fix-regression-related-to-X-Gene-U.patch b/0001-aarch64-acpi-scan-Fix-regression-related-to-X-Gene-U.patch
index 86cbf5dad..eea0deea2 100644
--- a/0001-aarch64-acpi-scan-Fix-regression-related-to-X-Gene-U.patch
+++ b/0001-aarch64-acpi-scan-Fix-regression-related-to-X-Gene-U.patch
@@ -28,10 +28,10 @@ Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
1 file changed, 9 insertions(+)
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
-index 6d3448895382..221255007dc8 100644
+index 8777faced51a..2e60d792005f 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
-@@ -1563,6 +1563,15 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
+@@ -1572,6 +1572,15 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
if (!acpi_match_device_ids(device, i2c_multi_instantiate_ids))
return false;
diff --git a/0001-acpi-prefer-booting-with-ACPI-over-DTS.patch b/0001-acpi-prefer-booting-with-ACPI-over-DTS.patch
deleted file mode 100644
index e188b5a2d..000000000
--- a/0001-acpi-prefer-booting-with-ACPI-over-DTS.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Mark Salter <msalter@redhat.com>
-Date: Fri, 11 May 2018 21:01:17 -0400
-Subject: [PATCH] acpi: prefer booting with ACPI over DTS
-
-Message-id: <20180511210117.10457-1-msalter@redhat.com>
-Patchwork-id: 214708
-O-Subject: [RHEL-8 BZ1576869] [RHEL only] acpi: prefer booting with ACPI over DTS
-Bugzilla: 1576869
-RH-Acked-by: Jonathan Toppins <jtoppins@redhat.com>
-RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
-RH-Acked-by: Bhupesh Sharma <bhsharma@redhat.com>
-RH-Acked-by: Dean Nelson <dnelson@redhat.com>
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1576869
-Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=16208479
-Testing: Verified kernel defaults to ACPI on Mustang
-
-From: Jonathan Toppins <jtoppins@redhat.com>
-
- This patch forces ACPI boot tables to be preferred over DTS.
-
- Currently for ACPI to be used a user either has to set acpi=on on the
- kernel command line or make sure any device tree passed to the kernel
- is empty. If the dtb passed to the kernel is non-empty then device-tree
- will be chosen as the boot method of choice.
-
- RHEL does not wish to support this boot method so change table boot
- preferences to use ACPI. In the event ACPI table checks fail the kernel
- will fallback to using DTS to boot.
-
- Signed-off-by: Jonathan Toppins <jtoppins@redhat.com>
-
-Upstream Status: RHEL only
-Signed-off-by: Mark Salter <msalter@redhat.com>
-Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
----
- arch/arm64/kernel/acpi.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm64/kernel/acpi.c b/arch/arm64/kernel/acpi.c
-index a100483b47c4..29f693734edb 100644
---- a/arch/arm64/kernel/acpi.c
-+++ b/arch/arm64/kernel/acpi.c
-@@ -39,7 +39,7 @@ int acpi_pci_disabled = 1; /* skip ACPI PCI scan and IRQ initialization */
- EXPORT_SYMBOL(acpi_pci_disabled);
-
- static bool param_acpi_off __initdata;
--static bool param_acpi_on __initdata;
-+static bool param_acpi_on __initdata = true;
- static bool param_acpi_force __initdata;
-
- static int __init parse_acpi(char *arg)
---
-2.26.2
-
diff --git a/0001-acr-Use-kmemdup-instead-of-kmalloc-and-memcpy.patch b/0001-acr-Use-kmemdup-instead-of-kmalloc-and-memcpy.patch
deleted file mode 100644
index 9470c4608..000000000
--- a/0001-acr-Use-kmemdup-instead-of-kmalloc-and-memcpy.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Zou Wei <zou_wei@huawei.com>
-Date: Tue, 21 Apr 2020 20:37:31 +0800
-Subject: [PATCH] acr: Use kmemdup instead of kmalloc and memcpy
-
-Fixes coccicheck warning:
-
-drivers/gpu/drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c:103:23-30: WARNING opportunity for kmemdup
-drivers/gpu/drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c:113:22-29: WARNING opportunity for kmemdup
-
-Fixes: 22dcda45a3d1 ("drivers/gpu/drm/nouveau/acr: implement new subdev to replace "secure boot"")
-Reported-by: Hulk Robot <hulkci@huawei.com>
-Signed-off-by: Zou Wei <zou_wei@huawei.com>
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
----
- drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c | 12 ++++--------
- 1 file changed, 4 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c
-index aecce2dac558..667fa016496e 100644
---- a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/hsfw.c
-@@ -100,25 +100,21 @@ nvkm_acr_hsfw_load_image(struct nvkm_acr *acr, const char *name, int ver,
- hsfw->data_size = lhdr->data_size;
-
- hsfw->sig.prod.size = fwhdr->sig_prod_size;
-- hsfw->sig.prod.data = kmalloc(hsfw->sig.prod.size, GFP_KERNEL);
-+ hsfw->sig.prod.data = kmemdup(fw->data + fwhdr->sig_prod_offset + sig,
-+ hsfw->sig.prod.size, GFP_KERNEL);
- if (!hsfw->sig.prod.data) {
- ret = -ENOMEM;
- goto done;
- }
-
-- memcpy(hsfw->sig.prod.data, fw->data + fwhdr->sig_prod_offset + sig,
-- hsfw->sig.prod.size);
--
- hsfw->sig.dbg.size = fwhdr->sig_dbg_size;
-- hsfw->sig.dbg.data = kmalloc(hsfw->sig.dbg.size, GFP_KERNEL);
-+ hsfw->sig.dbg.data = kmemdup(fw->data + fwhdr->sig_dbg_offset + sig,
-+ hsfw->sig.dbg.size, GFP_KERNEL);
- if (!hsfw->sig.dbg.data) {
- ret = -ENOMEM;
- goto done;
- }
-
-- memcpy(hsfw->sig.dbg.data, fw->data + fwhdr->sig_dbg_offset + sig,
-- hsfw->sig.dbg.size);
--
- hsfw->sig.patch_loc = loc;
- done:
- nvkm_firmware_put(fw);
---
-2.26.2
-
diff --git a/0001-arm-aarch64-Drop-the-EXPERT-setting-from-ARM64_FORCE.patch b/0001-arm-aarch64-Drop-the-EXPERT-setting-from-ARM64_FORCE.patch
index 286c898cb..89eea8f8b 100644
--- a/0001-arm-aarch64-Drop-the-EXPERT-setting-from-ARM64_FORCE.patch
+++ b/0001-arm-aarch64-Drop-the-EXPERT-setting-from-ARM64_FORCE.patch
@@ -21,10 +21,10 @@ Signed-off-by: Jeremy Cline <jcline@redhat.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
-index 5d513f461957..7f37a6d0658a 100644
+index 66dc41fd49f2..2e0700a451e5 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
-@@ -858,7 +858,7 @@ endchoice
+@@ -861,7 +861,7 @@ endchoice
config ARM64_FORCE_52BIT
bool "Force 52-bit virtual addresses for userspace"
diff --git a/0001-arm-make-CONFIG_HIGHPTE-optional-without-CONFIG_EXPE.patch b/0001-arm-make-CONFIG_HIGHPTE-optional-without-CONFIG_EXPE.patch
index 040f33cb1..498ffaf18 100644
--- a/0001-arm-make-CONFIG_HIGHPTE-optional-without-CONFIG_EXPE.patch
+++ b/0001-arm-make-CONFIG_HIGHPTE-optional-without-CONFIG_EXPE.patch
@@ -11,10 +11,10 @@ Signed-off-by: Jon Masters <jcm@redhat.com>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index c77c93c485a0..f808c4e0727f 100644
+index 2ac74904a3ce..f0094424f76a 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
-@@ -1543,9 +1543,9 @@ config HIGHMEM
+@@ -1549,9 +1549,9 @@ config HIGHMEM
If unsure, say n.
config HIGHPTE
diff --git a/0001-arm64-allwinner-dts-a64-add-LCD-related-device-nodes.patch b/0001-arm64-allwinner-dts-a64-add-LCD-related-device-nodes.patch
new file mode 100644
index 000000000..e3b07c2bb
--- /dev/null
+++ b/0001-arm64-allwinner-dts-a64-add-LCD-related-device-nodes.patch
@@ -0,0 +1,81 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Icenowy Zheng <icenowy@aosc.io>
+Date: Mon, 16 Mar 2020 21:35:03 +0800
+Subject: [PATCH] arm64: allwinner: dts: a64: add LCD-related device nodes for
+ PinePhone
+
+PinePhone uses PWM backlight and a XBD599 LCD panel over DSI for
+display.
+
+Add its device nodes.
+
+Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
+---
+ .../dts/allwinner/sun50i-a64-pinephone.dtsi | 37 +++++++++++++++++++
+ 1 file changed, 37 insertions(+)
+
+diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
+index cefda145c3c9..96d9150423e0 100644
+--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
+@@ -16,6 +16,15 @@ aliases {
+ serial0 = &uart0;
+ };
+
++ backlight: backlight {
++ compatible = "pwm-backlight";
++ pwms = <&r_pwm 0 50000 PWM_POLARITY_INVERTED>;
++ brightness-levels = <0 16 18 20 22 24 26 29 32 35 38 42 46 51 56 62 68 75 83 91 100>;
++ default-brightness-level = <15>;
++ enable-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */
++ power-supply = <&reg_ldo_io0>;
++ };
++
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+@@ -84,6 +93,30 @@ &dai {
+ status = "okay";
+ };
+
++&de {
++ status = "okay";
++};
++
++&dphy {
++ status = "okay";
++};
++
++&dsi {
++ vcc-dsi-supply = <&reg_dldo1>;
++ #address-cells = <1>;
++ #size-cells = <0>;
++ status = "okay";
++
++ panel@0 {
++ compatible = "xingbangda,xbd599";
++ reg = <0>;
++ reset-gpios = <&pio 3 23 GPIO_ACTIVE_LOW>; /* PD23 */
++ iovcc-supply = <&reg_dldo2>;
++ vcc-supply = <&reg_ldo_io0>;
++ backlight = <&backlight>;
++ };
++};
++
+ &ehci0 {
+ status = "okay";
+ };
+@@ -188,6 +221,10 @@ &r_pio {
+ */
+ };
+
++&r_pwm {
++ status = "okay";
++};
++
+ &r_rsb {
+ status = "okay";
+
+--
+2.26.2
+
diff --git a/0013-arm64-dts-sun50i-a64-pinephone-Add-touchscreen-suppo.patch b/0001-arm64-dts-sun50i-a64-pinephone-Add-touchscreen-suppo.patch
index 211eb2797..d2511ae64 100644
--- a/0013-arm64-dts-sun50i-a64-pinephone-Add-touchscreen-suppo.patch
+++ b/0001-arm64-dts-sun50i-a64-pinephone-Add-touchscreen-suppo.patch
@@ -1,8 +1,7 @@
-From 786358ed986e4788b992d98e1d3b198a4e01a9d5 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megous@megous.com>
Date: Fri, 26 Jun 2020 02:56:01 +0200
-Subject: [PATCH 13/13] arm64: dts: sun50i-a64-pinephone: Add touchscreen
- support
+Subject: [PATCH] arm64: dts: sun50i-a64-pinephone: Add touchscreen support
Pinephone has a Goodix GT917S capacitive touchscreen controller on
I2C0 bus. Add support for it.
@@ -13,13 +12,13 @@ Signed-off-by: Ondrej Jirman <megous@megous.com>
1 file changed, 19 insertions(+)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
-index 85a7aa5efd326..2d5694446d176 100644
+index 85a7aa5efd32..2d5694446d17 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
@@ -123,6 +123,25 @@ &ehci1 {
status = "okay";
};
-
+
+&i2c0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c0_pins>;
@@ -41,7 +40,7 @@ index 85a7aa5efd326..2d5694446d176 100644
+
&i2c1 {
status = "okay";
-
+
--
2.26.2
diff --git a/0012-arm64-dts-sun50i-a64-pinephone-Enable-LCD-support-on.patch b/0001-arm64-dts-sun50i-a64-pinephone-Enable-LCD-support-on.patch
index 0c8ca994e..a38cd7250 100644
--- a/0012-arm64-dts-sun50i-a64-pinephone-Enable-LCD-support-on.patch
+++ b/0001-arm64-dts-sun50i-a64-pinephone-Enable-LCD-support-on.patch
@@ -1,7 +1,7 @@
-From 3ac5eb0c8bc2da9e81e04fc6106a79b476ec9219 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Icenowy Zheng <icenowy@aosc.io>
Date: Fri, 26 Jun 2020 02:56:00 +0200
-Subject: [PATCH 12/13] arm64: dts: sun50i-a64-pinephone: Enable LCD support on
+Subject: [PATCH] arm64: dts: sun50i-a64-pinephone: Enable LCD support on
PinePhone
PinePhone uses PWM backlight and a XBD599 LCD panel over DSI for
@@ -21,7 +21,7 @@ Signed-off-by: Ondrej Jirman <megous@megous.com>
2 files changed, 54 insertions(+)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts
-index 06a775c41664b..3e99a87e9ce52 100644
+index 06a775c41664..3e99a87e9ce5 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone-1.1.dts
@@ -9,3 +9,22 @@ / {
@@ -48,13 +48,13 @@ index 06a775c41664b..3e99a87e9ce52 100644
+ default-brightness-level = <400>;
+};
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
-index cefda145c3c9d..85a7aa5efd326 100644
+index cefda145c3c9..85a7aa5efd32 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
@@ -16,6 +16,13 @@ aliases {
serial0 = &uart0;
};
-
+
+ backlight: backlight {
+ compatible = "pwm-backlight";
+ pwms = <&r_pwm 0 50000 PWM_POLARITY_INVERTED>;
@@ -68,7 +68,7 @@ index cefda145c3c9d..85a7aa5efd326 100644
@@ -84,6 +91,30 @@ &dai {
status = "okay";
};
-
+
+&de {
+ status = "okay";
+};
@@ -99,14 +99,14 @@ index cefda145c3c9d..85a7aa5efd326 100644
@@ -188,6 +219,10 @@ &r_pio {
*/
};
-
+
+&r_pwm {
+ status = "okay";
+};
+
&r_rsb {
status = "okay";
-
+
--
2.26.2
diff --git a/0001-core-memory-remove-redundant-assignments-to-variable.patch b/0001-core-memory-remove-redundant-assignments-to-variable.patch
deleted file mode 100644
index d490d68d2..000000000
--- a/0001-core-memory-remove-redundant-assignments-to-variable.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Colin Ian King <colin.king@canonical.com>
-Date: Sat, 29 Feb 2020 00:53:07 +0000
-Subject: [PATCH] core/memory: remove redundant assignments to variable ret
-
-The variable ret is being initialized with a value that is never
-read and it is being updated later with a new value. The initialization
-is redundant and can be removed.
-
-Addresses-Coverity: ("Unused value")
-Signed-off-by: Colin Ian King <colin.king@canonical.com>
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
----
- drivers/gpu/drm/nouveau/nvkm/core/memory.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nvkm/core/memory.c b/drivers/gpu/drm/nouveau/nvkm/core/memory.c
-index 4cc186262d34..38130ef272d6 100644
---- a/drivers/gpu/drm/nouveau/nvkm/core/memory.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/core/memory.c
-@@ -140,7 +140,7 @@ nvkm_memory_new(struct nvkm_device *device, enum nvkm_memory_target target,
- {
- struct nvkm_instmem *imem = device->imem;
- struct nvkm_memory *memory;
-- int ret = -ENOSYS;
-+ int ret;
-
- if (unlikely(target != NVKM_MEM_TARGET_INST || !imem))
- return -ENOSYS;
---
-2.26.2
-
diff --git a/0001-device-detect-if-changing-endianness-failed.patch b/0001-device-detect-if-changing-endianness-failed.patch
deleted file mode 100644
index 1089b7e87..000000000
--- a/0001-device-detect-if-changing-endianness-failed.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Karol Herbst <kherbst@redhat.com>
-Date: Tue, 28 Apr 2020 18:54:03 +0200
-Subject: [PATCH] device: detect if changing endianness failed
-
-v2: relax the checks a little
-
-Signed-off-by: Karol Herbst <kherbst@redhat.com>
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
----
- .../gpu/drm/nouveau/nvkm/engine/device/base.c | 26 +++++++++++++++----
- 1 file changed, 21 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
-index 37589f36546d..c732074bf790 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
-@@ -2924,6 +2924,20 @@ nvkm_device_del(struct nvkm_device **pdevice)
- }
- }
-
-+static inline bool
-+nvkm_device_endianness(void __iomem *pri)
-+{
-+ u32 boot1 = ioread32_native(pri + 0x000004) & 0x01000001;
-+#ifdef __BIG_ENDIAN
-+ if (!boot1)
-+ return false;
-+#else
-+ if (boot1)
-+ return false;
-+#endif
-+ return true;
-+}
-+
- int
- nvkm_device_ctor(const struct nvkm_device_func *func,
- const struct nvkm_device_quirk *quirk,
-@@ -2973,13 +2987,15 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
- /* identify the chipset, and determine classes of subdev/engines */
- if (detect) {
- /* switch mmio to cpu's native endianness */
--#ifndef __BIG_ENDIAN
-- if (ioread32_native(map + 0x000004) != 0x00000000) {
--#else
-- if (ioread32_native(map + 0x000004) == 0x00000000) {
--#endif
-+ if (!nvkm_device_endianness(map)) {
- iowrite32_native(0x01000001, map + 0x000004);
- ioread32_native(map);
-+ if (!nvkm_device_endianness(map)) {
-+ nvdev_error(device,
-+ "GPU not supported on big-endian\n");
-+ ret = -ENOSYS;
-+ goto done;
-+ }
- }
-
- /* read boot0 and strapping information */
---
-2.26.2
-
diff --git a/0001-device-detect-vGPUs.patch b/0001-device-detect-vGPUs.patch
deleted file mode 100644
index 08f591ff7..000000000
--- a/0001-device-detect-vGPUs.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Karol Herbst <kherbst@redhat.com>
-Date: Tue, 28 Apr 2020 18:54:04 +0200
-Subject: [PATCH] device: detect vGPUs
-
-Using ENODEV as this prevents probe failed errors in dmesg.
-
-v2: move check further down
-
-Signed-off-by: Karol Herbst <kherbst@redhat.com>
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
----
- drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 15 ++++++++++++---
- 1 file changed, 12 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
-index c732074bf790..f977dddcd809 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
-@@ -2948,7 +2948,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
- {
- struct nvkm_subdev *subdev;
- u64 mmio_base, mmio_size;
-- u32 boot0, strap;
-+ u32 boot0, boot1, strap;
- void __iomem *map = NULL;
- int ret = -EEXIST, i;
- unsigned chipset;
-@@ -2998,9 +2998,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
- }
- }
-
-- /* read boot0 and strapping information */
- boot0 = ioread32_native(map + 0x000000);
-- strap = ioread32_native(map + 0x101000);
-
- /* chipset can be overridden for devel/testing purposes */
- chipset = nvkm_longopt(device->cfgopt, "NvChipset", 0);
-@@ -3158,6 +3156,17 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
- nvdev_info(device, "NVIDIA %s (%08x)\n",
- device->chip->name, boot0);
-
-+ /* vGPU detection */
-+ boot1 = ioread32_native(map + 0x000004);
-+ if (device->card_type >= TU100 && (boot1 & 0x00030000)) {
-+ nvdev_info(device, "vGPUs are not supported\n");
-+ ret = -ENODEV;
-+ goto done;
-+ }
-+
-+ /* read strapping information */
-+ strap = ioread32_native(map + 0x101000);
-+
- /* determine frequency of timing crystal */
- if ( device->card_type <= NV_10 || device->chipset < 0x17 ||
- (device->chipset >= 0x20 && device->chipset < 0x25))
---
-2.26.2
-
diff --git a/0001-device-rework-mmio-mapping-code-to-get-rid-of-second.patch b/0001-device-rework-mmio-mapping-code-to-get-rid-of-second.patch
deleted file mode 100644
index bde820ba5..000000000
--- a/0001-device-rework-mmio-mapping-code-to-get-rid-of-second.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Karol Herbst <kherbst@redhat.com>
-Date: Tue, 28 Apr 2020 18:54:02 +0200
-Subject: [PATCH] device: rework mmio mapping code to get rid of second map
-
-Fixes warnings on GPUs with smaller a smaller mmio region like vGPUs.
-
-Signed-off-by: Karol Herbst <kherbst@redhat.com>
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
----
- .../gpu/drm/nouveau/nvkm/engine/device/base.c | 27 ++++++++++---------
- 1 file changed, 15 insertions(+), 12 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
-index 8ebbe1656008..37589f36546d 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
-@@ -2935,7 +2935,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
- struct nvkm_subdev *subdev;
- u64 mmio_base, mmio_size;
- u32 boot0, strap;
-- void __iomem *map;
-+ void __iomem *map = NULL;
- int ret = -EEXIST, i;
- unsigned chipset;
-
-@@ -2961,12 +2961,17 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
- mmio_base = device->func->resource_addr(device, 0);
- mmio_size = device->func->resource_size(device, 0);
-
-- /* identify the chipset, and determine classes of subdev/engines */
-- if (detect) {
-- map = ioremap(mmio_base, 0x102000);
-- if (ret = -ENOMEM, map == NULL)
-+ if (detect || mmio) {
-+ map = ioremap(mmio_base, mmio_size);
-+ if (map == NULL) {
-+ nvdev_error(device, "unable to map PRI\n");
-+ ret = -ENOMEM;
- goto done;
-+ }
-+ }
-
-+ /* identify the chipset, and determine classes of subdev/engines */
-+ if (detect) {
- /* switch mmio to cpu's native endianness */
- #ifndef __BIG_ENDIAN
- if (ioread32_native(map + 0x000004) != 0x00000000) {
-@@ -2980,7 +2985,6 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
- /* read boot0 and strapping information */
- boot0 = ioread32_native(map + 0x000000);
- strap = ioread32_native(map + 0x101000);
-- iounmap(map);
-
- /* chipset can be overridden for devel/testing purposes */
- chipset = nvkm_longopt(device->cfgopt, "NvChipset", 0);
-@@ -3159,12 +3163,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
- device->name = device->chip->name;
-
- if (mmio) {
-- device->pri = ioremap(mmio_base, mmio_size);
-- if (!device->pri) {
-- nvdev_error(device, "unable to map PRI\n");
-- ret = -ENOMEM;
-- goto done;
-- }
-+ device->pri = map;
- }
-
- mutex_init(&device->mutex);
-@@ -3254,6 +3253,10 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
-
- ret = 0;
- done:
-+ if (map && (!mmio || ret)) {
-+ device->pri = NULL;
-+ iounmap(map);
-+ }
- mutex_unlock(&nv_devices_mutex);
- return ret;
- }
---
-2.26.2
-
diff --git a/0001-device-use-regular-PRI-accessors-in-chipset-detectio.patch b/0001-device-use-regular-PRI-accessors-in-chipset-detectio.patch
deleted file mode 100644
index ec4345169..000000000
--- a/0001-device-use-regular-PRI-accessors-in-chipset-detectio.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Ben Skeggs <bskeggs@redhat.com>
-Date: Thu, 30 Apr 2020 14:08:53 +1000
-Subject: [PATCH] device: use regular PRI accessors in chipset detection
-
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
----
- .../gpu/drm/nouveau/nvkm/engine/device/base.c | 31 ++++++++-----------
- 1 file changed, 13 insertions(+), 18 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
-index f977dddcd809..5b90c2a1bf3d 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
-@@ -2925,9 +2925,9 @@ nvkm_device_del(struct nvkm_device **pdevice)
- }
-
- static inline bool
--nvkm_device_endianness(void __iomem *pri)
-+nvkm_device_endianness(struct nvkm_device *device)
- {
-- u32 boot1 = ioread32_native(pri + 0x000004) & 0x01000001;
-+ u32 boot1 = nvkm_rd32(device, 0x000004) & 0x01000001;
- #ifdef __BIG_ENDIAN
- if (!boot1)
- return false;
-@@ -2949,7 +2949,6 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
- struct nvkm_subdev *subdev;
- u64 mmio_base, mmio_size;
- u32 boot0, boot1, strap;
-- void __iomem *map = NULL;
- int ret = -EEXIST, i;
- unsigned chipset;
-
-@@ -2976,8 +2975,8 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
- mmio_size = device->func->resource_size(device, 0);
-
- if (detect || mmio) {
-- map = ioremap(mmio_base, mmio_size);
-- if (map == NULL) {
-+ device->pri = ioremap(mmio_base, mmio_size);
-+ if (device->pri == NULL) {
- nvdev_error(device, "unable to map PRI\n");
- ret = -ENOMEM;
- goto done;
-@@ -2987,10 +2986,10 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
- /* identify the chipset, and determine classes of subdev/engines */
- if (detect) {
- /* switch mmio to cpu's native endianness */
-- if (!nvkm_device_endianness(map)) {
-- iowrite32_native(0x01000001, map + 0x000004);
-- ioread32_native(map);
-- if (!nvkm_device_endianness(map)) {
-+ if (!nvkm_device_endianness(device)) {
-+ nvkm_wr32(device, 0x000004, 0x01000001);
-+ nvkm_rd32(device, 0x000000);
-+ if (!nvkm_device_endianness(device)) {
- nvdev_error(device,
- "GPU not supported on big-endian\n");
- ret = -ENOSYS;
-@@ -2998,7 +2997,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
- }
- }
-
-- boot0 = ioread32_native(map + 0x000000);
-+ boot0 = nvkm_rd32(device, 0x000000);
-
- /* chipset can be overridden for devel/testing purposes */
- chipset = nvkm_longopt(device->cfgopt, "NvChipset", 0);
-@@ -3157,7 +3156,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
- device->chip->name, boot0);
-
- /* vGPU detection */
-- boot1 = ioread32_native(map + 0x000004);
-+ boot1 = nvkm_rd32(device, 0x0000004);
- if (device->card_type >= TU100 && (boot1 & 0x00030000)) {
- nvdev_info(device, "vGPUs are not supported\n");
- ret = -ENODEV;
-@@ -3165,7 +3164,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
- }
-
- /* read strapping information */
-- strap = ioread32_native(map + 0x101000);
-+ strap = nvkm_rd32(device, 0x101000);
-
- /* determine frequency of timing crystal */
- if ( device->card_type <= NV_10 || device->chipset < 0x17 ||
-@@ -3187,10 +3186,6 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
- if (!device->name)
- device->name = device->chip->name;
-
-- if (mmio) {
-- device->pri = map;
-- }
--
- mutex_init(&device->mutex);
-
- for (i = 0; i < NVKM_SUBDEV_NR; i++) {
-@@ -3278,9 +3273,9 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
-
- ret = 0;
- done:
-- if (map && (!mmio || ret)) {
-+ if (device->pri && (!mmio || ret)) {
-+ iounmap(device->pri);
- device->pri = NULL;
-- iounmap(map);
- }
- mutex_unlock(&nv_devices_mutex);
- return ret;
---
-2.26.2
-
diff --git a/0001-disp-gv100-expose-capabilities-class.patch b/0001-disp-gv100-expose-capabilities-class.patch
deleted file mode 100644
index 60293792f..000000000
--- a/0001-disp-gv100-expose-capabilities-class.patch
+++ /dev/null
@@ -1,149 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Ben Skeggs <bskeggs@redhat.com>
-Date: Thu, 13 Feb 2020 09:39:34 +1000
-Subject: [PATCH] disp/gv100-: expose capabilities class
-
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
----
- drivers/gpu/drm/nouveau/include/nvif/class.h | 2 +
- .../gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 2 +
- .../drm/nouveau/nvkm/engine/disp/capsgv100.c | 60 +++++++++++++++++++
- .../drm/nouveau/nvkm/engine/disp/rootgv100.c | 1 +
- .../drm/nouveau/nvkm/engine/disp/rootnv50.h | 3 +
- .../drm/nouveau/nvkm/engine/disp/roottu102.c | 1 +
- 6 files changed, 69 insertions(+)
- create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/capsgv100.c
-
-diff --git a/drivers/gpu/drm/nouveau/include/nvif/class.h b/drivers/gpu/drm/nouveau/include/nvif/class.h
-index 30659747ffe8..2c79beb41126 100644
---- a/drivers/gpu/drm/nouveau/include/nvif/class.h
-+++ b/drivers/gpu/drm/nouveau/include/nvif/class.h
-@@ -89,6 +89,8 @@
- #define GV100_DISP /* cl5070.h */ 0x0000c370
- #define TU102_DISP /* cl5070.h */ 0x0000c570
-
-+#define GV100_DISP_CAPS 0x0000c373
-+
- #define NV31_MPEG 0x00003174
- #define G82_MPEG 0x00008274
-
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild b/drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild
-index 0d584d0da59c..f7af648e0c17 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild
-@@ -74,6 +74,8 @@ nvkm-y += nvkm/engine/disp/rootgp102.o
- nvkm-y += nvkm/engine/disp/rootgv100.o
- nvkm-y += nvkm/engine/disp/roottu102.o
-
-+nvkm-y += nvkm/engine/disp/capsgv100.o
-+
- nvkm-y += nvkm/engine/disp/channv50.o
- nvkm-y += nvkm/engine/disp/changf119.o
- nvkm-y += nvkm/engine/disp/changv100.o
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/capsgv100.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/capsgv100.c
-new file mode 100644
-index 000000000000..5026e530f4bb
---- /dev/null
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/capsgv100.c
-@@ -0,0 +1,60 @@
-+/*
-+ * Copyright 2020 Red Hat Inc.
-+ *
-+ * 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 COPYRIGHT HOLDER(S) OR AUTHOR(S) 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.
-+ */
-+#define gv100_disp_caps(p) container_of((p), struct gv100_disp_caps, object)
-+#include "rootnv50.h"
-+
-+struct gv100_disp_caps {
-+ struct nvkm_object object;
-+ struct nv50_disp *disp;
-+};
-+
-+static int
-+gv100_disp_caps_map(struct nvkm_object *object, void *argv, u32 argc,
-+ enum nvkm_object_map *type, u64 *addr, u64 *size)
-+{
-+ struct gv100_disp_caps *caps = gv100_disp_caps(object);
-+ struct nvkm_device *device = caps->disp->base.engine.subdev.device;
-+ *type = NVKM_OBJECT_MAP_IO;
-+ *addr = 0x640000 + device->func->resource_addr(device, 0);
-+ *size = 0x1000;
-+ return 0;
-+}
-+
-+static const struct nvkm_object_func
-+gv100_disp_caps = {
-+ .map = gv100_disp_caps_map,
-+};
-+
-+int
-+gv100_disp_caps_new(const struct nvkm_oclass *oclass, void *argv, u32 argc,
-+ struct nv50_disp *disp, struct nvkm_object **pobject)
-+{
-+ struct gv100_disp_caps *caps;
-+
-+ if (!(caps = kzalloc(sizeof(*caps), GFP_KERNEL)))
-+ return -ENOMEM;
-+ *pobject = &caps->object;
-+
-+ nvkm_object_ctor(&gv100_disp_caps, oclass, &caps->object);
-+ caps->disp = disp;
-+ return 0;
-+}
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgv100.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgv100.c
-index 9c658d632d37..47efb48d769a 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgv100.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootgv100.c
-@@ -27,6 +27,7 @@
- static const struct nv50_disp_root_func
- gv100_disp_root = {
- .user = {
-+ {{-1,-1,GV100_DISP_CAPS }, gv100_disp_caps_new },
- {{0,0,GV100_DISP_CURSOR }, gv100_disp_curs_new },
- {{0,0,GV100_DISP_WINDOW_IMM_CHANNEL_DMA}, gv100_disp_wimm_new },
- {{0,0,GV100_DISP_CORE_CHANNEL_DMA }, gv100_disp_core_new },
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.h b/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.h
-index a1f942793f98..7070f5408d92 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.h
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.h
-@@ -24,6 +24,9 @@ int nv50_disp_root_new_(const struct nv50_disp_root_func *, struct nvkm_disp *,
- const struct nvkm_oclass *, void *data, u32 size,
- struct nvkm_object **);
-
-+int gv100_disp_caps_new(const struct nvkm_oclass *, void *, u32,
-+ struct nv50_disp *, struct nvkm_object **);
-+
- extern const struct nvkm_disp_oclass nv50_disp_root_oclass;
- extern const struct nvkm_disp_oclass g84_disp_root_oclass;
- extern const struct nvkm_disp_oclass g94_disp_root_oclass;
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/roottu102.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/roottu102.c
-index 579a5d02308a..d8719d38b98a 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/roottu102.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/roottu102.c
-@@ -27,6 +27,7 @@
- static const struct nv50_disp_root_func
- tu102_disp_root = {
- .user = {
-+ {{-1,-1,GV100_DISP_CAPS }, gv100_disp_caps_new },
- {{0,0,TU102_DISP_CURSOR }, gv100_disp_curs_new },
- {{0,0,TU102_DISP_WINDOW_IMM_CHANNEL_DMA}, gv100_disp_wimm_new },
- {{0,0,TU102_DISP_CORE_CHANNEL_DMA }, gv100_disp_core_new },
---
-2.26.2
-
diff --git a/0001-disp-hda-gf119-add-HAL-for-programming-device-entry-.patch b/0001-disp-hda-gf119-add-HAL-for-programming-device-entry-.patch
deleted file mode 100644
index cba6699dc..000000000
--- a/0001-disp-hda-gf119-add-HAL-for-programming-device-entry-.patch
+++ /dev/null
@@ -1,146 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Ben Skeggs <bskeggs@redhat.com>
-Date: Wed, 6 May 2020 14:40:56 +1000
-Subject: [PATCH] disp/hda/gf119-: add HAL for programming device entry in SF
-
-Register has moved on GV100.
-
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
----
- drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c | 11 +++++++++--
- drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h | 2 ++
- drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c | 1 +
- drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgk104.c | 1 +
- drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c | 1 +
- drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c | 1 +
- drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c | 1 +
- drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c | 1 +
- 8 files changed, 17 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c
-index 1080ba6ecd64..8a0ec7db5145 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c
-@@ -23,6 +23,14 @@
- */
- #include "ior.h"
-
-+void
-+gf119_hda_device_entry(struct nvkm_ior *ior, int head)
-+{
-+ struct nvkm_device *device = ior->disp->engine.subdev.device;
-+ const u32 hoff = 0x800 * head;
-+ nvkm_mask(device, 0x616548 + hoff, 0x00000070, 0x00000000);
-+}
-+
- void
- gf119_hda_eld(struct nvkm_ior *ior, int head, u8 *data, u8 size)
- {
-@@ -41,11 +49,10 @@ void
- gf119_hda_hpd(struct nvkm_ior *ior, int head, bool present)
- {
- struct nvkm_device *device = ior->disp->engine.subdev.device;
-- const u32 hoff = 0x800 * head;
- u32 data = 0x80000000;
- u32 mask = 0x80000001;
- if (present) {
-- nvkm_mask(device, 0x616548 + hoff, 0x00000070, 0x00000000);
-+ ior->func->hda.device_entry(ior, head);
- data |= 0x00000001;
- } else {
- mask |= 0x00000002;
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h b/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h
-index c60acf71831e..eb1155e47ecd 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h
-@@ -88,6 +88,7 @@ struct nvkm_ior_func {
- struct {
- void (*hpd)(struct nvkm_ior *, int head, bool present);
- void (*eld)(struct nvkm_ior *, int head, u8 *data, u8 size);
-+ void (*device_entry)(struct nvkm_ior *, int head);
- } hda;
- };
-
-@@ -162,6 +163,7 @@ void gt215_hda_eld(struct nvkm_ior *, int, u8 *, u8);
-
- void gf119_hda_hpd(struct nvkm_ior *, int, bool);
- void gf119_hda_eld(struct nvkm_ior *, int, u8 *, u8);
-+void gf119_hda_device_entry(struct nvkm_ior *, int);
-
- #define IOR_MSG(i,l,f,a...) do { \
- struct nvkm_ior *_ior = (i); \
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c
-index 456a5a143522..3b3643fb1019 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c
-@@ -177,6 +177,7 @@ gf119_sor = {
- .hda = {
- .hpd = gf119_hda_hpd,
- .eld = gf119_hda_eld,
-+ .device_entry = gf119_hda_device_entry,
- },
- };
-
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgk104.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgk104.c
-index b94090edaebf..0c0925680790 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgk104.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgk104.c
-@@ -43,6 +43,7 @@ gk104_sor = {
- .hda = {
- .hpd = gf119_hda_hpd,
- .eld = gf119_hda_eld,
-+ .device_entry = gf119_hda_device_entry,
- },
- };
-
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c
-index e6965dec09c9..38045c92197f 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c
-@@ -57,6 +57,7 @@ gm107_sor = {
- .hda = {
- .hpd = gf119_hda_hpd,
- .eld = gf119_hda_eld,
-+ .device_entry = gf119_hda_device_entry,
- },
- };
-
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c
-index 384f82652bec..cf2075db742a 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c
-@@ -115,6 +115,7 @@ gm200_sor = {
- .hda = {
- .hpd = gf119_hda_hpd,
- .eld = gf119_hda_eld,
-+ .device_entry = gf119_hda_device_entry,
- },
- };
-
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c
-index b0597ff9a714..565cfbc65550 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c
-@@ -103,6 +103,7 @@ gv100_sor = {
- .hda = {
- .hpd = gf119_hda_hpd,
- .eld = gf119_hda_eld,
-+ .device_entry = gf119_hda_device_entry,
- },
- };
-
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c
-index 4d5f3791ea7b..b16ecea098c7 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c
-@@ -88,6 +88,7 @@ tu102_sor = {
- .hda = {
- .hpd = gf119_hda_hpd,
- .eld = gf119_hda_eld,
-+ .device_entry = gf119_hda_device_entry,
- },
- };
-
---
-2.26.2
-
diff --git a/0001-disp-hda-gf119-select-HDA-device-entry-based-on-boun.patch b/0001-disp-hda-gf119-select-HDA-device-entry-based-on-boun.patch
deleted file mode 100644
index 714d1a0f3..000000000
--- a/0001-disp-hda-gf119-select-HDA-device-entry-based-on-boun.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Ben Skeggs <bskeggs@redhat.com>
-Date: Wed, 6 May 2020 14:40:58 +1000
-Subject: [PATCH] disp/hda/gf119-: select HDA device entry based on bound head
-
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
----
- drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c
-index 8a0ec7db5145..19d2d58344e4 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c
-@@ -28,14 +28,14 @@ gf119_hda_device_entry(struct nvkm_ior *ior, int head)
- {
- struct nvkm_device *device = ior->disp->engine.subdev.device;
- const u32 hoff = 0x800 * head;
-- nvkm_mask(device, 0x616548 + hoff, 0x00000070, 0x00000000);
-+ nvkm_mask(device, 0x616548 + hoff, 0x00000070, head << 4);
- }
-
- void
- gf119_hda_eld(struct nvkm_ior *ior, int head, u8 *data, u8 size)
- {
- struct nvkm_device *device = ior->disp->engine.subdev.device;
-- const u32 soff = 0x030 * ior->id;
-+ const u32 soff = 0x030 * ior->id + (head * 0x04);
- int i;
-
- for (i = 0; i < size; i++)
-@@ -49,6 +49,7 @@ void
- gf119_hda_hpd(struct nvkm_ior *ior, int head, bool present)
- {
- struct nvkm_device *device = ior->disp->engine.subdev.device;
-+ const u32 soff = 0x030 * ior->id + (head * 0x04);
- u32 data = 0x80000000;
- u32 mask = 0x80000001;
- if (present) {
-@@ -57,5 +58,5 @@ gf119_hda_hpd(struct nvkm_ior *ior, int head, bool present)
- } else {
- mask |= 0x00000002;
- }
-- nvkm_mask(device, 0x10ec10 + ior->id * 0x030, mask, data);
-+ nvkm_mask(device, 0x10ec10 + soff, mask, data);
- }
---
-2.26.2
-
diff --git a/0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch b/0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch
deleted file mode 100644
index 0011e60ae..000000000
--- a/0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Ben Skeggs <bskeggs@redhat.com>
-Date: Wed, 6 May 2020 14:40:52 +1000
-Subject: [PATCH] disp/hda/gt215-: pass head to nvkm_ior.hda.eld()
-
-We're going to use the bound head to select HDA device entry.
-
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
----
- drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c | 2 +-
- drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c | 2 +-
- drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h | 6 +++---
- drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c | 2 +-
- 4 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c
-index 0fa0ec0a1de0..1080ba6ecd64 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c
-@@ -24,7 +24,7 @@
- #include "ior.h"
-
- void
--gf119_hda_eld(struct nvkm_ior *ior, u8 *data, u8 size)
-+gf119_hda_eld(struct nvkm_ior *ior, int head, u8 *data, u8 size)
- {
- struct nvkm_device *device = ior->disp->engine.subdev.device;
- const u32 soff = 0x030 * ior->id;
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c
-index 4509d2ba880e..0d1b81fe1093 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c
-@@ -24,7 +24,7 @@
- #include "ior.h"
-
- void
--gt215_hda_eld(struct nvkm_ior *ior, u8 *data, u8 size)
-+gt215_hda_eld(struct nvkm_ior *ior, int head, u8 *data, u8 size)
- {
- struct nvkm_device *device = ior->disp->engine.subdev.device;
- const u32 soff = ior->id * 0x800;
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h b/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h
-index 009d3a8b7a50..c60acf71831e 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h
-@@ -87,7 +87,7 @@ struct nvkm_ior_func {
-
- struct {
- void (*hpd)(struct nvkm_ior *, int head, bool present);
-- void (*eld)(struct nvkm_ior *, u8 *data, u8 size);
-+ void (*eld)(struct nvkm_ior *, int head, u8 *data, u8 size);
- } hda;
- };
-
-@@ -158,10 +158,10 @@ void gv100_hdmi_ctrl(struct nvkm_ior *, int, bool, u8, u8, u8 *, u8 , u8 *, u8);
- void gm200_hdmi_scdc(struct nvkm_ior *, int, u8);
-
- void gt215_hda_hpd(struct nvkm_ior *, int, bool);
--void gt215_hda_eld(struct nvkm_ior *, u8 *, u8);
-+void gt215_hda_eld(struct nvkm_ior *, int, u8 *, u8);
-
- void gf119_hda_hpd(struct nvkm_ior *, int, bool);
--void gf119_hda_eld(struct nvkm_ior *, u8 *, u8);
-+void gf119_hda_eld(struct nvkm_ior *, int, u8 *, u8);
-
- #define IOR_MSG(i,l,f,a...) do { \
- struct nvkm_ior *_ior = (i); \
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c
-index 5f758948d6e1..a7672ef17d3b 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c
-@@ -155,7 +155,7 @@ nv50_disp_root_mthd_(struct nvkm_object *object, u32 mthd, void *data, u32 size)
- if (outp->info.type == DCB_OUTPUT_DP)
- ior->func->dp.audio(ior, hidx, true);
- ior->func->hda.hpd(ior, hidx, true);
-- ior->func->hda.eld(ior, data, size);
-+ ior->func->hda.eld(ior, hidx, data, size);
- } else {
- if (outp->info.type == DCB_OUTPUT_DP)
- ior->func->dp.audio(ior, hidx, false);
---
-2.26.2
-
diff --git a/0001-disp-hda-gv100-NV_PDISP_SF_AUDIO_CNTRL0-register-mov.patch b/0001-disp-hda-gv100-NV_PDISP_SF_AUDIO_CNTRL0-register-mov.patch
deleted file mode 100644
index b93c9f13b..000000000
--- a/0001-disp-hda-gv100-NV_PDISP_SF_AUDIO_CNTRL0-register-mov.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Ben Skeggs <bskeggs@redhat.com>
-Date: Wed, 6 May 2020 14:41:01 +1000
-Subject: [PATCH] disp/hda/gv100-: NV_PDISP_SF_AUDIO_CNTRL0 register moved
-
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
----
- .../gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 1 +
- .../drm/nouveau/nvkm/engine/disp/hdagv100.c | 30 +++++++++++++++++++
- .../gpu/drm/nouveau/nvkm/engine/disp/ior.h | 2 ++
- .../drm/nouveau/nvkm/engine/disp/sorgv100.c | 2 +-
- .../drm/nouveau/nvkm/engine/disp/sortu102.c | 2 +-
- 5 files changed, 35 insertions(+), 2 deletions(-)
- create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagv100.c
-
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild b/drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild
-index f7af648e0c17..571687ba85b8 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild
-@@ -47,6 +47,7 @@ nvkm-y += nvkm/engine/disp/dp.o
-
- nvkm-y += nvkm/engine/disp/hdagt215.o
- nvkm-y += nvkm/engine/disp/hdagf119.o
-+nvkm-y += nvkm/engine/disp/hdagv100.o
-
- nvkm-y += nvkm/engine/disp/hdmi.o
- nvkm-y += nvkm/engine/disp/hdmig84.o
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagv100.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagv100.c
-new file mode 100644
-index 000000000000..57d374ecfeef
---- /dev/null
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagv100.c
-@@ -0,0 +1,30 @@
-+/*
-+ * Copyright 2020 Red Hat Inc.
-+ *
-+ * 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 COPYRIGHT HOLDER(S) OR AUTHOR(S) 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 "ior.h"
-+
-+void
-+gv100_hda_device_entry(struct nvkm_ior *ior, int head)
-+{
-+ struct nvkm_device *device = ior->disp->engine.subdev.device;
-+ const u32 hoff = 0x800 * head;
-+ nvkm_mask(device, 0x616528 + hoff, 0x00000070, head << 4);
-+}
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h b/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h
-index eb1155e47ecd..c1d7a36e4d3c 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h
-@@ -165,6 +165,8 @@ void gf119_hda_hpd(struct nvkm_ior *, int, bool);
- void gf119_hda_eld(struct nvkm_ior *, int, u8 *, u8);
- void gf119_hda_device_entry(struct nvkm_ior *, int);
-
-+void gv100_hda_device_entry(struct nvkm_ior *, int);
-+
- #define IOR_MSG(i,l,f,a...) do { \
- struct nvkm_ior *_ior = (i); \
- nvkm_##l(&_ior->disp->engine.subdev, "%s: "f"\n", _ior->name, ##a); \
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c
-index 565cfbc65550..d11a0dff10c6 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c
-@@ -103,7 +103,7 @@ gv100_sor = {
- .hda = {
- .hpd = gf119_hda_hpd,
- .eld = gf119_hda_eld,
-- .device_entry = gf119_hda_device_entry,
-+ .device_entry = gv100_hda_device_entry,
- },
- };
-
-diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c
-index b16ecea098c7..fa6d74251237 100644
---- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c
-@@ -88,7 +88,7 @@ tu102_sor = {
- .hda = {
- .hpd = gf119_hda_hpd,
- .eld = gf119_hda_eld,
-- .device_entry = gf119_hda_device_entry,
-+ .device_entry = gv100_hda_device_entry,
- },
- };
-
---
-2.26.2
-
diff --git a/0001-disp-nv50-increase-timeout-on-pio-channel-free-polli.patch b/0001-disp-nv50-increase-timeout-on-pio-channel-free-polli.patch
deleted file mode 100644
index d8c1a93d5..000000000
--- a/0001-disp-nv50-increase-timeout-on-pio-channel-free-polli.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Ben Skeggs <bskeggs@redhat.com>
-Date: Wed, 6 May 2020 14:40:45 +1000
-Subject: [PATCH] disp/nv50-: increase timeout on pio channel free() polling
-
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
----
- drivers/gpu/drm/nouveau/dispnv50/curs507a.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/nouveau/dispnv50/curs507a.c b/drivers/gpu/drm/nouveau/dispnv50/curs507a.c
-index 8c5cf096f69b..658a200ab616 100644
---- a/drivers/gpu/drm/nouveau/dispnv50/curs507a.c
-+++ b/drivers/gpu/drm/nouveau/dispnv50/curs507a.c
-@@ -32,7 +32,7 @@
- bool
- curs507a_space(struct nv50_wndw *wndw)
- {
-- nvif_msec(&nouveau_drm(wndw->plane.dev)->client.device, 2,
-+ nvif_msec(&nouveau_drm(wndw->plane.dev)->client.device, 100,
- if (nvif_rd32(&wndw->wimm.base.user, 0x0008) >= 4)
- return true;
- );
---
-2.26.2
-
diff --git a/0001-drm-Use-generic-helper-to-check-_PR3-presence.patch b/0001-drm-Use-generic-helper-to-check-_PR3-presence.patch
deleted file mode 100644
index f0f9e0dfd..000000000
--- a/0001-drm-Use-generic-helper-to-check-_PR3-presence.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Kai-Heng Feng <kai.heng.feng@canonical.com>
-Date: Thu, 23 Apr 2020 14:23:58 +0800
-Subject: [PATCH] drm: Use generic helper to check _PR3 presence
-
-Replace nouveau_pr3_present() in favor of a more generic one,
-pci_pr3_present().
-
-Also the presence of upstream bridge _PR3 doesn't need to go hand in
-hand with device's _DSM, so check _PR3 before _DSM.
-
-Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
----
- drivers/gpu/drm/nouveau/nouveau_acpi.c | 44 ++++++--------------------
- 1 file changed, 10 insertions(+), 34 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nouveau_acpi.c b/drivers/gpu/drm/nouveau/nouveau_acpi.c
-index fe3a10255c36..b84dff1b0f28 100644
---- a/drivers/gpu/drm/nouveau/nouveau_acpi.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c
-@@ -212,37 +212,6 @@ static const struct vga_switcheroo_handler nouveau_dsm_handler = {
- .get_client_id = nouveau_dsm_get_client_id,
- };
-
--/*
-- * Firmware supporting Windows 8 or later do not use _DSM to put the device into
-- * D3cold, they instead rely on disabling power resources on the parent.
-- */
--static bool nouveau_pr3_present(struct pci_dev *pdev)
--{
-- struct pci_dev *parent_pdev = pci_upstream_bridge(pdev);
-- struct acpi_device *parent_adev;
--
-- if (!parent_pdev)
-- return false;
--
-- if (!parent_pdev->bridge_d3) {
-- /*
-- * Parent PCI bridge is currently not power managed.
-- * Since userspace can change these afterwards to be on
-- * the safe side we stick with _DSM and prevent usage of
-- * _PR3 from the bridge.
-- */
-- pci_d3cold_disable(pdev);
-- return false;
-- }
--
-- parent_adev = ACPI_COMPANION(&parent_pdev->dev);
-- if (!parent_adev)
-- return false;
--
-- return parent_adev->power.flags.power_resources &&
-- acpi_has_method(parent_adev->handle, "_PR3");
--}
--
- static void nouveau_dsm_pci_probe(struct pci_dev *pdev, acpi_handle *dhandle_out,
- bool *has_mux, bool *has_opt,
- bool *has_opt_flags, bool *has_pr3)
-@@ -250,6 +219,16 @@ static void nouveau_dsm_pci_probe(struct pci_dev *pdev, acpi_handle *dhandle_out
- acpi_handle dhandle;
- bool supports_mux;
- int optimus_funcs;
-+ struct pci_dev *parent_pdev;
-+
-+ *has_pr3 = false;
-+ parent_pdev = pci_upstream_bridge(pdev);
-+ if (parent_pdev) {
-+ if (parent_pdev->bridge_d3)
-+ *has_pr3 = pci_pr3_present(parent_pdev);
-+ else
-+ pci_d3cold_disable(pdev);
-+ }
-
- dhandle = ACPI_HANDLE(&pdev->dev);
- if (!dhandle)
-@@ -270,7 +249,6 @@ static void nouveau_dsm_pci_probe(struct pci_dev *pdev, acpi_handle *dhandle_out
- *has_mux = supports_mux;
- *has_opt = !!optimus_funcs;
- *has_opt_flags = optimus_funcs & (1 << NOUVEAU_DSM_OPTIMUS_FLAGS);
-- *has_pr3 = false;
-
- if (optimus_funcs) {
- uint32_t result;
-@@ -280,8 +258,6 @@ static void nouveau_dsm_pci_probe(struct pci_dev *pdev, acpi_handle *dhandle_out
- (result & OPTIMUS_ENABLED) ? "enabled" : "disabled",
- (result & OPTIMUS_DYNAMIC_PWR_CAP) ? "dynamic power, " : "",
- (result & OPTIMUS_HDA_CODEC_MASK) ? "hda bios codec supported" : "");
--
-- *has_pr3 = nouveau_pr3_present(pdev);
- }
- }
-
---
-2.26.2
-
diff --git a/0001-drm-panel-add-Xingbangda-XBD599-panel.patch b/0001-drm-panel-add-Xingbangda-XBD599-panel.patch
new file mode 100644
index 000000000..6866d5f69
--- /dev/null
+++ b/0001-drm-panel-add-Xingbangda-XBD599-panel.patch
@@ -0,0 +1,423 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Icenowy Zheng <icenowy@aosc.io>
+Date: Mon, 16 Mar 2020 21:35:01 +0800
+Subject: [PATCH] drm: panel: add Xingbangda XBD599 panel
+
+Xingbangda XBD599 is a 5.99" 720x1440 MIPI-DSI IPS LCD panel made by
+Xingbangda, which is used on PinePhone final assembled phones.
+
+Add support for it.
+
+Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
+---
+ drivers/gpu/drm/panel/Kconfig | 9 +
+ drivers/gpu/drm/panel/Makefile | 1 +
+ .../gpu/drm/panel/panel-xingbangda-xbd599.c | 366 ++++++++++++++++++
+ 3 files changed, 376 insertions(+)
+ create mode 100644 drivers/gpu/drm/panel/panel-xingbangda-xbd599.c
+
+diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig
+index 39055c1f0e2f..1f55a87bb657 100644
+--- a/drivers/gpu/drm/panel/Kconfig
++++ b/drivers/gpu/drm/panel/Kconfig
+@@ -462,6 +462,15 @@ config DRM_PANEL_VISIONOX_RM69299
+ Say Y here if you want to enable support for Visionox
+ RM69299 DSI Video Mode panel.
+
++config DRM_PANEL_XINGBANGDA_XBD599
++ tristate "Xingbangda XBD599 panel"
++ depends on OF
++ depends on DRM_MIPI_DSI
++ depends on BACKLIGHT_CLASS_DEVICE
++ help
++ Say Y here if you want to enable support for the Xingbangda XBD599
++ MIPI DSI Video Mode panel.
++
+ config DRM_PANEL_XINPENG_XPP055C272
+ tristate "Xinpeng XPP055C272 panel driver"
+ depends on OF
+diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile
+index de74f282c433..7b6b0c0397d6 100644
+--- a/drivers/gpu/drm/panel/Makefile
++++ b/drivers/gpu/drm/panel/Makefile
+@@ -49,4 +49,5 @@ obj-$(CONFIG_DRM_PANEL_TPO_TD043MTEA1) += panel-tpo-td043mtea1.o
+ obj-$(CONFIG_DRM_PANEL_TPO_TPG110) += panel-tpo-tpg110.o
+ obj-$(CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA) += panel-truly-nt35597.o
+ obj-$(CONFIG_DRM_PANEL_VISIONOX_RM69299) += panel-visionox-rm69299.o
++obj-$(CONFIG_DRM_PANEL_XINGBANGDA_XBD599) += panel-xingbangda-xbd599.o
+ obj-$(CONFIG_DRM_PANEL_XINPENG_XPP055C272) += panel-xinpeng-xpp055c272.o
+diff --git a/drivers/gpu/drm/panel/panel-xingbangda-xbd599.c b/drivers/gpu/drm/panel/panel-xingbangda-xbd599.c
+new file mode 100644
+index 000000000000..b483f96ee1db
+--- /dev/null
++++ b/drivers/gpu/drm/panel/panel-xingbangda-xbd599.c
+@@ -0,0 +1,366 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * Xingbangda XBD599 MIPI-DSI panel driver
++ *
++ * Copyright (C) 2019-2020 Icenowy Zheng <icenowy@aosc.io>
++ *
++ * Based on panel-rocktech-jh057n00900.c, which is:
++ * Copyright (C) Purism SPC 2019
++ */
++
++#include <linux/delay.h>
++#include <linux/gpio/consumer.h>
++#include <linux/mod_devicetable.h>
++#include <linux/module.h>
++#include <linux/of_device.h>
++#include <linux/regulator/consumer.h>
++
++#include <drm/drm_mipi_dsi.h>
++#include <drm/drm_modes.h>
++#include <drm/drm_panel.h>
++#include <drm/drm_print.h>
++
++/* Manufacturer specific Commands send via DSI */
++#define ST7703_CMD_ALL_PIXEL_OFF 0x22
++#define ST7703_CMD_ALL_PIXEL_ON 0x23
++#define ST7703_CMD_SETDISP 0xB2
++#define ST7703_CMD_SETRGBIF 0xB3
++#define ST7703_CMD_SETCYC 0xB4
++#define ST7703_CMD_SETBGP 0xB5
++#define ST7703_CMD_SETVCOM 0xB6
++#define ST7703_CMD_SETOTP 0xB7
++#define ST7703_CMD_SETPOWER_EXT 0xB8
++#define ST7703_CMD_SETEXTC 0xB9
++#define ST7703_CMD_SETMIPI 0xBA
++#define ST7703_CMD_SETVDC 0xBC
++#define ST7703_CMD_SETSCR 0xC0
++#define ST7703_CMD_SETPOWER 0xC1
++#define ST7703_CMD_UNK_C6 0xC6
++#define ST7703_CMD_SETPANEL 0xCC
++#define ST7703_CMD_SETGAMMA 0xE0
++#define ST7703_CMD_SETEQ 0xE3
++#define ST7703_CMD_SETGIP1 0xE9
++#define ST7703_CMD_SETGIP2 0xEA
++
++static const char * const regulator_names[] = {
++ "iovcc",
++ "vcc",
++};
++
++struct xbd599 {
++ struct device *dev;
++ struct drm_panel panel;
++ struct gpio_desc *reset_gpio;
++ struct regulator_bulk_data supplies[ARRAY_SIZE(regulator_names)];
++ bool prepared;
++};
++
++static inline struct xbd599 *panel_to_xbd599(struct drm_panel *panel)
++{
++ return container_of(panel, struct xbd599, panel);
++}
++
++#define dsi_dcs_write_seq(dsi, cmd, seq...) do { \
++ static const u8 d[] = { seq }; \
++ int ret; \
++ ret = mipi_dsi_dcs_write(dsi, cmd, d, ARRAY_SIZE(d)); \
++ if (ret < 0) \
++ return ret; \
++ } while (0)
++
++static int xbd599_init_sequence(struct xbd599 *ctx)
++{
++ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
++ struct device *dev = ctx->dev;
++ int ret;
++
++ /*
++ * Init sequence was supplied by the panel vendor.
++ */
++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETEXTC,
++ 0xF1, 0x12, 0x83);
++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETMIPI,
++ 0x33, 0x81, 0x05, 0xF9, 0x0E, 0x0E, 0x20, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x25,
++ 0x00, 0x91, 0x0a, 0x00, 0x00, 0x02, 0x4F, 0x11,
++ 0x00, 0x00, 0x37);
++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETPOWER_EXT,
++ 0x25, 0x22, 0x20, 0x03);
++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETRGBIF,
++ 0x10, 0x10, 0x05, 0x05, 0x03, 0xFF, 0x00, 0x00,
++ 0x00, 0x00);
++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETSCR,
++ 0x73, 0x73, 0x50, 0x50, 0x00, 0xC0, 0x08, 0x70,
++ 0x00);
++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETVDC, 0x4E);
++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETPANEL, 0x0B);
++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETCYC, 0x80);
++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETDISP, 0xF0, 0x12, 0xF0);
++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETEQ,
++ 0x00, 0x00, 0x0B, 0x0B, 0x10, 0x10, 0x00, 0x00,
++ 0x00, 0x00, 0xFF, 0x00, 0xC0, 0x10);
++ dsi_dcs_write_seq(dsi, 0xC6, 0x01, 0x00, 0xFF, 0xFF, 0x00);
++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETPOWER,
++ 0x74, 0x00, 0x32, 0x32, 0x77, 0xF1, 0xFF, 0xFF,
++ 0xCC, 0xCC, 0x77, 0x77);
++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETBGP, 0x07, 0x07);
++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETVCOM, 0x2C, 0x2C);
++ dsi_dcs_write_seq(dsi, 0xBF, 0x02, 0x11, 0x00);
++
++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETGIP1,
++ 0x82, 0x10, 0x06, 0x05, 0xA2, 0x0A, 0xA5, 0x12,
++ 0x31, 0x23, 0x37, 0x83, 0x04, 0xBC, 0x27, 0x38,
++ 0x0C, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x00,
++ 0x03, 0x00, 0x00, 0x00, 0x75, 0x75, 0x31, 0x88,
++ 0x88, 0x88, 0x88, 0x88, 0x88, 0x13, 0x88, 0x64,
++ 0x64, 0x20, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
++ 0x02, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETGIP2,
++ 0x02, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x02, 0x46, 0x02, 0x88,
++ 0x88, 0x88, 0x88, 0x88, 0x88, 0x64, 0x88, 0x13,
++ 0x57, 0x13, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
++ 0x75, 0x88, 0x23, 0x14, 0x00, 0x00, 0x02, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0A,
++ 0xA5, 0x00, 0x00, 0x00, 0x00);
++ dsi_dcs_write_seq(dsi, ST7703_CMD_SETGAMMA,
++ 0x00, 0x09, 0x0D, 0x23, 0x27, 0x3C, 0x41, 0x35,
++ 0x07, 0x0D, 0x0E, 0x12, 0x13, 0x10, 0x12, 0x12,
++ 0x18, 0x00, 0x09, 0x0D, 0x23, 0x27, 0x3C, 0x41,
++ 0x35, 0x07, 0x0D, 0x0E, 0x12, 0x13, 0x10, 0x12,
++ 0x12, 0x18);
++ msleep(20);
++
++ ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
++ if (ret < 0) {
++ DRM_DEV_ERROR(dev, "Failed to exit sleep mode\n");
++ return ret;
++ }
++ msleep(250);
++
++ ret = mipi_dsi_dcs_set_display_on(dsi);
++ if (ret)
++ return ret;
++ msleep(50);
++
++ DRM_DEV_DEBUG_DRIVER(dev, "Panel init sequence done\n");
++ return 0;
++}
++
++static int xbd599_prepare(struct drm_panel *panel)
++{
++ struct xbd599 *ctx = panel_to_xbd599(panel);
++ int ret;
++
++ if (ctx->prepared)
++ return 0;
++
++ ret = regulator_bulk_enable(ARRAY_SIZE(ctx->supplies), ctx->supplies);
++ if (ret)
++ return ret;
++
++ DRM_DEV_DEBUG_DRIVER(ctx->dev, "Resetting the panel\n");
++ gpiod_set_value_cansleep(ctx->reset_gpio, 1);
++ usleep_range(20, 40);
++ gpiod_set_value_cansleep(ctx->reset_gpio, 0);
++ msleep(20);
++
++ ctx->prepared = true;
++
++ return 0;
++}
++
++static int xbd599_enable(struct drm_panel *panel)
++{
++ struct xbd599 *ctx = panel_to_xbd599(panel);
++ int ret;
++
++ ret = xbd599_init_sequence(ctx);
++ if (ret < 0) {
++ DRM_DEV_ERROR(ctx->dev, "Panel init sequence failed: %d\n",
++ ret);
++ return ret;
++ }
++
++ return 0;
++}
++
++static int xbd599_disable(struct drm_panel *panel)
++{
++ struct xbd599 *ctx = panel_to_xbd599(panel);
++ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
++
++ return mipi_dsi_dcs_set_display_off(dsi);
++}
++
++static int xbd599_unprepare(struct drm_panel *panel)
++{
++ struct xbd599 *ctx = panel_to_xbd599(panel);
++
++ if (!ctx->prepared)
++ return 0;
++
++ gpiod_set_value_cansleep(ctx->reset_gpio, 1);
++ regulator_bulk_disable(ARRAY_SIZE(ctx->supplies), ctx->supplies);
++ ctx->prepared = false;
++
++ return 0;
++}
++
++static const struct drm_display_mode xbd599_default_mode = {
++ .hdisplay = 720,
++ .hsync_start = 720 + 40,
++ .hsync_end = 720 + 40 + 40,
++ .htotal = 720 + 40 + 40 + 40,
++ .vdisplay = 1440,
++ .vsync_start = 1440 + 18,
++ .vsync_end = 1440 + 18 + 10,
++ .vtotal = 1440 + 18 + 10 + 17,
++ .vrefresh = 60,
++ .clock = 69000,
++ .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
++
++ .width_mm = 68,
++ .height_mm = 136,
++ .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
++};
++
++static int xbd599_get_modes(struct drm_panel *panel,
++ struct drm_connector *connector)
++{
++ struct xbd599 *ctx = panel_to_xbd599(panel);
++ struct drm_display_mode *mode;
++
++ mode = drm_mode_duplicate(connector->dev, &xbd599_default_mode);
++ if (!mode) {
++ DRM_DEV_ERROR(ctx->dev, "Failed to add mode\n");
++ return -ENOMEM;
++ }
++
++ drm_mode_set_name(mode);
++
++ mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
++ connector->display_info.width_mm = mode->width_mm;
++ connector->display_info.height_mm = mode->height_mm;
++ drm_mode_probed_add(connector, mode);
++
++ return 1;
++}
++
++static const struct drm_panel_funcs xbd599_drm_funcs = {
++ .prepare = xbd599_prepare,
++ .enable = xbd599_enable,
++ .disable = xbd599_disable,
++ .unprepare = xbd599_unprepare,
++ .get_modes = xbd599_get_modes,
++};
++
++static int xbd599_probe(struct mipi_dsi_device *dsi)
++{
++ struct device *dev = &dsi->dev;
++ struct xbd599 *ctx;
++ int i, ret;
++
++ ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
++ if (!ctx)
++ return -ENOMEM;
++
++ for (i = 0; i < ARRAY_SIZE(ctx->supplies); i++)
++ ctx->supplies[i].supply = regulator_names[i];
++
++ ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(ctx->supplies),
++ ctx->supplies);
++ if (ret < 0) {
++ DRM_DEV_ERROR(&dsi->dev, "cannot get regulators\n");
++ return ret;
++ }
++
++ ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
++ if (IS_ERR(ctx->reset_gpio)) {
++ DRM_DEV_ERROR(dev, "cannot get reset gpio\n");
++ return PTR_ERR(ctx->reset_gpio);
++ }
++
++ mipi_dsi_set_drvdata(dsi, ctx);
++
++ ctx->dev = dev;
++
++ dsi->lanes = 4;
++ dsi->format = MIPI_DSI_FMT_RGB888;
++ dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE;
++
++ drm_panel_init(&ctx->panel, &dsi->dev, &xbd599_drm_funcs,
++ DRM_MODE_CONNECTOR_DSI);
++
++ ret = drm_panel_of_backlight(&ctx->panel);
++ if (ret)
++ return ret;
++
++ drm_panel_add(&ctx->panel);
++
++ ret = mipi_dsi_attach(dsi);
++ if (ret < 0) {
++ DRM_DEV_ERROR(dev, "mipi_dsi_attach failed. Is host ready?\n");
++ drm_panel_remove(&ctx->panel);
++ return ret;
++ }
++
++ DRM_DEV_INFO(dev, "%ux%u@%u %ubpp dsi %udl - ready\n",
++ xbd599_default_mode.hdisplay,
++ xbd599_default_mode.vdisplay,
++ xbd599_default_mode.vrefresh,
++ mipi_dsi_pixel_format_to_bpp(dsi->format), dsi->lanes);
++
++ return 0;
++}
++
++static void xbd599_shutdown(struct mipi_dsi_device *dsi)
++{
++ struct xbd599 *ctx = mipi_dsi_get_drvdata(dsi);
++ int ret;
++
++ ret = drm_panel_unprepare(&ctx->panel);
++ if (ret < 0)
++ DRM_DEV_ERROR(&dsi->dev, "Failed to unprepare panel: %d\n",
++ ret);
++}
++
++static int xbd599_remove(struct mipi_dsi_device *dsi)
++{
++ struct xbd599 *ctx = mipi_dsi_get_drvdata(dsi);
++ int ret;
++
++ xbd599_shutdown(dsi);
++
++ ret = mipi_dsi_detach(dsi);
++ if (ret < 0)
++ DRM_DEV_ERROR(&dsi->dev, "Failed to detach from DSI host: %d\n",
++ ret);
++
++ drm_panel_remove(&ctx->panel);
++
++ return 0;
++}
++
++static const struct of_device_id xbd599_of_match[] = {
++ { .compatible = "xingbangda,xbd599", },
++ { /* sentinel */ }
++};
++MODULE_DEVICE_TABLE(of, xbd599_of_match);
++
++static struct mipi_dsi_driver xbd599_driver = {
++ .probe = xbd599_probe,
++ .remove = xbd599_remove,
++ .shutdown = xbd599_shutdown,
++ .driver = {
++ .name = "panel-xingbangda-xbd599",
++ .of_match_table = xbd599_of_match,
++ },
++};
++module_mipi_dsi_driver(xbd599_driver);
++
++MODULE_AUTHOR("Icenowy Zheng <icenowy@aosc.io>");
++MODULE_DESCRIPTION("DRM driver for Xingbangda XBD599 MIPI DSI panel");
++MODULE_LICENSE("GPL v2");
+--
+2.26.2
+
diff --git a/0001-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch b/0001-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch
new file mode 100644
index 000000000..d78bf5644
--- /dev/null
+++ b/0001-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch
@@ -0,0 +1,948 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Ondrej Jirman <megous@megous.com>
+Date: Fri, 26 Jun 2020 02:55:52 +0200
+Subject: [PATCH] drm/panel: rocktech-jh057n00900: Rename the driver to st7703
+
+This rename is done so that the driver matches the name of the
+display controller and in preparation for adding support for more
+panels to the driver.
+
+This is just a basic file rename, with no code changes.
+
+Signed-off-by: Ondrej Jirman <megous@megous.com>
+---
+ drivers/gpu/drm/panel/Kconfig | 26 +-
+ drivers/gpu/drm/panel/Makefile | 2 +-
+ .../drm/panel/panel-rocktech-jh057n00900.c | 424 ------------------
+ drivers/gpu/drm/panel/panel-sitronix-st7703.c | 424 ++++++++++++++++++
+ 4 files changed, 438 insertions(+), 438 deletions(-)
+ delete mode 100644 drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c
+ create mode 100644 drivers/gpu/drm/panel/panel-sitronix-st7703.c
+
+diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig
+index 39055c1f0e2f..de2f2a452be5 100644
+--- a/drivers/gpu/drm/panel/Kconfig
++++ b/drivers/gpu/drm/panel/Kconfig
+@@ -283,19 +283,6 @@ config DRM_PANEL_RAYDIUM_RM68200
+ Say Y here if you want to enable support for Raydium RM68200
+ 720x1280 DSI video mode panel.
+
+-config DRM_PANEL_ROCKTECH_JH057N00900
+- tristate "Rocktech JH057N00900 MIPI touchscreen panel"
+- depends on OF
+- depends on DRM_MIPI_DSI
+- depends on BACKLIGHT_CLASS_DEVICE
+- help
+- Say Y here if you want to enable support for Rocktech JH057N00900
+- MIPI DSI panel as e.g. used in the Librem 5 devkit. It has a
+- resolution of 720x1440 pixels, a built in backlight and touch
+- controller.
+- Touch input support is provided by the goodix driver and needs to be
+- selected separately.
+-
+ config DRM_PANEL_RONBO_RB070D30
+ tristate "Ronbo Electronics RB070D30 panel"
+ depends on OF
+@@ -395,6 +382,19 @@ config DRM_PANEL_SITRONIX_ST7701
+ ST7701 controller for 480X864 LCD panels with MIPI/RGB/SPI
+ system interfaces.
+
++config DRM_PANEL_SITRONIX_ST7703
++ tristate "Sitronix ST7703 based MIPI touchscreen panels"
++ depends on OF
++ depends on DRM_MIPI_DSI
++ depends on BACKLIGHT_CLASS_DEVICE
++ help
++ Say Y here if you want to enable support for Sitronix ST7703 based
++ panels, souch as Rocktech JH057N00900 MIPI DSI panel as e.g. used in
++ the Librem 5 devkit. It has a resolution of 720x1440 pixels, a built
++ in backlight and touch controller.
++ Touch input support is provided by the goodix driver and needs to be
++ selected separately.
++
+ config DRM_PANEL_SITRONIX_ST7789V
+ tristate "Sitronix ST7789V panel"
+ depends on OF && SPI
+diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile
+index de74f282c433..e45ceac6286f 100644
+--- a/drivers/gpu/drm/panel/Makefile
++++ b/drivers/gpu/drm/panel/Makefile
+@@ -27,7 +27,6 @@ obj-$(CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00) += panel-panasonic-vvx10f034n00.o
+ obj-$(CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN) += panel-raspberrypi-touchscreen.o
+ obj-$(CONFIG_DRM_PANEL_RAYDIUM_RM67191) += panel-raydium-rm67191.o
+ obj-$(CONFIG_DRM_PANEL_RAYDIUM_RM68200) += panel-raydium-rm68200.o
+-obj-$(CONFIG_DRM_PANEL_ROCKTECH_JH057N00900) += panel-rocktech-jh057n00900.o
+ obj-$(CONFIG_DRM_PANEL_RONBO_RB070D30) += panel-ronbo-rb070d30.o
+ obj-$(CONFIG_DRM_PANEL_SAMSUNG_LD9040) += panel-samsung-ld9040.o
+ obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6D16D0) += panel-samsung-s6d16d0.o
+@@ -41,6 +40,7 @@ obj-$(CONFIG_DRM_PANEL_SHARP_LQ101R1SX01) += panel-sharp-lq101r1sx01.o
+ obj-$(CONFIG_DRM_PANEL_SHARP_LS037V7DW01) += panel-sharp-ls037v7dw01.o
+ obj-$(CONFIG_DRM_PANEL_SHARP_LS043T1LE01) += panel-sharp-ls043t1le01.o
+ obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7701) += panel-sitronix-st7701.o
++obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7703) += panel-sitronix-st7703.o
+ obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7789V) += panel-sitronix-st7789v.o
+ obj-$(CONFIG_DRM_PANEL_SONY_ACX424AKP) += panel-sony-acx424akp.o
+ obj-$(CONFIG_DRM_PANEL_SONY_ACX565AKM) += panel-sony-acx565akm.o
+diff --git a/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c b/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c
+deleted file mode 100644
+index 38ff742bc120..000000000000
+--- a/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c
++++ /dev/null
+@@ -1,424 +0,0 @@
+-// SPDX-License-Identifier: GPL-2.0
+-/*
+- * Rockteck jh057n00900 5.5" MIPI-DSI panel driver
+- *
+- * Copyright (C) Purism SPC 2019
+- */
+-
+-#include <linux/debugfs.h>
+-#include <linux/delay.h>
+-#include <linux/gpio/consumer.h>
+-#include <linux/media-bus-format.h>
+-#include <linux/mod_devicetable.h>
+-#include <linux/module.h>
+-#include <linux/regulator/consumer.h>
+-
+-#include <video/display_timing.h>
+-#include <video/mipi_display.h>
+-
+-#include <drm/drm_mipi_dsi.h>
+-#include <drm/drm_modes.h>
+-#include <drm/drm_panel.h>
+-#include <drm/drm_print.h>
+-
+-#define DRV_NAME "panel-rocktech-jh057n00900"
+-
+-/* Manufacturer specific Commands send via DSI */
+-#define ST7703_CMD_ALL_PIXEL_OFF 0x22
+-#define ST7703_CMD_ALL_PIXEL_ON 0x23
+-#define ST7703_CMD_SETDISP 0xB2
+-#define ST7703_CMD_SETRGBIF 0xB3
+-#define ST7703_CMD_SETCYC 0xB4
+-#define ST7703_CMD_SETBGP 0xB5
+-#define ST7703_CMD_SETVCOM 0xB6
+-#define ST7703_CMD_SETOTP 0xB7
+-#define ST7703_CMD_SETPOWER_EXT 0xB8
+-#define ST7703_CMD_SETEXTC 0xB9
+-#define ST7703_CMD_SETMIPI 0xBA
+-#define ST7703_CMD_SETVDC 0xBC
+-#define ST7703_CMD_UNKNOWN0 0xBF
+-#define ST7703_CMD_SETSCR 0xC0
+-#define ST7703_CMD_SETPOWER 0xC1
+-#define ST7703_CMD_SETPANEL 0xCC
+-#define ST7703_CMD_SETGAMMA 0xE0
+-#define ST7703_CMD_SETEQ 0xE3
+-#define ST7703_CMD_SETGIP1 0xE9
+-#define ST7703_CMD_SETGIP2 0xEA
+-
+-struct jh057n {
+- struct device *dev;
+- struct drm_panel panel;
+- struct gpio_desc *reset_gpio;
+- struct regulator *vcc;
+- struct regulator *iovcc;
+- bool prepared;
+-
+- struct dentry *debugfs;
+-};
+-
+-static inline struct jh057n *panel_to_jh057n(struct drm_panel *panel)
+-{
+- return container_of(panel, struct jh057n, panel);
+-}
+-
+-#define dsi_generic_write_seq(dsi, seq...) do { \
+- static const u8 d[] = { seq }; \
+- int ret; \
+- ret = mipi_dsi_generic_write(dsi, d, ARRAY_SIZE(d)); \
+- if (ret < 0) \
+- return ret; \
+- } while (0)
+-
+-static int jh057n_init_sequence(struct jh057n *ctx)
+-{
+- struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
+- struct device *dev = ctx->dev;
+- int ret;
+-
+- /*
+- * Init sequence was supplied by the panel vendor. Most of the commands
+- * resemble the ST7703 but the number of parameters often don't match
+- * so it's likely a clone.
+- */
+- dsi_generic_write_seq(dsi, ST7703_CMD_SETEXTC,
+- 0xF1, 0x12, 0x83);
+- dsi_generic_write_seq(dsi, ST7703_CMD_SETRGBIF,
+- 0x10, 0x10, 0x05, 0x05, 0x03, 0xFF, 0x00, 0x00,
+- 0x00, 0x00);
+- dsi_generic_write_seq(dsi, ST7703_CMD_SETSCR,
+- 0x73, 0x73, 0x50, 0x50, 0x00, 0x00, 0x08, 0x70,
+- 0x00);
+- dsi_generic_write_seq(dsi, ST7703_CMD_SETVDC, 0x4E);
+- dsi_generic_write_seq(dsi, ST7703_CMD_SETPANEL, 0x0B);
+- dsi_generic_write_seq(dsi, ST7703_CMD_SETCYC, 0x80);
+- dsi_generic_write_seq(dsi, ST7703_CMD_SETDISP, 0xF0, 0x12, 0x30);
+- dsi_generic_write_seq(dsi, ST7703_CMD_SETEQ,
+- 0x07, 0x07, 0x0B, 0x0B, 0x03, 0x0B, 0x00, 0x00,
+- 0x00, 0x00, 0xFF, 0x00, 0xC0, 0x10);
+- dsi_generic_write_seq(dsi, ST7703_CMD_SETBGP, 0x08, 0x08);
+- msleep(20);
+-
+- dsi_generic_write_seq(dsi, ST7703_CMD_SETVCOM, 0x3F, 0x3F);
+- dsi_generic_write_seq(dsi, ST7703_CMD_UNKNOWN0, 0x02, 0x11, 0x00);
+- dsi_generic_write_seq(dsi, ST7703_CMD_SETGIP1,
+- 0x82, 0x10, 0x06, 0x05, 0x9E, 0x0A, 0xA5, 0x12,
+- 0x31, 0x23, 0x37, 0x83, 0x04, 0xBC, 0x27, 0x38,
+- 0x0C, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x00,
+- 0x03, 0x00, 0x00, 0x00, 0x75, 0x75, 0x31, 0x88,
+- 0x88, 0x88, 0x88, 0x88, 0x88, 0x13, 0x88, 0x64,
+- 0x64, 0x20, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+- 0x02, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
+- dsi_generic_write_seq(dsi, ST7703_CMD_SETGIP2,
+- 0x02, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+- 0x00, 0x00, 0x00, 0x00, 0x02, 0x46, 0x02, 0x88,
+- 0x88, 0x88, 0x88, 0x88, 0x88, 0x64, 0x88, 0x13,
+- 0x57, 0x13, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+- 0x75, 0x88, 0x23, 0x14, 0x00, 0x00, 0x02, 0x00,
+- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0A,
+- 0xA5, 0x00, 0x00, 0x00, 0x00);
+- dsi_generic_write_seq(dsi, ST7703_CMD_SETGAMMA,
+- 0x00, 0x09, 0x0E, 0x29, 0x2D, 0x3C, 0x41, 0x37,
+- 0x07, 0x0B, 0x0D, 0x10, 0x11, 0x0F, 0x10, 0x11,
+- 0x18, 0x00, 0x09, 0x0E, 0x29, 0x2D, 0x3C, 0x41,
+- 0x37, 0x07, 0x0B, 0x0D, 0x10, 0x11, 0x0F, 0x10,
+- 0x11, 0x18);
+- msleep(20);
+-
+- ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
+- if (ret < 0) {
+- DRM_DEV_ERROR(dev, "Failed to exit sleep mode: %d\n", ret);
+- return ret;
+- }
+- /* Panel is operational 120 msec after reset */
+- msleep(60);
+- ret = mipi_dsi_dcs_set_display_on(dsi);
+- if (ret)
+- return ret;
+-
+- DRM_DEV_DEBUG_DRIVER(dev, "Panel init sequence done\n");
+- return 0;
+-}
+-
+-static int jh057n_enable(struct drm_panel *panel)
+-{
+- struct jh057n *ctx = panel_to_jh057n(panel);
+- int ret;
+-
+- ret = jh057n_init_sequence(ctx);
+- if (ret < 0) {
+- DRM_DEV_ERROR(ctx->dev, "Panel init sequence failed: %d\n",
+- ret);
+- return ret;
+- }
+-
+- return 0;
+-}
+-
+-static int jh057n_disable(struct drm_panel *panel)
+-{
+- struct jh057n *ctx = panel_to_jh057n(panel);
+- struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
+-
+- return mipi_dsi_dcs_set_display_off(dsi);
+-}
+-
+-static int jh057n_unprepare(struct drm_panel *panel)
+-{
+- struct jh057n *ctx = panel_to_jh057n(panel);
+-
+- if (!ctx->prepared)
+- return 0;
+-
+- regulator_disable(ctx->iovcc);
+- regulator_disable(ctx->vcc);
+- ctx->prepared = false;
+-
+- return 0;
+-}
+-
+-static int jh057n_prepare(struct drm_panel *panel)
+-{
+- struct jh057n *ctx = panel_to_jh057n(panel);
+- int ret;
+-
+- if (ctx->prepared)
+- return 0;
+-
+- DRM_DEV_DEBUG_DRIVER(ctx->dev, "Resetting the panel\n");
+- ret = regulator_enable(ctx->vcc);
+- if (ret < 0) {
+- DRM_DEV_ERROR(ctx->dev,
+- "Failed to enable vcc supply: %d\n", ret);
+- return ret;
+- }
+- ret = regulator_enable(ctx->iovcc);
+- if (ret < 0) {
+- DRM_DEV_ERROR(ctx->dev,
+- "Failed to enable iovcc supply: %d\n", ret);
+- goto disable_vcc;
+- }
+-
+- gpiod_set_value_cansleep(ctx->reset_gpio, 1);
+- usleep_range(20, 40);
+- gpiod_set_value_cansleep(ctx->reset_gpio, 0);
+- msleep(20);
+-
+- ctx->prepared = true;
+-
+- return 0;
+-
+-disable_vcc:
+- regulator_disable(ctx->vcc);
+- return ret;
+-}
+-
+-static const struct drm_display_mode default_mode = {
+- .hdisplay = 720,
+- .hsync_start = 720 + 90,
+- .hsync_end = 720 + 90 + 20,
+- .htotal = 720 + 90 + 20 + 20,
+- .vdisplay = 1440,
+- .vsync_start = 1440 + 20,
+- .vsync_end = 1440 + 20 + 4,
+- .vtotal = 1440 + 20 + 4 + 12,
+- .vrefresh = 60,
+- .clock = 75276,
+- .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
+- .width_mm = 65,
+- .height_mm = 130,
+-};
+-
+-static int jh057n_get_modes(struct drm_panel *panel,
+- struct drm_connector *connector)
+-{
+- struct jh057n *ctx = panel_to_jh057n(panel);
+- struct drm_display_mode *mode;
+-
+- mode = drm_mode_duplicate(connector->dev, &default_mode);
+- if (!mode) {
+- DRM_DEV_ERROR(ctx->dev, "Failed to add mode %ux%u@%u\n",
+- default_mode.hdisplay, default_mode.vdisplay,
+- default_mode.vrefresh);
+- return -ENOMEM;
+- }
+-
+- drm_mode_set_name(mode);
+-
+- mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
+- connector->display_info.width_mm = mode->width_mm;
+- connector->display_info.height_mm = mode->height_mm;
+- drm_mode_probed_add(connector, mode);
+-
+- return 1;
+-}
+-
+-static const struct drm_panel_funcs jh057n_drm_funcs = {
+- .disable = jh057n_disable,
+- .unprepare = jh057n_unprepare,
+- .prepare = jh057n_prepare,
+- .enable = jh057n_enable,
+- .get_modes = jh057n_get_modes,
+-};
+-
+-static int allpixelson_set(void *data, u64 val)
+-{
+- struct jh057n *ctx = data;
+- struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
+-
+- DRM_DEV_DEBUG_DRIVER(ctx->dev, "Setting all pixels on\n");
+- dsi_generic_write_seq(dsi, ST7703_CMD_ALL_PIXEL_ON);
+- msleep(val * 1000);
+- /* Reset the panel to get video back */
+- drm_panel_disable(&ctx->panel);
+- drm_panel_unprepare(&ctx->panel);
+- drm_panel_prepare(&ctx->panel);
+- drm_panel_enable(&ctx->panel);
+-
+- return 0;
+-}
+-
+-DEFINE_SIMPLE_ATTRIBUTE(allpixelson_fops, NULL,
+- allpixelson_set, "%llu\n");
+-
+-static void jh057n_debugfs_init(struct jh057n *ctx)
+-{
+- ctx->debugfs = debugfs_create_dir(DRV_NAME, NULL);
+-
+- debugfs_create_file("allpixelson", 0600, ctx->debugfs, ctx,
+- &allpixelson_fops);
+-}
+-
+-static void jh057n_debugfs_remove(struct jh057n *ctx)
+-{
+- debugfs_remove_recursive(ctx->debugfs);
+- ctx->debugfs = NULL;
+-}
+-
+-static int jh057n_probe(struct mipi_dsi_device *dsi)
+-{
+- struct device *dev = &dsi->dev;
+- struct jh057n *ctx;
+- int ret;
+-
+- ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
+- if (!ctx)
+- return -ENOMEM;
+-
+- ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
+- if (IS_ERR(ctx->reset_gpio)) {
+- DRM_DEV_ERROR(dev, "cannot get reset gpio\n");
+- return PTR_ERR(ctx->reset_gpio);
+- }
+-
+- mipi_dsi_set_drvdata(dsi, ctx);
+-
+- ctx->dev = dev;
+-
+- dsi->lanes = 4;
+- dsi->format = MIPI_DSI_FMT_RGB888;
+- dsi->mode_flags = MIPI_DSI_MODE_VIDEO |
+- MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_VIDEO_SYNC_PULSE;
+-
+- ctx->vcc = devm_regulator_get(dev, "vcc");
+- if (IS_ERR(ctx->vcc)) {
+- ret = PTR_ERR(ctx->vcc);
+- if (ret != -EPROBE_DEFER)
+- DRM_DEV_ERROR(dev,
+- "Failed to request vcc regulator: %d\n",
+- ret);
+- return ret;
+- }
+- ctx->iovcc = devm_regulator_get(dev, "iovcc");
+- if (IS_ERR(ctx->iovcc)) {
+- ret = PTR_ERR(ctx->iovcc);
+- if (ret != -EPROBE_DEFER)
+- DRM_DEV_ERROR(dev,
+- "Failed to request iovcc regulator: %d\n",
+- ret);
+- return ret;
+- }
+-
+- drm_panel_init(&ctx->panel, dev, &jh057n_drm_funcs,
+- DRM_MODE_CONNECTOR_DSI);
+-
+- ret = drm_panel_of_backlight(&ctx->panel);
+- if (ret)
+- return ret;
+-
+- drm_panel_add(&ctx->panel);
+-
+- ret = mipi_dsi_attach(dsi);
+- if (ret < 0) {
+- DRM_DEV_ERROR(dev,
+- "mipi_dsi_attach failed (%d). Is host ready?\n",
+- ret);
+- drm_panel_remove(&ctx->panel);
+- return ret;
+- }
+-
+- DRM_DEV_INFO(dev, "%ux%u@%u %ubpp dsi %udl - ready\n",
+- default_mode.hdisplay, default_mode.vdisplay,
+- default_mode.vrefresh,
+- mipi_dsi_pixel_format_to_bpp(dsi->format), dsi->lanes);
+-
+- jh057n_debugfs_init(ctx);
+- return 0;
+-}
+-
+-static void jh057n_shutdown(struct mipi_dsi_device *dsi)
+-{
+- struct jh057n *ctx = mipi_dsi_get_drvdata(dsi);
+- int ret;
+-
+- ret = drm_panel_unprepare(&ctx->panel);
+- if (ret < 0)
+- DRM_DEV_ERROR(&dsi->dev, "Failed to unprepare panel: %d\n",
+- ret);
+-
+- ret = drm_panel_disable(&ctx->panel);
+- if (ret < 0)
+- DRM_DEV_ERROR(&dsi->dev, "Failed to disable panel: %d\n",
+- ret);
+-}
+-
+-static int jh057n_remove(struct mipi_dsi_device *dsi)
+-{
+- struct jh057n *ctx = mipi_dsi_get_drvdata(dsi);
+- int ret;
+-
+- jh057n_shutdown(dsi);
+-
+- ret = mipi_dsi_detach(dsi);
+- if (ret < 0)
+- DRM_DEV_ERROR(&dsi->dev, "Failed to detach from DSI host: %d\n",
+- ret);
+-
+- drm_panel_remove(&ctx->panel);
+-
+- jh057n_debugfs_remove(ctx);
+-
+- return 0;
+-}
+-
+-static const struct of_device_id jh057n_of_match[] = {
+- { .compatible = "rocktech,jh057n00900" },
+- { /* sentinel */ }
+-};
+-MODULE_DEVICE_TABLE(of, jh057n_of_match);
+-
+-static struct mipi_dsi_driver jh057n_driver = {
+- .probe = jh057n_probe,
+- .remove = jh057n_remove,
+- .shutdown = jh057n_shutdown,
+- .driver = {
+- .name = DRV_NAME,
+- .of_match_table = jh057n_of_match,
+- },
+-};
+-module_mipi_dsi_driver(jh057n_driver);
+-
+-MODULE_AUTHOR("Guido Günther <agx@sigxcpu.org>");
+-MODULE_DESCRIPTION("DRM driver for Rocktech JH057N00900 MIPI DSI panel");
+-MODULE_LICENSE("GPL v2");
+diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7703.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
+new file mode 100644
+index 000000000000..38ff742bc120
+--- /dev/null
++++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
+@@ -0,0 +1,424 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * Rockteck jh057n00900 5.5" MIPI-DSI panel driver
++ *
++ * Copyright (C) Purism SPC 2019
++ */
++
++#include <linux/debugfs.h>
++#include <linux/delay.h>
++#include <linux/gpio/consumer.h>
++#include <linux/media-bus-format.h>
++#include <linux/mod_devicetable.h>
++#include <linux/module.h>
++#include <linux/regulator/consumer.h>
++
++#include <video/display_timing.h>
++#include <video/mipi_display.h>
++
++#include <drm/drm_mipi_dsi.h>
++#include <drm/drm_modes.h>
++#include <drm/drm_panel.h>
++#include <drm/drm_print.h>
++
++#define DRV_NAME "panel-rocktech-jh057n00900"
++
++/* Manufacturer specific Commands send via DSI */
++#define ST7703_CMD_ALL_PIXEL_OFF 0x22
++#define ST7703_CMD_ALL_PIXEL_ON 0x23
++#define ST7703_CMD_SETDISP 0xB2
++#define ST7703_CMD_SETRGBIF 0xB3
++#define ST7703_CMD_SETCYC 0xB4
++#define ST7703_CMD_SETBGP 0xB5
++#define ST7703_CMD_SETVCOM 0xB6
++#define ST7703_CMD_SETOTP 0xB7
++#define ST7703_CMD_SETPOWER_EXT 0xB8
++#define ST7703_CMD_SETEXTC 0xB9
++#define ST7703_CMD_SETMIPI 0xBA
++#define ST7703_CMD_SETVDC 0xBC
++#define ST7703_CMD_UNKNOWN0 0xBF
++#define ST7703_CMD_SETSCR 0xC0
++#define ST7703_CMD_SETPOWER 0xC1
++#define ST7703_CMD_SETPANEL 0xCC
++#define ST7703_CMD_SETGAMMA 0xE0
++#define ST7703_CMD_SETEQ 0xE3
++#define ST7703_CMD_SETGIP1 0xE9
++#define ST7703_CMD_SETGIP2 0xEA
++
++struct jh057n {
++ struct device *dev;
++ struct drm_panel panel;
++ struct gpio_desc *reset_gpio;
++ struct regulator *vcc;
++ struct regulator *iovcc;
++ bool prepared;
++
++ struct dentry *debugfs;
++};
++
++static inline struct jh057n *panel_to_jh057n(struct drm_panel *panel)
++{
++ return container_of(panel, struct jh057n, panel);
++}
++
++#define dsi_generic_write_seq(dsi, seq...) do { \
++ static const u8 d[] = { seq }; \
++ int ret; \
++ ret = mipi_dsi_generic_write(dsi, d, ARRAY_SIZE(d)); \
++ if (ret < 0) \
++ return ret; \
++ } while (0)
++
++static int jh057n_init_sequence(struct jh057n *ctx)
++{
++ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
++ struct device *dev = ctx->dev;
++ int ret;
++
++ /*
++ * Init sequence was supplied by the panel vendor. Most of the commands
++ * resemble the ST7703 but the number of parameters often don't match
++ * so it's likely a clone.
++ */
++ dsi_generic_write_seq(dsi, ST7703_CMD_SETEXTC,
++ 0xF1, 0x12, 0x83);
++ dsi_generic_write_seq(dsi, ST7703_CMD_SETRGBIF,
++ 0x10, 0x10, 0x05, 0x05, 0x03, 0xFF, 0x00, 0x00,
++ 0x00, 0x00);
++ dsi_generic_write_seq(dsi, ST7703_CMD_SETSCR,
++ 0x73, 0x73, 0x50, 0x50, 0x00, 0x00, 0x08, 0x70,
++ 0x00);
++ dsi_generic_write_seq(dsi, ST7703_CMD_SETVDC, 0x4E);
++ dsi_generic_write_seq(dsi, ST7703_CMD_SETPANEL, 0x0B);
++ dsi_generic_write_seq(dsi, ST7703_CMD_SETCYC, 0x80);
++ dsi_generic_write_seq(dsi, ST7703_CMD_SETDISP, 0xF0, 0x12, 0x30);
++ dsi_generic_write_seq(dsi, ST7703_CMD_SETEQ,
++ 0x07, 0x07, 0x0B, 0x0B, 0x03, 0x0B, 0x00, 0x00,
++ 0x00, 0x00, 0xFF, 0x00, 0xC0, 0x10);
++ dsi_generic_write_seq(dsi, ST7703_CMD_SETBGP, 0x08, 0x08);
++ msleep(20);
++
++ dsi_generic_write_seq(dsi, ST7703_CMD_SETVCOM, 0x3F, 0x3F);
++ dsi_generic_write_seq(dsi, ST7703_CMD_UNKNOWN0, 0x02, 0x11, 0x00);
++ dsi_generic_write_seq(dsi, ST7703_CMD_SETGIP1,
++ 0x82, 0x10, 0x06, 0x05, 0x9E, 0x0A, 0xA5, 0x12,
++ 0x31, 0x23, 0x37, 0x83, 0x04, 0xBC, 0x27, 0x38,
++ 0x0C, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0x00,
++ 0x03, 0x00, 0x00, 0x00, 0x75, 0x75, 0x31, 0x88,
++ 0x88, 0x88, 0x88, 0x88, 0x88, 0x13, 0x88, 0x64,
++ 0x64, 0x20, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
++ 0x02, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
++ dsi_generic_write_seq(dsi, ST7703_CMD_SETGIP2,
++ 0x02, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x02, 0x46, 0x02, 0x88,
++ 0x88, 0x88, 0x88, 0x88, 0x88, 0x64, 0x88, 0x13,
++ 0x57, 0x13, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
++ 0x75, 0x88, 0x23, 0x14, 0x00, 0x00, 0x02, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0A,
++ 0xA5, 0x00, 0x00, 0x00, 0x00);
++ dsi_generic_write_seq(dsi, ST7703_CMD_SETGAMMA,
++ 0x00, 0x09, 0x0E, 0x29, 0x2D, 0x3C, 0x41, 0x37,
++ 0x07, 0x0B, 0x0D, 0x10, 0x11, 0x0F, 0x10, 0x11,
++ 0x18, 0x00, 0x09, 0x0E, 0x29, 0x2D, 0x3C, 0x41,
++ 0x37, 0x07, 0x0B, 0x0D, 0x10, 0x11, 0x0F, 0x10,
++ 0x11, 0x18);
++ msleep(20);
++
++ ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
++ if (ret < 0) {
++ DRM_DEV_ERROR(dev, "Failed to exit sleep mode: %d\n", ret);
++ return ret;
++ }
++ /* Panel is operational 120 msec after reset */
++ msleep(60);
++ ret = mipi_dsi_dcs_set_display_on(dsi);
++ if (ret)
++ return ret;
++
++ DRM_DEV_DEBUG_DRIVER(dev, "Panel init sequence done\n");
++ return 0;
++}
++
++static int jh057n_enable(struct drm_panel *panel)
++{
++ struct jh057n *ctx = panel_to_jh057n(panel);
++ int ret;
++
++ ret = jh057n_init_sequence(ctx);
++ if (ret < 0) {
++ DRM_DEV_ERROR(ctx->dev, "Panel init sequence failed: %d\n",
++ ret);
++ return ret;
++ }
++
++ return 0;
++}
++
++static int jh057n_disable(struct drm_panel *panel)
++{
++ struct jh057n *ctx = panel_to_jh057n(panel);
++ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
++
++ return mipi_dsi_dcs_set_display_off(dsi);
++}
++
++static int jh057n_unprepare(struct drm_panel *panel)
++{
++ struct jh057n *ctx = panel_to_jh057n(panel);
++
++ if (!ctx->prepared)
++ return 0;
++
++ regulator_disable(ctx->iovcc);
++ regulator_disable(ctx->vcc);
++ ctx->prepared = false;
++
++ return 0;
++}
++
++static int jh057n_prepare(struct drm_panel *panel)
++{
++ struct jh057n *ctx = panel_to_jh057n(panel);
++ int ret;
++
++ if (ctx->prepared)
++ return 0;
++
++ DRM_DEV_DEBUG_DRIVER(ctx->dev, "Resetting the panel\n");
++ ret = regulator_enable(ctx->vcc);
++ if (ret < 0) {
++ DRM_DEV_ERROR(ctx->dev,
++ "Failed to enable vcc supply: %d\n", ret);
++ return ret;
++ }
++ ret = regulator_enable(ctx->iovcc);
++ if (ret < 0) {
++ DRM_DEV_ERROR(ctx->dev,
++ "Failed to enable iovcc supply: %d\n", ret);
++ goto disable_vcc;
++ }
++
++ gpiod_set_value_cansleep(ctx->reset_gpio, 1);
++ usleep_range(20, 40);
++ gpiod_set_value_cansleep(ctx->reset_gpio, 0);
++ msleep(20);
++
++ ctx->prepared = true;
++
++ return 0;
++
++disable_vcc:
++ regulator_disable(ctx->vcc);
++ return ret;
++}
++
++static const struct drm_display_mode default_mode = {
++ .hdisplay = 720,
++ .hsync_start = 720 + 90,
++ .hsync_end = 720 + 90 + 20,
++ .htotal = 720 + 90 + 20 + 20,
++ .vdisplay = 1440,
++ .vsync_start = 1440 + 20,
++ .vsync_end = 1440 + 20 + 4,
++ .vtotal = 1440 + 20 + 4 + 12,
++ .vrefresh = 60,
++ .clock = 75276,
++ .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
++ .width_mm = 65,
++ .height_mm = 130,
++};
++
++static int jh057n_get_modes(struct drm_panel *panel,
++ struct drm_connector *connector)
++{
++ struct jh057n *ctx = panel_to_jh057n(panel);
++ struct drm_display_mode *mode;
++
++ mode = drm_mode_duplicate(connector->dev, &default_mode);
++ if (!mode) {
++ DRM_DEV_ERROR(ctx->dev, "Failed to add mode %ux%u@%u\n",
++ default_mode.hdisplay, default_mode.vdisplay,
++ default_mode.vrefresh);
++ return -ENOMEM;
++ }
++
++ drm_mode_set_name(mode);
++
++ mode->type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED;
++ connector->display_info.width_mm = mode->width_mm;
++ connector->display_info.height_mm = mode->height_mm;
++ drm_mode_probed_add(connector, mode);
++
++ return 1;
++}
++
++static const struct drm_panel_funcs jh057n_drm_funcs = {
++ .disable = jh057n_disable,
++ .unprepare = jh057n_unprepare,
++ .prepare = jh057n_prepare,
++ .enable = jh057n_enable,
++ .get_modes = jh057n_get_modes,
++};
++
++static int allpixelson_set(void *data, u64 val)
++{
++ struct jh057n *ctx = data;
++ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
++
++ DRM_DEV_DEBUG_DRIVER(ctx->dev, "Setting all pixels on\n");
++ dsi_generic_write_seq(dsi, ST7703_CMD_ALL_PIXEL_ON);
++ msleep(val * 1000);
++ /* Reset the panel to get video back */
++ drm_panel_disable(&ctx->panel);
++ drm_panel_unprepare(&ctx->panel);
++ drm_panel_prepare(&ctx->panel);
++ drm_panel_enable(&ctx->panel);
++
++ return 0;
++}
++
++DEFINE_SIMPLE_ATTRIBUTE(allpixelson_fops, NULL,
++ allpixelson_set, "%llu\n");
++
++static void jh057n_debugfs_init(struct jh057n *ctx)
++{
++ ctx->debugfs = debugfs_create_dir(DRV_NAME, NULL);
++
++ debugfs_create_file("allpixelson", 0600, ctx->debugfs, ctx,
++ &allpixelson_fops);
++}
++
++static void jh057n_debugfs_remove(struct jh057n *ctx)
++{
++ debugfs_remove_recursive(ctx->debugfs);
++ ctx->debugfs = NULL;
++}
++
++static int jh057n_probe(struct mipi_dsi_device *dsi)
++{
++ struct device *dev = &dsi->dev;
++ struct jh057n *ctx;
++ int ret;
++
++ ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
++ if (!ctx)
++ return -ENOMEM;
++
++ ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
++ if (IS_ERR(ctx->reset_gpio)) {
++ DRM_DEV_ERROR(dev, "cannot get reset gpio\n");
++ return PTR_ERR(ctx->reset_gpio);
++ }
++
++ mipi_dsi_set_drvdata(dsi, ctx);
++
++ ctx->dev = dev;
++
++ dsi->lanes = 4;
++ dsi->format = MIPI_DSI_FMT_RGB888;
++ dsi->mode_flags = MIPI_DSI_MODE_VIDEO |
++ MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_VIDEO_SYNC_PULSE;
++
++ ctx->vcc = devm_regulator_get(dev, "vcc");
++ if (IS_ERR(ctx->vcc)) {
++ ret = PTR_ERR(ctx->vcc);
++ if (ret != -EPROBE_DEFER)
++ DRM_DEV_ERROR(dev,
++ "Failed to request vcc regulator: %d\n",
++ ret);
++ return ret;
++ }
++ ctx->iovcc = devm_regulator_get(dev, "iovcc");
++ if (IS_ERR(ctx->iovcc)) {
++ ret = PTR_ERR(ctx->iovcc);
++ if (ret != -EPROBE_DEFER)
++ DRM_DEV_ERROR(dev,
++ "Failed to request iovcc regulator: %d\n",
++ ret);
++ return ret;
++ }
++
++ drm_panel_init(&ctx->panel, dev, &jh057n_drm_funcs,
++ DRM_MODE_CONNECTOR_DSI);
++
++ ret = drm_panel_of_backlight(&ctx->panel);
++ if (ret)
++ return ret;
++
++ drm_panel_add(&ctx->panel);
++
++ ret = mipi_dsi_attach(dsi);
++ if (ret < 0) {
++ DRM_DEV_ERROR(dev,
++ "mipi_dsi_attach failed (%d). Is host ready?\n",
++ ret);
++ drm_panel_remove(&ctx->panel);
++ return ret;
++ }
++
++ DRM_DEV_INFO(dev, "%ux%u@%u %ubpp dsi %udl - ready\n",
++ default_mode.hdisplay, default_mode.vdisplay,
++ default_mode.vrefresh,
++ mipi_dsi_pixel_format_to_bpp(dsi->format), dsi->lanes);
++
++ jh057n_debugfs_init(ctx);
++ return 0;
++}
++
++static void jh057n_shutdown(struct mipi_dsi_device *dsi)
++{
++ struct jh057n *ctx = mipi_dsi_get_drvdata(dsi);
++ int ret;
++
++ ret = drm_panel_unprepare(&ctx->panel);
++ if (ret < 0)
++ DRM_DEV_ERROR(&dsi->dev, "Failed to unprepare panel: %d\n",
++ ret);
++
++ ret = drm_panel_disable(&ctx->panel);
++ if (ret < 0)
++ DRM_DEV_ERROR(&dsi->dev, "Failed to disable panel: %d\n",
++ ret);
++}
++
++static int jh057n_remove(struct mipi_dsi_device *dsi)
++{
++ struct jh057n *ctx = mipi_dsi_get_drvdata(dsi);
++ int ret;
++
++ jh057n_shutdown(dsi);
++
++ ret = mipi_dsi_detach(dsi);
++ if (ret < 0)
++ DRM_DEV_ERROR(&dsi->dev, "Failed to detach from DSI host: %d\n",
++ ret);
++
++ drm_panel_remove(&ctx->panel);
++
++ jh057n_debugfs_remove(ctx);
++
++ return 0;
++}
++
++static const struct of_device_id jh057n_of_match[] = {
++ { .compatible = "rocktech,jh057n00900" },
++ { /* sentinel */ }
++};
++MODULE_DEVICE_TABLE(of, jh057n_of_match);
++
++static struct mipi_dsi_driver jh057n_driver = {
++ .probe = jh057n_probe,
++ .remove = jh057n_remove,
++ .shutdown = jh057n_shutdown,
++ .driver = {
++ .name = DRV_NAME,
++ .of_match_table = jh057n_of_match,
++ },
++};
++module_mipi_dsi_driver(jh057n_driver);
++
++MODULE_AUTHOR("Guido Günther <agx@sigxcpu.org>");
++MODULE_DESCRIPTION("DRM driver for Rocktech JH057N00900 MIPI DSI panel");
++MODULE_LICENSE("GPL v2");
+--
+2.26.2
+
diff --git a/0009-drm-panel-st7703-Add-support-for-Xingbangda-XBD599.patch b/0001-drm-panel-st7703-Add-support-for-Xingbangda-XBD599.patch
index 5ac4e6ee8..1cc38fcb1 100644
--- a/0009-drm-panel-st7703-Add-support-for-Xingbangda-XBD599.patch
+++ b/0001-drm-panel-st7703-Add-support-for-Xingbangda-XBD599.patch
@@ -1,7 +1,7 @@
-From d2fb5b980f071d542ca912dac5a0e27c49de7e2d Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megous@megous.com>
Date: Fri, 26 Jun 2020 02:55:57 +0200
-Subject: [PATCH 09/13] drm/panel: st7703: Add support for Xingbangda XBD599
+Subject: [PATCH] drm/panel: st7703: Add support for Xingbangda XBD599
Xingbangda XBD599 is a 5.99" 720x1440 MIPI-DSI LCD panel used in
PinePhone. Add support for it.
@@ -13,7 +13,7 @@ Signed-off-by: Ondrej Jirman <megous@megous.com>
1 file changed, 197 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7703.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
-index cdbf7dfb4dd48..33611419059a9 100644
+index cdbf7dfb4dd4..33611419059a 100644
--- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c
+++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
@@ -39,10 +39,11 @@
@@ -31,7 +31,7 @@ index cdbf7dfb4dd48..33611419059a9 100644
#define ST7703_CMD_SETGIP1 0xE9
@@ -109,7 +110,7 @@ static int jh057n_init_sequence(struct st7703 *ctx)
msleep(20);
-
+
dsi_generic_write_seq(dsi, ST7703_CMD_SETVCOM, 0x3F, 0x3F);
- dsi_generic_write_seq(dsi, ST7703_CMD_UNKNOWN0, 0x02, 0x11, 0x00);
+ dsi_generic_write_seq(dsi, ST7703_CMD_UNKNOWN_BF, 0x02, 0x11, 0x00);
@@ -41,7 +41,7 @@ index cdbf7dfb4dd48..33611419059a9 100644
@@ -163,6 +164,199 @@ struct st7703_panel_desc jh057n00900_panel_desc = {
.init_sequence = jh057n_init_sequence,
};
-
+
+#define dsi_dcs_write_seq(dsi, cmd, seq...) do { \
+ static const u8 d[] = { seq }; \
+ int ret; \
@@ -239,7 +239,7 @@ index cdbf7dfb4dd48..33611419059a9 100644
{
struct st7703 *ctx = panel_to_st7703(panel);
@@ -428,6 +622,7 @@ static int st7703_remove(struct mipi_dsi_device *dsi)
-
+
static const struct of_device_id st7703_of_match[] = {
{ .compatible = "rocktech,jh057n00900", .data = &jh057n00900_panel_desc },
+ { .compatible = "xingbangda,xbd599", .data = &xbd599_desc },
diff --git a/0011-drm-panel-st7703-Assert-reset-prior-to-powering-down.patch b/0001-drm-panel-st7703-Assert-reset-prior-to-powering-down.patch
index f5871906c..045875f11 100644
--- a/0011-drm-panel-st7703-Assert-reset-prior-to-powering-down.patch
+++ b/0001-drm-panel-st7703-Assert-reset-prior-to-powering-down.patch
@@ -1,8 +1,8 @@
-From f290f11b42df0d9d42679b93bb6a488f9e12e00d Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megous@megous.com>
Date: Fri, 26 Jun 2020 02:55:59 +0200
-Subject: [PATCH 11/13] drm/panel: st7703: Assert reset prior to powering down
- the regulators
+Subject: [PATCH] drm/panel: st7703: Assert reset prior to powering down the
+ regulators
The reset pin is inverted, so if we don't assert reset, the actual gpio
will be high and may keep driving the IO port of the panel.
@@ -13,13 +13,13 @@ Signed-off-by: Ondrej Jirman <megous@megous.com>
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7703.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
-index e771281eb5472..92930e1275592 100644
+index e771281eb547..92930e127559 100644
--- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c
+++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
@@ -416,6 +416,7 @@ static int st7703_unprepare(struct drm_panel *panel)
if (!ctx->prepared)
return 0;
-
+
+ gpiod_set_value_cansleep(ctx->reset_gpio, 1);
regulator_disable(ctx->iovcc);
regulator_disable(ctx->vcc);
diff --git a/0010-drm-panel-st7703-Enter-sleep-after-display-off.patch b/0001-drm-panel-st7703-Enter-sleep-after-display-off.patch
index 867962865..33e52fc94 100644
--- a/0010-drm-panel-st7703-Enter-sleep-after-display-off.patch
+++ b/0001-drm-panel-st7703-Enter-sleep-after-display-off.patch
@@ -1,7 +1,7 @@
-From 7c9c58114d277e570f667ac670ef28725e51814e Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megous@megous.com>
Date: Fri, 26 Jun 2020 02:55:58 +0200
-Subject: [PATCH 10/13] drm/panel: st7703: Enter sleep after display off
+Subject: [PATCH] drm/panel: st7703: Enter sleep after display off
The datasheet suggests to issue sleep in after display off
as a part of the panel's shutdown sequence.
@@ -12,7 +12,7 @@ Signed-off-by: Ondrej Jirman <megous@megous.com>
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7703.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
-index 33611419059a9..e771281eb5472 100644
+index 33611419059a..e771281eb547 100644
--- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c
+++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
@@ -394,8 +394,19 @@ static int st7703_disable(struct drm_panel *panel)
@@ -25,7 +25,7 @@ index 33611419059a9..e771281eb5472 100644
+ if (ret < 0)
+ DRM_DEV_ERROR(ctx->dev,
+ "Failed to turn off the display: %d\n", ret);
-
+
- return mipi_dsi_dcs_set_display_off(dsi);
+ ret = mipi_dsi_dcs_enter_sleep_mode(dsi);
+ if (ret < 0)
@@ -34,7 +34,7 @@ index 33611419059a9..e771281eb5472 100644
+
+ return 0;
}
-
+
static int st7703_unprepare(struct drm_panel *panel)
--
2.26.2
diff --git a/0007-drm-panel-st7703-Move-code-specific-to-jh057n-closer.patch b/0001-drm-panel-st7703-Move-code-specific-to-jh057n-closer.patch
index fcdf0482d..c3ab19fa2 100644
--- a/0007-drm-panel-st7703-Move-code-specific-to-jh057n-closer.patch
+++ b/0001-drm-panel-st7703-Move-code-specific-to-jh057n-closer.patch
@@ -1,7 +1,7 @@
-From b93e129534a0556a03a343f95e622ae9c3893854 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megous@megous.com>
Date: Fri, 26 Jun 2020 02:55:55 +0200
-Subject: [PATCH 07/13] drm/panel: st7703: Move code specific to jh057n closer
+Subject: [PATCH] drm/panel: st7703: Move code specific to jh057n closer
together
It's better than having it spread around the driver.
@@ -12,13 +12,13 @@ Signed-off-by: Ondrej Jirman <megous@megous.com>
1 file changed, 25 insertions(+), 25 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7703.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
-index 08cbc316266c1..d03aab10cfef1 100644
+index 08cbc316266c..d03aab10cfef 100644
--- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c
+++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
@@ -153,6 +153,31 @@ static int jh057n_init_sequence(struct st7703 *ctx)
return 0;
}
-
+
+static const struct drm_display_mode jh057n00900_mode = {
+ .hdisplay = 720,
+ .hsync_start = 720 + 90,
@@ -50,7 +50,7 @@ index 08cbc316266c1..d03aab10cfef1 100644
@@ -226,31 +251,6 @@ static int st7703_prepare(struct drm_panel *panel)
return ret;
}
-
+
-static const struct drm_display_mode jh057n00900_mode = {
- .hdisplay = 720,
- .hsync_start = 720 + 90,
diff --git a/0008-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch b/0001-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch
index bae442451..81c622060 100644
--- a/0008-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch
+++ b/0001-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch
@@ -1,8 +1,8 @@
-From 5e9a6f49f8056963a4b8d2408f0c0f211cdab799 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megous@megous.com>
Date: Fri, 26 Jun 2020 02:55:56 +0200
-Subject: [PATCH 08/13] drm/panel: st7703: Move generic part of init sequence
- to enable callback
+Subject: [PATCH] drm/panel: st7703: Move generic part of init sequence to
+ enable callback
Calling sleep out and display on is a controller specific part
of the initialization process. Move it out of the panel specific
@@ -14,7 +14,7 @@ Signed-off-by: Ondrej Jirman <megous@megous.com>
1 file changed, 18 insertions(+), 15 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7703.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
-index d03aab10cfef1..cdbf7dfb4dd48 100644
+index d03aab10cfef..cdbf7dfb4dd4 100644
--- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c
+++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
@@ -84,8 +84,6 @@ static inline struct st7703 *panel_to_st7703(struct drm_panel *panel)
@@ -23,7 +23,7 @@ index d03aab10cfef1..cdbf7dfb4dd48 100644
struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
- struct device *dev = ctx->dev;
- int ret;
-
+
/*
* Init sequence was supplied by the panel vendor. Most of the commands
@@ -136,20 +134,7 @@ static int jh057n_init_sequence(struct st7703 *ctx)
@@ -42,23 +42,23 @@ index d03aab10cfef1..cdbf7dfb4dd48 100644
- ret = mipi_dsi_dcs_set_display_on(dsi);
- if (ret)
- return ret;
-
+
- DRM_DEV_DEBUG_DRIVER(dev, "Panel init sequence done\n");
return 0;
}
-
+
@@ -181,6 +166,7 @@ struct st7703_panel_desc jh057n00900_panel_desc = {
static int st7703_enable(struct drm_panel *panel)
{
struct st7703 *ctx = panel_to_st7703(panel);
+ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
int ret;
-
+
ret = ctx->desc->init_sequence(ctx);
@@ -190,6 +176,23 @@ static int st7703_enable(struct drm_panel *panel)
return ret;
}
-
+
+ msleep(20);
+
+ ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
@@ -78,7 +78,7 @@ index d03aab10cfef1..cdbf7dfb4dd48 100644
+
return 0;
}
-
+
--
2.26.2
diff --git a/0006-drm-panel-st7703-Prepare-for-supporting-multiple-pan.patch b/0001-drm-panel-st7703-Prepare-for-supporting-multiple-pan.patch
index 8436ea3cb..94b181b0d 100644
--- a/0006-drm-panel-st7703-Prepare-for-supporting-multiple-pan.patch
+++ b/0001-drm-panel-st7703-Prepare-for-supporting-multiple-pan.patch
@@ -1,8 +1,7 @@
-From 19802e031428f7cf967259fdf8794a971164a44a Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megous@megous.com>
Date: Fri, 26 Jun 2020 02:55:54 +0200
-Subject: [PATCH 06/13] drm/panel: st7703: Prepare for supporting multiple
- panels
+Subject: [PATCH] drm/panel: st7703: Prepare for supporting multiple panels
Parametrize the driver so that it can support more panels based
on st7703 controller.
@@ -13,7 +12,7 @@ Signed-off-by: Ondrej Jirman <megous@megous.com>
1 file changed, 31 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7703.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
-index 511af659f273b..08cbc316266c1 100644
+index 511af659f273..08cbc316266c 100644
--- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c
+++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
@@ -13,6 +13,7 @@
@@ -22,11 +21,11 @@ index 511af659f273b..08cbc316266c1 100644
#include <linux/module.h>
+#include <linux/of_device.h>
#include <linux/regulator/consumer.h>
-
+
#include <video/display_timing.h>
@@ -56,6 +57,15 @@ struct st7703 {
bool prepared;
-
+
struct dentry *debugfs;
+ const struct st7703_panel_desc *desc;
+};
@@ -38,12 +37,12 @@ index 511af659f273b..08cbc316266c1 100644
+ enum mipi_dsi_pixel_format format;
+ int (*init_sequence)(struct st7703 *ctx);
};
-
+
static inline struct st7703 *panel_to_st7703(struct drm_panel *panel)
@@ -148,7 +158,7 @@ static int st7703_enable(struct drm_panel *panel)
struct st7703 *ctx = panel_to_st7703(panel);
int ret;
-
+
- ret = jh057n_init_sequence(ctx);
+ ret = ctx->desc->init_sequence(ctx);
if (ret < 0) {
@@ -52,7 +51,7 @@ index 511af659f273b..08cbc316266c1 100644
@@ -216,7 +226,7 @@ static int st7703_prepare(struct drm_panel *panel)
return ret;
}
-
+
-static const struct drm_display_mode default_mode = {
+static const struct drm_display_mode jh057n00900_mode = {
.hdisplay = 720,
@@ -61,7 +60,7 @@ index 511af659f273b..08cbc316266c1 100644
@@ -232,17 +242,26 @@ static const struct drm_display_mode default_mode = {
.height_mm = 130,
};
-
+
+struct st7703_panel_desc jh057n00900_panel_desc = {
+ .mode = &jh057n00900_mode,
+ .lanes = 4,
@@ -76,7 +75,7 @@ index 511af659f273b..08cbc316266c1 100644
{
struct st7703 *ctx = panel_to_st7703(panel);
struct drm_display_mode *mode;
-
+
- mode = drm_mode_duplicate(connector->dev, &default_mode);
+ mode = drm_mode_duplicate(connector->dev, ctx->desc->mode);
if (!mode) {
@@ -87,13 +86,13 @@ index 511af659f273b..08cbc316266c1 100644
+ ctx->desc->mode->vrefresh);
return -ENOMEM;
}
-
+
@@ -317,11 +336,11 @@ static int st7703_probe(struct mipi_dsi_device *dsi)
mipi_dsi_set_drvdata(dsi, ctx);
-
+
ctx->dev = dev;
+ ctx->desc = of_device_get_match_data(dev);
-
+
- dsi->lanes = 4;
- dsi->format = MIPI_DSI_FMT_RGB888;
- dsi->mode_flags = MIPI_DSI_MODE_VIDEO |
@@ -101,23 +100,23 @@ index 511af659f273b..08cbc316266c1 100644
+ dsi->mode_flags = ctx->desc->mode_flags;
+ dsi->format = ctx->desc->format;
+ dsi->lanes = ctx->desc->lanes;
-
+
ctx->vcc = devm_regulator_get(dev, "vcc");
if (IS_ERR(ctx->vcc)) {
@@ -361,8 +380,8 @@ static int st7703_probe(struct mipi_dsi_device *dsi)
}
-
+
DRM_DEV_INFO(dev, "%ux%u@%u %ubpp dsi %udl - ready\n",
- default_mode.hdisplay, default_mode.vdisplay,
- default_mode.vrefresh,
+ ctx->desc->mode->hdisplay, ctx->desc->mode->vdisplay,
+ ctx->desc->mode->vrefresh,
mipi_dsi_pixel_format_to_bpp(dsi->format), dsi->lanes);
-
+
st7703_debugfs_init(ctx);
@@ -405,7 +424,7 @@ static int st7703_remove(struct mipi_dsi_device *dsi)
}
-
+
static const struct of_device_id st7703_of_match[] = {
- { .compatible = "rocktech,jh057n00900" },
+ { .compatible = "rocktech,jh057n00900", .data = &jh057n00900_panel_desc },
diff --git a/0005-drm-panel-st7703-Rename-functions-from-jh057n-prefix.patch b/0001-drm-panel-st7703-Rename-functions-from-jh057n-prefix.patch
index 5432e1bba..1d17d147e 100644
--- a/0005-drm-panel-st7703-Rename-functions-from-jh057n-prefix.patch
+++ b/0001-drm-panel-st7703-Rename-functions-from-jh057n-prefix.patch
@@ -1,8 +1,8 @@
-From 6fad8493b27ade51f37d88acc7ce6fd7dbc9da69 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megous@megous.com>
Date: Fri, 26 Jun 2020 02:55:53 +0200
-Subject: [PATCH 05/13] drm/panel: st7703: Rename functions from jh057n prefix
- to st7703
+Subject: [PATCH] drm/panel: st7703: Rename functions from jh057n prefix to
+ st7703
This is done so that code that's not specific to a particular
jh057n panel is named after the controller. Functions specific
@@ -14,7 +14,7 @@ Signed-off-by: Ondrej Jirman <megous@megous.com>
1 file changed, 46 insertions(+), 44 deletions(-)
diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7703.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
-index 38ff742bc1209..511af659f273b 100644
+index 38ff742bc120..511af659f273 100644
--- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c
+++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
@@ -1,6 +1,8 @@
@@ -30,16 +30,16 @@ index 38ff742bc1209..511af659f273b 100644
@@ -21,7 +23,7 @@
#include <drm/drm_panel.h>
#include <drm/drm_print.h>
-
+
-#define DRV_NAME "panel-rocktech-jh057n00900"
+#define DRV_NAME "panel-sitronix-st7703"
-
+
/* Manufacturer specific Commands send via DSI */
#define ST7703_CMD_ALL_PIXEL_OFF 0x22
@@ -45,7 +47,7 @@
#define ST7703_CMD_SETGIP1 0xE9
#define ST7703_CMD_SETGIP2 0xEA
-
+
-struct jh057n {
+struct st7703 {
struct device *dev;
@@ -48,19 +48,19 @@ index 38ff742bc1209..511af659f273b 100644
@@ -56,9 +58,9 @@ struct jh057n {
struct dentry *debugfs;
};
-
+
-static inline struct jh057n *panel_to_jh057n(struct drm_panel *panel)
+static inline struct st7703 *panel_to_st7703(struct drm_panel *panel)
{
- return container_of(panel, struct jh057n, panel);
+ return container_of(panel, struct st7703, panel);
}
-
+
#define dsi_generic_write_seq(dsi, seq...) do { \
@@ -69,7 +71,7 @@ static inline struct jh057n *panel_to_jh057n(struct drm_panel *panel)
return ret; \
} while (0)
-
+
-static int jh057n_init_sequence(struct jh057n *ctx)
+static int jh057n_init_sequence(struct st7703 *ctx)
{
@@ -69,53 +69,53 @@ index 38ff742bc1209..511af659f273b 100644
@@ -141,9 +143,9 @@ static int jh057n_init_sequence(struct jh057n *ctx)
return 0;
}
-
+
-static int jh057n_enable(struct drm_panel *panel)
+static int st7703_enable(struct drm_panel *panel)
{
- struct jh057n *ctx = panel_to_jh057n(panel);
+ struct st7703 *ctx = panel_to_st7703(panel);
int ret;
-
+
ret = jh057n_init_sequence(ctx);
@@ -156,17 +158,17 @@ static int jh057n_enable(struct drm_panel *panel)
return 0;
}
-
+
-static int jh057n_disable(struct drm_panel *panel)
+static int st7703_disable(struct drm_panel *panel)
{
- struct jh057n *ctx = panel_to_jh057n(panel);
+ struct st7703 *ctx = panel_to_st7703(panel);
struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
-
+
return mipi_dsi_dcs_set_display_off(dsi);
}
-
+
-static int jh057n_unprepare(struct drm_panel *panel)
+static int st7703_unprepare(struct drm_panel *panel)
{
- struct jh057n *ctx = panel_to_jh057n(panel);
+ struct st7703 *ctx = panel_to_st7703(panel);
-
+
if (!ctx->prepared)
return 0;
@@ -178,9 +180,9 @@ static int jh057n_unprepare(struct drm_panel *panel)
return 0;
}
-
+
-static int jh057n_prepare(struct drm_panel *panel)
+static int st7703_prepare(struct drm_panel *panel)
{
- struct jh057n *ctx = panel_to_jh057n(panel);
+ struct st7703 *ctx = panel_to_st7703(panel);
int ret;
-
+
if (ctx->prepared)
@@ -230,10 +232,10 @@ static const struct drm_display_mode default_mode = {
.height_mm = 130,
};
-
+
-static int jh057n_get_modes(struct drm_panel *panel,
+static int st7703_get_modes(struct drm_panel *panel,
struct drm_connector *connector)
@@ -123,12 +123,12 @@ index 38ff742bc1209..511af659f273b 100644
- struct jh057n *ctx = panel_to_jh057n(panel);
+ struct st7703 *ctx = panel_to_st7703(panel);
struct drm_display_mode *mode;
-
+
mode = drm_mode_duplicate(connector->dev, &default_mode);
@@ -254,17 +256,17 @@ static int jh057n_get_modes(struct drm_panel *panel,
return 1;
}
-
+
-static const struct drm_panel_funcs jh057n_drm_funcs = {
- .disable = jh057n_disable,
- .unprepare = jh057n_unprepare,
@@ -142,34 +142,34 @@ index 38ff742bc1209..511af659f273b 100644
+ .enable = st7703_enable,
+ .get_modes = st7703_get_modes,
};
-
+
static int allpixelson_set(void *data, u64 val)
{
- struct jh057n *ctx = data;
+ struct st7703 *ctx = data;
struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
-
+
DRM_DEV_DEBUG_DRIVER(ctx->dev, "Setting all pixels on\n");
@@ -282,7 +284,7 @@ static int allpixelson_set(void *data, u64 val)
DEFINE_SIMPLE_ATTRIBUTE(allpixelson_fops, NULL,
allpixelson_set, "%llu\n");
-
+
-static void jh057n_debugfs_init(struct jh057n *ctx)
+static void st7703_debugfs_init(struct st7703 *ctx)
{
ctx->debugfs = debugfs_create_dir(DRV_NAME, NULL);
-
+
@@ -290,16 +292,16 @@ static void jh057n_debugfs_init(struct jh057n *ctx)
&allpixelson_fops);
}
-
+
-static void jh057n_debugfs_remove(struct jh057n *ctx)
+static void st7703_debugfs_remove(struct st7703 *ctx)
{
debugfs_remove_recursive(ctx->debugfs);
ctx->debugfs = NULL;
}
-
+
-static int jh057n_probe(struct mipi_dsi_device *dsi)
+static int st7703_probe(struct mipi_dsi_device *dsi)
{
@@ -177,60 +177,60 @@ index 38ff742bc1209..511af659f273b 100644
- struct jh057n *ctx;
+ struct st7703 *ctx;
int ret;
-
+
ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
@@ -340,7 +342,7 @@ static int jh057n_probe(struct mipi_dsi_device *dsi)
return ret;
}
-
+
- drm_panel_init(&ctx->panel, dev, &jh057n_drm_funcs,
+ drm_panel_init(&ctx->panel, dev, &st7703_drm_funcs,
DRM_MODE_CONNECTOR_DSI);
-
+
ret = drm_panel_of_backlight(&ctx->panel);
@@ -363,13 +365,13 @@ static int jh057n_probe(struct mipi_dsi_device *dsi)
default_mode.vrefresh,
mipi_dsi_pixel_format_to_bpp(dsi->format), dsi->lanes);
-
+
- jh057n_debugfs_init(ctx);
+ st7703_debugfs_init(ctx);
return 0;
}
-
+
-static void jh057n_shutdown(struct mipi_dsi_device *dsi)
+static void st7703_shutdown(struct mipi_dsi_device *dsi)
{
- struct jh057n *ctx = mipi_dsi_get_drvdata(dsi);
+ struct st7703 *ctx = mipi_dsi_get_drvdata(dsi);
int ret;
-
+
ret = drm_panel_unprepare(&ctx->panel);
@@ -383,12 +385,12 @@ static void jh057n_shutdown(struct mipi_dsi_device *dsi)
ret);
}
-
+
-static int jh057n_remove(struct mipi_dsi_device *dsi)
+static int st7703_remove(struct mipi_dsi_device *dsi)
{
- struct jh057n *ctx = mipi_dsi_get_drvdata(dsi);
+ struct st7703 *ctx = mipi_dsi_get_drvdata(dsi);
int ret;
-
+
- jh057n_shutdown(dsi);
+ st7703_shutdown(dsi);
-
+
ret = mipi_dsi_detach(dsi);
if (ret < 0)
@@ -397,28 +399,28 @@ static int jh057n_remove(struct mipi_dsi_device *dsi)
-
+
drm_panel_remove(&ctx->panel);
-
+
- jh057n_debugfs_remove(ctx);
+ st7703_debugfs_remove(ctx);
-
+
return 0;
}
-
+
-static const struct of_device_id jh057n_of_match[] = {
+static const struct of_device_id st7703_of_match[] = {
{ .compatible = "rocktech,jh057n00900" },
@@ -238,7 +238,7 @@ index 38ff742bc1209..511af659f273b 100644
};
-MODULE_DEVICE_TABLE(of, jh057n_of_match);
+MODULE_DEVICE_TABLE(of, st7703_of_match);
-
+
-static struct mipi_dsi_driver jh057n_driver = {
- .probe = jh057n_probe,
- .remove = jh057n_remove,
@@ -255,7 +255,7 @@ index 38ff742bc1209..511af659f273b 100644
};
-module_mipi_dsi_driver(jh057n_driver);
+module_mipi_dsi_driver(st7703_driver);
-
+
MODULE_AUTHOR("Guido Günther <agx@sigxcpu.org>");
-MODULE_DESCRIPTION("DRM driver for Rocktech JH057N00900 MIPI DSI panel");
+MODULE_DESCRIPTION("DRM driver for Sitronix ST7703 based MIPI DSI panels");
diff --git a/0001-drm-sun4i-sun6i_mipi_dsi-fix-horizontal-timing-calcu.patch b/0001-drm-sun4i-sun6i_mipi_dsi-fix-horizontal-timing-calcu.patch
new file mode 100644
index 000000000..a812477f4
--- /dev/null
+++ b/0001-drm-sun4i-sun6i_mipi_dsi-fix-horizontal-timing-calcu.patch
@@ -0,0 +1,59 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Icenowy Zheng <icenowy@aosc.io>
+Date: Mon, 16 Mar 2020 21:35:02 +0800
+Subject: [PATCH] drm/sun4i: sun6i_mipi_dsi: fix horizontal timing calculation
+
+The max() function call in horizontal timing calculation shouldn't pad a
+length already subtracted with overhead to overhead, instead it should
+only prevent the set timing to underflow.
+
+Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
+---
+ drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
+index aa67cb037e9d..52e009dc632b 100644
+--- a/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
++++ b/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
+@@ -556,7 +556,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi,
+ */
+ #define HSA_PACKET_OVERHEAD 10
+ hsa = max((unsigned int)HSA_PACKET_OVERHEAD,
+- (mode->hsync_end - mode->hsync_start) * Bpp - HSA_PACKET_OVERHEAD);
++ (mode->hsync_end - mode->hsync_start) * Bpp) - HSA_PACKET_OVERHEAD;
+
+ /*
+ * The backporch is set using a blanking packet (4
+@@ -565,7 +565,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi,
+ */
+ #define HBP_PACKET_OVERHEAD 6
+ hbp = max((unsigned int)HBP_PACKET_OVERHEAD,
+- (mode->htotal - mode->hsync_end) * Bpp - HBP_PACKET_OVERHEAD);
++ (mode->htotal - mode->hsync_end) * Bpp) - HBP_PACKET_OVERHEAD;
+
+ /*
+ * The frontporch is set using a sync event (4 bytes)
+@@ -575,7 +575,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi,
+ */
+ #define HFP_PACKET_OVERHEAD 16
+ hfp = max((unsigned int)HFP_PACKET_OVERHEAD,
+- (mode->hsync_start - mode->hdisplay) * Bpp - HFP_PACKET_OVERHEAD);
++ (mode->hsync_start - mode->hdisplay) * Bpp) - HFP_PACKET_OVERHEAD;
+
+ /*
+ * The blanking is set using a sync event (4 bytes)
+@@ -584,8 +584,8 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi,
+ */
+ #define HBLK_PACKET_OVERHEAD 10
+ hblk = max((unsigned int)HBLK_PACKET_OVERHEAD,
+- (mode->htotal - (mode->hsync_end - mode->hsync_start)) * Bpp -
+- HBLK_PACKET_OVERHEAD);
++ (mode->htotal - (mode->hsync_end - mode->hsync_start)) * Bpp) -
++ HBLK_PACKET_OVERHEAD;
+
+ /*
+ * And I'm not entirely sure what vblk is about. The driver in
+--
+2.26.2
+
diff --git a/0003-dt-bindings-panel-Add-compatible-for-Xingbangda-XBD5.patch b/0001-dt-bindings-panel-Add-compatible-for-Xingbangda-XBD5.patch
index a7099de05..74906d9b1 100644
--- a/0003-dt-bindings-panel-Add-compatible-for-Xingbangda-XBD5.patch
+++ b/0001-dt-bindings-panel-Add-compatible-for-Xingbangda-XBD5.patch
@@ -1,8 +1,8 @@
-From 12146093602e0dedb7ee431224fc4a58d40697f8 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megous@megous.com>
Date: Fri, 26 Jun 2020 02:55:51 +0200
-Subject: [PATCH 03/13] dt-bindings: panel: Add compatible for Xingbangda
- XBD599 panel
+Subject: [PATCH] dt-bindings: panel: Add compatible for Xingbangda XBD599
+ panel
Xingbangda XBD599 is a 5.99" 720x1440 MIPI-DSI LCD panel. It is based on
Sitronix ST7703 LCD controller just like rocktech,jh057n00900. It is
@@ -16,11 +16,11 @@ Signed-off-by: Ondrej Jirman <megous@megous.com>
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml b/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml
-index f97c48550741c..4d43a1b36d7c7 100644
+index f97c48550741..4d43a1b36d7c 100644
--- a/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml
+++ b/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml
@@ -18,7 +18,11 @@ allOf:
-
+
properties:
compatible:
- const: rocktech,jh057n00900
@@ -29,7 +29,7 @@ index f97c48550741c..4d43a1b36d7c7 100644
+ - rocktech,jh057n00900
+ # Xingbangda XBD599 5.99" 720x1440 TFT LCD panel
+ - xingbangda,xbd599
-
+
reg:
maxItems: 1
--
diff --git a/0002-dt-bindings-panel-Convert-rocktech-jh057n00900-to-ya.patch b/0001-dt-bindings-panel-Convert-rocktech-jh057n00900-to-ya.patch
index 0d05e02e0..0aaf4a92a 100644
--- a/0002-dt-bindings-panel-Convert-rocktech-jh057n00900-to-ya.patch
+++ b/0001-dt-bindings-panel-Convert-rocktech-jh057n00900-to-ya.patch
@@ -1,8 +1,7 @@
-From 789d3f52a1cf675ba68c3578fe2b259bc44caba2 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Ondrej Jirman <megous@megous.com>
Date: Fri, 26 Jun 2020 02:55:50 +0200
-Subject: [PATCH 02/13] dt-bindings: panel: Convert rocktech, jh057n00900 to
- yaml
+Subject: [PATCH] dt-bindings: panel: Convert rocktech, jh057n00900 to yaml
Convert Rocktech MIPI DSI panel driver from txt to yaml bindings.
@@ -16,7 +15,7 @@ Signed-off-by: Ondrej Jirman <megous@megous.com>
diff --git a/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.txt b/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.txt
deleted file mode 100644
-index a372c5d846956..0000000000000
+index a372c5d84695..000000000000
--- a/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.txt
+++ /dev/null
@@ -1,23 +0,0 @@
@@ -45,7 +44,7 @@ index a372c5d846956..0000000000000
- };
diff --git a/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml b/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml
new file mode 100644
-index 0000000000000..f97c48550741c
+index 000000000000..f97c48550741
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml
@@ -0,0 +1,66 @@
diff --git a/0001-dt-bindings-panel-add-binding-for-Xingbangda-XBD599-.patch b/0001-dt-bindings-panel-add-binding-for-Xingbangda-XBD599-.patch
new file mode 100644
index 000000000..8e6808fdc
--- /dev/null
+++ b/0001-dt-bindings-panel-add-binding-for-Xingbangda-XBD599-.patch
@@ -0,0 +1,74 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Icenowy Zheng <icenowy@aosc.io>
+Date: Mon, 16 Mar 2020 21:35:00 +0800
+Subject: [PATCH] dt-bindings: panel: add binding for Xingbangda XBD599 panel
+
+Xingbangda XBD599 is a 5.99" 720x1440 MIPI-DSI LCD panel.
+
+Add its device tree binding.
+
+Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
+---
+ .../display/panel/xingbangda,xbd599.yaml | 50 +++++++++++++++++++
+ 1 file changed, 50 insertions(+)
+ create mode 100644 Documentation/devicetree/bindings/display/panel/xingbangda,xbd599.yaml
+
+diff --git a/Documentation/devicetree/bindings/display/panel/xingbangda,xbd599.yaml b/Documentation/devicetree/bindings/display/panel/xingbangda,xbd599.yaml
+new file mode 100644
+index 000000000000..b27bcf11198f
+--- /dev/null
++++ b/Documentation/devicetree/bindings/display/panel/xingbangda,xbd599.yaml
+@@ -0,0 +1,50 @@
++# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
++%YAML 1.2
++---
++$id: http://devicetree.org/schemas/display/panel/xingbangda,xbd599.yaml#
++$schema: http://devicetree.org/meta-schemas/core.yaml#
++
++title: Xingbangda XBD599 5.99in MIPI-DSI LCD panel
++
++maintainers:
++ - Icenowy Zheng <icenowy@aosc.io>
++
++allOf:
++ - $ref: panel-common.yaml#
++
++properties:
++ compatible:
++ const: xingbangda,xbd599
++ reg: true
++ backlight: true
++ reset-gpios: true
++ vcc-supply:
++ description: regulator that supplies the VCC voltage
++ iovcc-supply:
++ description: regulator that supplies the IOVCC voltage
++
++required:
++ - compatible
++ - reg
++ - backlight
++ - vcc-supply
++ - iovcc-supply
++
++additionalProperties: false
++
++examples:
++ - |
++ dsi {
++ #address-cells = <1>;
++ #size-cells = <0>;
++
++ panel@0 {
++ compatible = "xingbangda,xbd599";
++ reg = <0>;
++ backlight = <&backlight>;
++ iovcc-supply = <&reg_dldo2>;
++ vcc-supply = <&reg_ldo_io0>;
++ };
++ };
++
++...
+--
+2.26.2
+
diff --git a/0001-dt-bindings-vendor-prefixes-Add-Xingbangda.patch b/0001-dt-bindings-vendor-prefixes-Add-Xingbangda.patch
index eef72a211..65dad5c77 100644
--- a/0001-dt-bindings-vendor-prefixes-Add-Xingbangda.patch
+++ b/0001-dt-bindings-vendor-prefixes-Add-Xingbangda.patch
@@ -1,7 +1,7 @@
-From 025eb2eb927d2c3020882ea0ed3af28d65321763 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Icenowy Zheng <icenowy@aosc.io>
Date: Fri, 26 Jun 2020 02:55:49 +0200
-Subject: [PATCH 01/13] dt-bindings: vendor-prefixes: Add Xingbangda
+Subject: [PATCH] dt-bindings: vendor-prefixes: Add Xingbangda
Shenzhen Xingbangda Display Technology Co., Ltd is a company which
produces LCD modules. It supplies the LCD panels for the PinePhone.
@@ -16,10 +16,10 @@ Acked-by: Rob Herring <robh@kernel.org>
1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
-index d3891386d6710..a558ef87ee5b0 100644
+index 9aeab66be85f..740b116b179f 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
-@@ -1121,6 +1121,8 @@ patternProperties:
+@@ -1157,6 +1157,8 @@ patternProperties:
description: Xiaomi Technology Co., Ltd.
"^xillybus,.*":
description: Xillybus Ltd.
diff --git a/0001-e1000e-bump-up-timeout-to-wait-when-ME-un-configure-.patch b/0001-e1000e-bump-up-timeout-to-wait-when-ME-un-configure-.patch
index 8e740ce24..e679aeb55 100644
--- a/0001-e1000e-bump-up-timeout-to-wait-when-ME-un-configure-.patch
+++ b/0001-e1000e-bump-up-timeout-to-wait-when-ME-un-configure-.patch
@@ -15,10 +15,10 @@ Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
-index 735bf25952fc..15f6c0a4dc63 100644
+index 489bb5b59475..26bb39b62956 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
-@@ -1243,9 +1243,9 @@ static s32 e1000_disable_ulp_lpt_lp(struct e1000_hw *hw, bool force)
+@@ -1245,9 +1245,9 @@ static s32 e1000_disable_ulp_lpt_lp(struct e1000_hw *hw, bool force)
ew32(H2ME, mac_reg);
}
diff --git a/0001-efi-Add-an-EFI_SECURE_BOOT-flag-to-indicate-secure-b.patch b/0001-efi-Add-an-EFI_SECURE_BOOT-flag-to-indicate-secure-b.patch
deleted file mode 100644
index acd11a206..000000000
--- a/0001-efi-Add-an-EFI_SECURE_BOOT-flag-to-indicate-secure-b.patch
+++ /dev/null
@@ -1,161 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells@redhat.com>
-Date: Tue, 27 Feb 2018 10:04:55 +0000
-Subject: [PATCH] efi: Add an EFI_SECURE_BOOT flag to indicate secure boot mode
-
-UEFI machines can be booted in Secure Boot mode. Add an EFI_SECURE_BOOT
-flag that can be passed to efi_enabled() to find out whether secure boot is
-enabled.
-
-Move the switch-statement in x86's setup_arch() that inteprets the
-secure_boot boot parameter to generic code and set the bit there.
-
-Upstream Status: RHEL only
-Suggested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
-Signed-off-by: David Howells <dhowells@redhat.com>
-Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
-cc: linux-efi@vger.kernel.org
-[Rebased for context; efi_is_table_address was moved to arch/x86]
-Signed-off-by: Jeremy Cline <jcline@redhat.com>
----
- arch/x86/kernel/setup.c | 14 +-----------
- drivers/firmware/efi/Makefile | 1 +
- drivers/firmware/efi/secureboot.c | 38 +++++++++++++++++++++++++++++++
- include/linux/efi.h | 18 ++++++++++-----
- 4 files changed, 52 insertions(+), 19 deletions(-)
- create mode 100644 drivers/firmware/efi/secureboot.c
-
-diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
-index e39ec0f88d28..08e9f5fc26a8 100644
---- a/arch/x86/kernel/setup.c
-+++ b/arch/x86/kernel/setup.c
-@@ -1250,19 +1250,7 @@ void __init setup_arch(char **cmdline_p)
- /* Allocate bigger log buffer */
- setup_log_buf(1);
-
-- if (efi_enabled(EFI_BOOT)) {
-- switch (boot_params.secure_boot) {
-- case efi_secureboot_mode_disabled:
-- pr_info("Secure boot disabled\n");
-- break;
-- case efi_secureboot_mode_enabled:
-- pr_info("Secure boot enabled\n");
-- break;
-- default:
-- pr_info("Secure boot could not be determined\n");
-- break;
-- }
-- }
-+ efi_set_secure_boot(boot_params.secure_boot);
-
- reserve_initrd();
-
-diff --git a/drivers/firmware/efi/Makefile b/drivers/firmware/efi/Makefile
-index 7a216984552b..f0ef02d733af 100644
---- a/drivers/firmware/efi/Makefile
-+++ b/drivers/firmware/efi/Makefile
-@@ -25,6 +25,7 @@ obj-$(CONFIG_EFI_FAKE_MEMMAP) += fake_map.o
- obj-$(CONFIG_EFI_BOOTLOADER_CONTROL) += efibc.o
- obj-$(CONFIG_EFI_TEST) += test/
- obj-$(CONFIG_EFI_DEV_PATH_PARSER) += dev-path-parser.o
-+obj-$(CONFIG_EFI) += secureboot.o
- obj-$(CONFIG_APPLE_PROPERTIES) += apple-properties.o
- obj-$(CONFIG_EFI_RCI2_TABLE) += rci2-table.o
- obj-$(CONFIG_EFI_EMBEDDED_FIRMWARE) += embedded-firmware.o
-diff --git a/drivers/firmware/efi/secureboot.c b/drivers/firmware/efi/secureboot.c
-new file mode 100644
-index 000000000000..de0a3714a5d4
---- /dev/null
-+++ b/drivers/firmware/efi/secureboot.c
-@@ -0,0 +1,38 @@
-+/* Core kernel secure boot support.
-+ *
-+ * Copyright (C) 2017 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.
-+ */
-+
-+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-+
-+#include <linux/efi.h>
-+#include <linux/kernel.h>
-+#include <linux/printk.h>
-+
-+/*
-+ * Decide what to do when UEFI secure boot mode is enabled.
-+ */
-+void __init efi_set_secure_boot(enum efi_secureboot_mode mode)
-+{
-+ if (efi_enabled(EFI_BOOT)) {
-+ switch (mode) {
-+ case efi_secureboot_mode_disabled:
-+ pr_info("Secure boot disabled\n");
-+ break;
-+ case efi_secureboot_mode_enabled:
-+ set_bit(EFI_SECURE_BOOT, &efi.flags);
-+ pr_info("Secure boot enabled\n");
-+ break;
-+ default:
-+ pr_warn("Secure boot could not be determined (mode %u)\n",
-+ mode);
-+ break;
-+ }
-+ }
-+}
-diff --git a/include/linux/efi.h b/include/linux/efi.h
-index 51503bf118ab..b35e693f20f3 100644
---- a/include/linux/efi.h
-+++ b/include/linux/efi.h
-@@ -778,6 +778,14 @@ extern int __init efi_setup_pcdp_console(char *);
- #define EFI_MEM_ATTR 10 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */
- #define EFI_MEM_NO_SOFT_RESERVE 11 /* Is the kernel configured to ignore soft reservations? */
- #define EFI_PRESERVE_BS_REGIONS 12 /* Are EFI boot-services memory segments available? */
-+#define EFI_SECURE_BOOT 13 /* Are we in Secure Boot mode? */
-+
-+enum efi_secureboot_mode {
-+ efi_secureboot_mode_unset,
-+ efi_secureboot_mode_unknown,
-+ efi_secureboot_mode_disabled,
-+ efi_secureboot_mode_enabled,
-+};
-
- #ifdef CONFIG_EFI
- /*
-@@ -789,6 +797,8 @@ static inline bool efi_enabled(int feature)
- }
- extern void efi_reboot(enum reboot_mode reboot_mode, const char *__unused);
-
-+extern void __init efi_set_secure_boot(enum efi_secureboot_mode mode);
-+
- bool __pure __efi_soft_reserve_enabled(void);
-
- static inline bool __pure efi_soft_reserve_enabled(void)
-@@ -815,6 +825,8 @@ efi_capsule_pending(int *reset_type)
- return false;
- }
-
-+static inline void efi_set_secure_boot(enum efi_secureboot_mode mode) {}
-+
- static inline bool efi_soft_reserve_enabled(void)
- {
- return false;
-@@ -1086,12 +1098,6 @@ static inline bool efi_runtime_disabled(void) { return true; }
- extern void efi_call_virt_check_flags(unsigned long flags, const char *call);
- extern unsigned long efi_call_virt_save_flags(void);
-
--enum efi_secureboot_mode {
-- efi_secureboot_mode_unset,
-- efi_secureboot_mode_unknown,
-- efi_secureboot_mode_disabled,
-- efi_secureboot_mode_enabled,
--};
- enum efi_secureboot_mode efi_get_secureboot(void);
-
- #ifdef CONFIG_RESET_ATTACK_MITIGATION
---
-2.26.2
-
diff --git a/0001-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch b/0001-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch
index 97096ad32..3d262ba84 100644
--- a/0001-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch
+++ b/0001-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch
@@ -18,7 +18,7 @@ Signed-off-by: Jeremy Cline <jcline@redhat.com>
2 files changed, 21 insertions(+)
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
-index 08e9f5fc26a8..b6f5510f3d91 100644
+index 28d43754aeb6..19d57bfc12f9 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -18,6 +18,7 @@
@@ -29,7 +29,7 @@ index 08e9f5fc26a8..b6f5510f3d91 100644
#include <linux/usb/xhci-dbgp.h>
#include <uapi/linux/mount.h>
-@@ -1099,6 +1100,13 @@ void __init setup_arch(char **cmdline_p)
+@@ -1105,6 +1106,13 @@ void __init setup_arch(char **cmdline_p)
if (efi_enabled(EFI_BOOT))
efi_init();
diff --git a/0001-firmware-raspberrypi-Introduce-vl805-init-routine.patch b/0001-firmware-raspberrypi-Introduce-vl805-init-routine.patch
deleted file mode 100644
index db8a4a16c..000000000
--- a/0001-firmware-raspberrypi-Introduce-vl805-init-routine.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
-Date: Tue, 10 Mar 2020 13:52:40 +0100
-Subject: [PATCH] firmware: raspberrypi: Introduce vl805 init routine
-
-On the Raspberry Pi 4, after a PCI reset, VL805's firmware may either be
-loaded directly from an EEPROM or, if not present, by the SoC's
-VideCore. The function informs VideCore that VL805 was just reset, or
-requests for a probe defer.
-
-Based on Tim Gover's downstream implementation.
-
-Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
-Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
----
- drivers/firmware/raspberrypi.c | 38 ++++++++++++++++++++++
- include/soc/bcm2835/raspberrypi-firmware.h | 7 ++++
- 2 files changed, 45 insertions(+)
-
-diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c
-index da26a584dca0..cbb495aff6a0 100644
---- a/drivers/firmware/raspberrypi.c
-+++ b/drivers/firmware/raspberrypi.c
-@@ -12,6 +12,7 @@
- #include <linux/of_platform.h>
- #include <linux/platform_device.h>
- #include <linux/slab.h>
-+#include <linux/pci.h>
- #include <soc/bcm2835/raspberrypi-firmware.h>
-
- #define MBOX_MSG(chan, data28) (((data28) & ~0xf) | ((chan) & 0xf))
-@@ -286,6 +287,43 @@ struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node)
- }
- EXPORT_SYMBOL_GPL(rpi_firmware_get);
-
-+/*
-+ * On the Raspberry Pi 4, after a PCI reset, VL805's firmware may either be
-+ * loaded directly from an EEPROM or, if not present, by the SoC's VideCore.
-+ * Inform VideCore that VL805 was just reset, or defer xhci's probe if not yet
-+ * joinable trough the mailbox interface.
-+ */
-+int rpi_firmware_init_vl805(struct pci_dev *pdev)
-+{
-+ struct device_node *fw_np;
-+ struct rpi_firmware *fw;
-+ u32 dev_addr;
-+ int ret;
-+
-+ fw_np = of_find_compatible_node(NULL, NULL,
-+ "raspberrypi,bcm2835-firmware");
-+ if (!fw_np)
-+ return 0;
-+
-+ fw = rpi_firmware_get(fw_np);
-+ of_node_put(fw_np);
-+ if (!fw)
-+ return -EPROBE_DEFER;
-+
-+ dev_addr = pdev->bus->number << 20 | PCI_SLOT(pdev->devfn) << 15 |
-+ PCI_FUNC(pdev->devfn) << 12;
-+
-+ ret = rpi_firmware_property(fw, RPI_FIRMWARE_NOTIFY_XHCI_RESET,
-+ &dev_addr, sizeof(dev_addr));
-+ if (ret)
-+ return ret;
-+
-+ dev_dbg(&pdev->dev, "loaded Raspberry Pi's VL805 firmware\n");
-+
-+ return 0;
-+}
-+EXPORT_SYMBOL_GPL(rpi_firmware_init_vl805);
-+
- static const struct of_device_id rpi_firmware_of_match[] = {
- { .compatible = "raspberrypi,bcm2835-firmware", },
- {},
-diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h
-index cc9cdbc66403..3025aca3c358 100644
---- a/include/soc/bcm2835/raspberrypi-firmware.h
-+++ b/include/soc/bcm2835/raspberrypi-firmware.h
-@@ -10,6 +10,7 @@
- #include <linux/of_device.h>
-
- struct rpi_firmware;
-+struct pci_dev;
-
- enum rpi_firmware_property_status {
- RPI_FIRMWARE_STATUS_REQUEST = 0,
-@@ -141,6 +142,7 @@ int rpi_firmware_property(struct rpi_firmware *fw,
- int rpi_firmware_property_list(struct rpi_firmware *fw,
- void *data, size_t tag_size);
- struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node);
-+int rpi_firmware_init_vl805(struct pci_dev *pdev);
- #else
- static inline int rpi_firmware_property(struct rpi_firmware *fw, u32 tag,
- void *data, size_t len)
-@@ -158,6 +160,11 @@ static inline struct rpi_firmware *rpi_firmware_get(struct device_node *firmware
- {
- return NULL;
- }
-+
-+static inline int rpi_firmware_init_vl805(struct pci_dev *pdev)
-+{
-+ return 0;
-+}
- #endif
-
- #endif /* __SOC_RASPBERRY_FIRMWARE_H__ */
---
-2.26.2
-
diff --git a/0001-iommu-arm-smmu-workaround-DMA-mode-issues.patch b/0001-iommu-arm-smmu-workaround-DMA-mode-issues.patch
index e6eef22d6..81fa9b1b1 100644
--- a/0001-iommu-arm-smmu-workaround-DMA-mode-issues.patch
+++ b/0001-iommu-arm-smmu-workaround-DMA-mode-issues.patch
@@ -57,7 +57,7 @@ Signed-off-by: Laura Abbott <labbott@redhat.com>
1 file changed, 22 insertions(+)
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
-index 03d6a26687bc..86981f228c90 100644
+index b6858adc4f17..4c2da9f17514 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -7,6 +7,7 @@
@@ -68,7 +68,7 @@ index 03d6a26687bc..86981f228c90 100644
#include <linux/kernel.h>
#include <linux/bug.h>
#include <linux/types.h>
-@@ -2664,3 +2665,24 @@ int iommu_sva_get_pasid(struct iommu_sva *handle)
+@@ -2838,3 +2839,24 @@ int iommu_sva_get_pasid(struct iommu_sva *handle)
return ops->sva_get_pasid(handle);
}
EXPORT_SYMBOL_GPL(iommu_sva_get_pasid);
diff --git a/0001-ipmi-do-not-configure-ipmi-for-HPE-m400.patch b/0001-ipmi-do-not-configure-ipmi-for-HPE-m400.patch
index aad7ef066..8ffa070b4 100644
--- a/0001-ipmi-do-not-configure-ipmi-for-HPE-m400.patch
+++ b/0001-ipmi-do-not-configure-ipmi-for-HPE-m400.patch
@@ -84,10 +84,10 @@ index bbf7029e224b..cf7faa970dd6 100644
dmi_decode_ipmi((const struct dmi_header *) dev->device_data);
diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
-index c48d8f086382..0fc980a87ed0 100644
+index e1b22fe0916c..894eda427214 100644
--- a/drivers/char/ipmi/ipmi_msghandler.c
+++ b/drivers/char/ipmi/ipmi_msghandler.c
-@@ -33,6 +33,7 @@
+@@ -34,6 +34,7 @@
#include <linux/uuid.h>
#include <linux/nospec.h>
#include <linux/vmalloc.h>
@@ -95,7 +95,7 @@ index c48d8f086382..0fc980a87ed0 100644
#define IPMI_DRIVER_VERSION "39.2"
-@@ -5154,8 +5155,21 @@ static int __init ipmi_init_msghandler_mod(void)
+@@ -5155,8 +5156,21 @@ static int __init ipmi_init_msghandler_mod(void)
{
int rv;
diff --git a/0001-kABI-Add-generic-kABI-macros-to-use-for-kABI-workaro.patch b/0001-kABI-Add-generic-kABI-macros-to-use-for-kABI-workaro.patch
deleted file mode 100644
index 4b895c6c4..000000000
--- a/0001-kABI-Add-generic-kABI-macros-to-use-for-kABI-workaro.patch
+++ /dev/null
@@ -1,214 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Myron Stowe <myron.stowe@redhat.com>
-Date: Fri, 29 Jun 2018 20:05:41 -0400
-Subject: [PATCH] kABI: Add generic kABI macros to use for kABI workarounds
-
-Message-id: <20180629200436.151355.18581.stgit@tak.stowe>
-Patchwork-id: 223206
-O-Subject: [RHEL8.0 PATCH v3] kABI: Add generic kABI macros to use for kABI workarounds
-Bugzilla: 1546831
-RH-Acked-by: Larry Woodman <lwoodman@redhat.com>
-RH-Acked-by: Jarod Wilson <jarod@redhat.com>
-
-Some kernel subsystem maintainers have asked about kABI for RHEL8.0
-- getting kABI related "extension" structures and such into place. The
-consensus was to wait until the 4.17 re-base. Now that that's occurred,
-lets get this first step, kABI macros, into RHEL8.0 so developers will
-notice, and use, them in subsequent kABI related efforts.
-
-Content taken from RHEL 7. No functional change intended.
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1546831
-Brew: https://brewweb.devel.redhat.com/taskinfo?taskID=16694565
-Upstream Status: N/A (RHEL only)
-Testing: Passed through brew build.
-
-Upstream Status: RHEL only
-Signed-off-by: Myron Stowe <myron.stowe@redhat.com>
-Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
----
- include/linux/rh_kabi.h | 172 ++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 172 insertions(+)
- create mode 100644 include/linux/rh_kabi.h
-
-diff --git a/include/linux/rh_kabi.h b/include/linux/rh_kabi.h
-new file mode 100644
-index 000000000000..e0d3353802bb
---- /dev/null
-+++ b/include/linux/rh_kabi.h
-@@ -0,0 +1,172 @@
-+/*
-+ * rh_kabi.h - Red Hat kABI abstraction header
-+ *
-+ * Copyright (c) 2014 Don Zickus
-+ * Copyright (c) 2015-2017 Jiri Benc
-+ * Copyright (c) 2015 Sabrina Dubroca, Hannes Frederic Sowa
-+ * Copyright (c) 2016-2018 Prarit Bhargava
-+ * Copyright (c) 2017 Paolo Abeni, Larry Woodman
-+ *
-+ * This file is released under the GPLv2.
-+ * See the file COPYING for more details.
-+ *
-+ * These kabi macros hide the changes from the kabi checker and from the
-+ * process that computes the exported symbols' checksums.
-+ * They have 2 variants: one (defined under __GENKSYMS__) used when
-+ * generating the checksums, and the other used when building the kernel's
-+ * binaries.
-+ *
-+ * The use of these macros does not guarantee that the usage and modification
-+ * of code is correct. As with all Red Hat only changes, an engineer must
-+ * explain why the use of the macro is valid in the patch containing the
-+ * changes.
-+ *
-+ */
-+
-+#ifndef _LINUX_RH_KABI_H
-+#define _LINUX_RH_KABI_H
-+
-+#include <linux/compiler.h>
-+#include <linux/stringify.h>
-+
-+/*
-+ * RH_KABI_CONST
-+ * Adds a new const modifier to a function parameter preserving the old
-+ * checksum.
-+ *
-+ * RH_KABI_DEPRECATE
-+ * Mark the element as deprecated and make it unusable by modules while
-+ * preserving kABI checksums.
-+ *
-+ * RH_KABI_DEPRECATE_FN
-+ * Mark the function pointer as deprecated and make it unusable by modules
-+ * while preserving kABI checksums.
-+ *
-+ * RH_KABI_EXTEND
-+ * Simple macro for adding a new element to a struct.
-+ *
-+ * Warning: only use if a hole exists for _all_ arches. Use pahole to verify.
-+ *
-+ * RH_KABI_FILL_HOLE
-+ * Simple macro for filling a hole in a struct.
-+ *
-+ * RH_KABI_RENAME
-+ * Simple macro for renaming an element without changing its type. This
-+ * macro can be used in bitfields, for example.
-+ *
-+ * NOTE: does not include the final ';'
-+ *
-+ * RH_KABI_REPLACE
-+ * Simple replacement of _orig with a union of _orig and _new.
-+ *
-+ * The RH_KABI_REPLACE* macros attempt to add the ability to use the '_new'
-+ * element while preserving size alignment with the '_orig' element.
-+ *
-+ * The #ifdef __GENKSYMS__ preserves the kABI agreement, while the anonymous
-+ * union structure preserves the size alignment (assuming the '_new' element
-+ * is not bigger than the '_orig' element).
-+ *
-+ * RH_KABI_REPLACE_UNSAFE
-+ * Unsafe version of RH_KABI_REPLACE. Only use for typedefs.
-+ *
-+ * RH_KABI_FORCE_CHANGE
-+ * Force change of the symbol checksum. The argument of the macro is a
-+ * version for cases we need to do this more than once.
-+ *
-+ * This macro does the opposite: it changes the symbol checksum without
-+ * actually changing anything about the exported symbol. It is useful for
-+ * symbols that are not whitelisted, we're changing them in an
-+ * incompatible way and want to prevent 3rd party modules to silently
-+ * corrupt memory. Instead, by changing the symbol checksum, such modules
-+ * won't be loaded by the kernel. This macro should only be used as a
-+ * last resort when all other KABI workarounds have failed.
-+ *
-+ * NOTE
-+ * Don't use ';' after these macros as it messes up the kABI checker by
-+ * changing what the resulting token string looks like. Instead let this
-+ * macro add the ';' so it can be properly hidden from the kABI checker
-+ * (mainly for RH_KABI_EXTEND, but applied to all macros for uniformity).
-+ *
-+ */
-+#ifdef __GENKSYMS__
-+
-+# define RH_KABI_CONST
-+# define RH_KABI_EXTEND(_new)
-+# define RH_KABI_FILL_HOLE(_new)
-+# define RH_KABI_FORCE_CHANGE(ver) __attribute__((rh_kabi_change ## ver))
-+# define RH_KABI_RENAME(_orig, _new) _orig
-+
-+# define _RH_KABI_DEPRECATE(_type, _orig) _type _orig
-+# define _RH_KABI_DEPRECATE_FN(_type, _orig, _args...) _type (*_orig)(_args)
-+# define _RH_KABI_REPLACE(_orig, _new) _orig
-+# define _RH_KABI_REPLACE_UNSAFE(_orig, _new) _orig
-+
-+#else
-+
-+# define RH_KABI_ALIGN_WARNING ". Disable CONFIG_RH_KABI_SIZE_ALIGN_CHECKS if debugging."
-+
-+# define RH_KABI_CONST const
-+# define RH_KABI_EXTEND(_new) _new;
-+# define RH_KABI_FILL_HOLE(_new) _new;
-+# define RH_KABI_FORCE_CHANGE(ver)
-+# define RH_KABI_RENAME(_orig, _new) _new
-+
-+
-+#if IS_BUILTIN(CONFIG_RH_KABI_SIZE_ALIGN_CHECKS)
-+# define __RH_KABI_CHECK_SIZE_ALIGN(_orig, _new) \
-+ union { \
-+ _Static_assert(sizeof(struct{_new;}) <= sizeof(struct{_orig;}), \
-+ __FILE__ ":" __stringify(__LINE__) ": " __stringify(_new) " is larger than " __stringify(_orig) RH_KABI_ALIGN_WARNING); \
-+ _Static_assert(__alignof__(struct{_new;}) <= __alignof__(struct{_orig;}), \
-+ __FILE__ ":" __stringify(__LINE__) ": " __stringify(_orig) " is not aligned the same as " __stringify(_new) RH_KABI_ALIGN_WARNING); \
-+ }
-+#else
-+# define __RH_KABI_CHECK_SIZE_ALIGN(_orig, _new)
-+#endif
-+
-+# define _RH_KABI_DEPRECATE(_type, _orig) _type rh_reserved_##_orig
-+# define _RH_KABI_DEPRECATE_FN(_type, _orig, _args...) \
-+ _type (* rh_reserved_##_orig)(_args)
-+# define _RH_KABI_REPLACE(_orig, _new) \
-+ union { \
-+ _new; \
-+ struct { \
-+ _orig; \
-+ } __UNIQUE_ID(rh_kabi_hide); \
-+ __RH_KABI_CHECK_SIZE_ALIGN(_orig, _new); \
-+ }
-+# define _RH_KABI_REPLACE_UNSAFE(_orig, _new) _new
-+
-+#endif /* __GENKSYMS__ */
-+
-+/* semicolon added wrappers for the RH_KABI_REPLACE macros */
-+# define RH_KABI_DEPRECATE(_type, _orig) _RH_KABI_DEPRECATE(_type, _orig);
-+# define RH_KABI_DEPRECATE_FN(_type, _orig, _args...) \
-+ _RH_KABI_DEPRECATE_FN(_type, _orig, _args);
-+# define RH_KABI_REPLACE(_orig, _new) _RH_KABI_REPLACE(_orig, _new);
-+# define RH_KABI_REPLACE_UNSAFE(_orig, _new) _RH_KABI_REPLACE_UNSAFE(_orig, _new);
-+/*
-+ * Macro for breaking up a random element into two smaller chunks using an
-+ * anonymous struct inside an anonymous union.
-+ */
-+# define RH_KABI_REPLACE2(orig, _new1, _new2) RH_KABI_REPLACE(orig, struct{ _new1; _new2;})
-+
-+# define RH_KABI_RESERVE(n) _RH_KABI_RESERVE(n);
-+/*
-+ * Simple wrappers to replace standard Red Hat reserved elements.
-+ */
-+# define RH_KABI_USE(n, _new) RH_KABI_REPLACE(_RH_KABI_RESERVE(n), _new)
-+/*
-+ * Macros for breaking up a reserved element into two smaller chunks using
-+ * an anonymous struct inside an anonymous union.
-+ */
-+# define RH_KABI_USE2(n, _new1, _new2) RH_KABI_REPLACE(_RH_KABI_RESERVE(n), struct{ _new1; _new2; })
-+
-+/*
-+ * We tried to standardize on Red Hat reserved names. These wrappers
-+ * leverage those common names making it easier to read and find in the
-+ * code.
-+ */
-+# define _RH_KABI_RESERVE(n) unsigned long rh_reserved##n
-+
-+#endif /* _LINUX_RH_KABI_H */
---
-2.26.2
-
diff --git a/0001-kdump-add-support-for-crashkernel-auto.patch b/0001-kdump-add-support-for-crashkernel-auto.patch
index 83eb38e6d..115110146 100644
--- a/0001-kdump-add-support-for-crashkernel-auto.patch
+++ b/0001-kdump-add-support-for-crashkernel-auto.patch
@@ -138,7 +138,7 @@ Signed-off-by: Jeremy Cline <jcline@redhat.com>
2 files changed, 25 insertions(+)
diff --git a/Documentation/admin-guide/kdump/kdump.rst b/Documentation/admin-guide/kdump/kdump.rst
-index ac7e131d2935..3b3bf30e537d 100644
+index 2da65fef2a1c..d53a524f80f0 100644
--- a/Documentation/admin-guide/kdump/kdump.rst
+++ b/Documentation/admin-guide/kdump/kdump.rst
@@ -285,6 +285,17 @@ This would mean:
diff --git a/0001-kms-gv100-Add-support-for-interlaced-modes.patch b/0001-kms-gv100-Add-support-for-interlaced-modes.patch
deleted file mode 100644
index c50c826b8..000000000
--- a/0001-kms-gv100-Add-support-for-interlaced-modes.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Lyude Paul <lyude@redhat.com>
-Date: Mon, 11 May 2020 18:41:25 -0400
-Subject: [PATCH] kms/gv100-: Add support for interlaced modes
-
-We advertise being able to set interlaced modes, so let's actually make
-sure to do that. Otherwise, we'll end up hanging the display engine due
-to trying to set a mode with timings adjusted for interlacing without
-telling the hardware it's actually an interlaced mode.
-
-Signed-off-by: Lyude Paul <lyude@redhat.com>
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
----
- drivers/gpu/drm/nouveau/dispnv50/headc37d.c | 5 +++--
- drivers/gpu/drm/nouveau/dispnv50/headc57d.c | 5 +++--
- 2 files changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/dispnv50/headc37d.c b/drivers/gpu/drm/nouveau/dispnv50/headc37d.c
-index 00011ce109a6..4a9a32b89f74 100644
---- a/drivers/gpu/drm/nouveau/dispnv50/headc37d.c
-+++ b/drivers/gpu/drm/nouveau/dispnv50/headc37d.c
-@@ -168,14 +168,15 @@ headc37d_mode(struct nv50_head *head, struct nv50_head_atom *asyh)
- struct nv50_dmac *core = &nv50_disp(head->base.base.dev)->core->chan;
- struct nv50_head_mode *m = &asyh->mode;
- u32 *push;
-- if ((push = evo_wait(core, 12))) {
-+ if ((push = evo_wait(core, 13))) {
- evo_mthd(push, 0x2064 + (head->base.index * 0x400), 5);
- evo_data(push, (m->v.active << 16) | m->h.active );
- evo_data(push, (m->v.synce << 16) | m->h.synce );
- evo_data(push, (m->v.blanke << 16) | m->h.blanke );
- evo_data(push, (m->v.blanks << 16) | m->h.blanks );
- evo_data(push, (m->v.blank2e << 16) | m->v.blank2s);
-- evo_mthd(push, 0x200c + (head->base.index * 0x400), 1);
-+ evo_mthd(push, 0x2008 + (head->base.index * 0x400), 2);
-+ evo_data(push, m->interlace);
- evo_data(push, m->clock * 1000);
- evo_mthd(push, 0x2028 + (head->base.index * 0x400), 1);
- evo_data(push, m->clock * 1000);
-diff --git a/drivers/gpu/drm/nouveau/dispnv50/headc57d.c b/drivers/gpu/drm/nouveau/dispnv50/headc57d.c
-index 938d910a1b1e..859131a8bc3c 100644
---- a/drivers/gpu/drm/nouveau/dispnv50/headc57d.c
-+++ b/drivers/gpu/drm/nouveau/dispnv50/headc57d.c
-@@ -173,14 +173,15 @@ headc57d_mode(struct nv50_head *head, struct nv50_head_atom *asyh)
- struct nv50_dmac *core = &nv50_disp(head->base.base.dev)->core->chan;
- struct nv50_head_mode *m = &asyh->mode;
- u32 *push;
-- if ((push = evo_wait(core, 12))) {
-+ if ((push = evo_wait(core, 13))) {
- evo_mthd(push, 0x2064 + (head->base.index * 0x400), 5);
- evo_data(push, (m->v.active << 16) | m->h.active );
- evo_data(push, (m->v.synce << 16) | m->h.synce );
- evo_data(push, (m->v.blanke << 16) | m->h.blanke );
- evo_data(push, (m->v.blanks << 16) | m->h.blanks );
- evo_data(push, (m->v.blank2e << 16) | m->v.blank2s);
-- evo_mthd(push, 0x200c + (head->base.index * 0x400), 1);
-+ evo_mthd(push, 0x2008 + (head->base.index * 0x400), 2);
-+ evo_data(push, m->interlace);
- evo_data(push, m->clock * 1000);
- evo_mthd(push, 0x2028 + (head->base.index * 0x400), 1);
- evo_data(push, m->clock * 1000);
---
-2.26.2
-
diff --git a/0001-kms-nv50-Initialize-core-channel-in-nouveau_display_.patch b/0001-kms-nv50-Initialize-core-channel-in-nouveau_display_.patch
deleted file mode 100644
index b590bb06c..000000000
--- a/0001-kms-nv50-Initialize-core-channel-in-nouveau_display_.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Lyude Paul <lyude@redhat.com>
-Date: Mon, 11 May 2020 18:41:23 -0400
-Subject: [PATCH] kms/nv50-: Initialize core channel in
- nouveau_display_create()
-
-We'll need the core channel initialized and ready by the time that we
-start creating modesetting objects, so that we can call the
-NV507D_GET_CAPABILITIES method to make the hardware expose it's
-modesetting capabilities for later probing.
-
-So, when loading the driver prepare the core channel from within
-nouveau_display_create(). Everywhere else, we initialize the core
-channel during resume.
-
-Signed-off-by: Lyude Paul <lyude@redhat.com>
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
----
- drivers/gpu/drm/nouveau/dispnv50/disp.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c
-index 2625ed84fc44..2afd56b9887d 100644
---- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
-+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
-@@ -2373,7 +2373,8 @@ nv50_display_init(struct drm_device *dev, bool resume, bool runtime)
- struct drm_encoder *encoder;
- struct drm_plane *plane;
-
-- core->func->init(core);
-+ if (resume || runtime)
-+ core->func->init(core);
-
- list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {
- if (encoder->encoder_type != DRM_MODE_ENCODER_DPMST) {
-@@ -2460,6 +2461,8 @@ nv50_display_create(struct drm_device *dev)
- if (ret)
- goto out;
-
-+ disp->core->func->init(disp->core);
-+
- /* create crtc objects to represent the hw heads */
- if (disp->disp->object.oclass >= GV100_DISP)
- crtcs = nvif_rd32(&device->object, 0x610060) & 0xff;
---
-2.26.2
-
diff --git a/0001-kms-nv50-Move-8BPC-limit-for-MST-into-nv50_mstc_get_.patch b/0001-kms-nv50-Move-8BPC-limit-for-MST-into-nv50_mstc_get_.patch
deleted file mode 100644
index 0a6a4cfa8..000000000
--- a/0001-kms-nv50-Move-8BPC-limit-for-MST-into-nv50_mstc_get_.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Lyude Paul <lyude@redhat.com>
-Date: Mon, 11 May 2020 18:41:26 -0400
-Subject: [PATCH] kms/nv50-: Move 8BPC limit for MST into nv50_mstc_get_modes()
-
-This just limits the BPC for MST connectors to a maximum of 8 from
-nv50_mstc_get_modes(), instead of doing so during
-nv50_msto_atomic_check(). This doesn't introduce any functional changes
-yet (other then userspace now lying about the max bpc, but we can't
-support that yet anyway so meh). But, we'll need this in a moment so
-that we can share mode validation between SST and MST which will fix
-some real world issues.
-
-Signed-off-by: Lyude Paul <lyude@redhat.com>
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
----
- drivers/gpu/drm/nouveau/dispnv50/disp.c | 25 ++++++++++++++-----------
- 1 file changed, 14 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c
-index 1db4f20b8697..e92e7bf49780 100644
---- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
-+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
-@@ -908,15 +908,9 @@ nv50_msto_atomic_check(struct drm_encoder *encoder,
- if (!state->duplicated) {
- const int clock = crtc_state->adjusted_mode.clock;
-
-- /*
-- * XXX: Since we don't use HDR in userspace quite yet, limit
-- * the bpc to 8 to save bandwidth on the topology. In the
-- * future, we'll want to properly fix this by dynamically
-- * selecting the highest possible bpc that would fit in the
-- * topology
-- */
-- asyh->or.bpc = min(connector->display_info.bpc, 8U);
-- asyh->dp.pbn = drm_dp_calc_pbn_mode(clock, asyh->or.bpc * 3, false);
-+ asyh->or.bpc = connector->display_info.bpc;
-+ asyh->dp.pbn = drm_dp_calc_pbn_mode(clock, asyh->or.bpc * 3,
-+ false);
- }
-
- slots = drm_dp_atomic_find_vcpi_slots(state, &mstm->mgr, mstc->port,
-@@ -1076,8 +1070,17 @@ nv50_mstc_get_modes(struct drm_connector *connector)
- if (mstc->edid)
- ret = drm_add_edid_modes(&mstc->connector, mstc->edid);
-
-- if (!mstc->connector.display_info.bpc)
-- mstc->connector.display_info.bpc = 8;
-+ /*
-+ * XXX: Since we don't use HDR in userspace quite yet, limit the bpc
-+ * to 8 to save bandwidth on the topology. In the future, we'll want
-+ * to properly fix this by dynamically selecting the highest possible
-+ * bpc that would fit in the topology
-+ */
-+ if (connector->display_info.bpc)
-+ connector->display_info.bpc =
-+ clamp(connector->display_info.bpc, 6U, 8U);
-+ else
-+ connector->display_info.bpc = 8;
-
- if (mstc->native)
- drm_mode_destroy(mstc->connector.dev, mstc->native);
---
-2.26.2
-
diff --git a/0001-kms-nv50-Probe-SOR-and-PIOR-caps-for-DP-interlacing-.patch b/0001-kms-nv50-Probe-SOR-and-PIOR-caps-for-DP-interlacing-.patch
deleted file mode 100644
index e74501bef..000000000
--- a/0001-kms-nv50-Probe-SOR-and-PIOR-caps-for-DP-interlacing-.patch
+++ /dev/null
@@ -1,439 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Lyude Paul <lyude@redhat.com>
-Date: Mon, 11 May 2020 18:41:24 -0400
-Subject: [PATCH] kms/nv50-: Probe SOR and PIOR caps for DP interlacing support
-
-Right now, we make the mistake of allowing interlacing on all
-connectors. Nvidia hardware does not always support interlacing with DP
-though, so we need to make sure that we don't allow interlaced modes to
-be set in such situations as otherwise we'll end up accidentally hanging
-the display HW.
-
-This fixes some hangs with Turing, which would be caused by attempting
-to set an interlaced mode on hardware that doesn't support it. This
-patch likely fixes other hardware hanging in the same way as well.
-
-Note that we say we probe PIOR caps, but they don't actually have any
-interlacing caps. So, the get_caps() function for PIORs just sets
-interlacing support to true.
-
-Changes since v1:
-* Actually probe caps correctly this time, both on EVO and NVDisplay.
-Changes since v2:
-* Fix probing for < GF119
-* Use vfunc table, in prep for adding more caps in the future.
-
-Signed-off-by: Lyude Paul <lyude@redhat.com>
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
----
- drivers/gpu/drm/nouveau/dispnv50/core.h | 7 ++++++
- drivers/gpu/drm/nouveau/dispnv50/core507d.c | 15 ++++++++++++
- drivers/gpu/drm/nouveau/dispnv50/core827d.c | 1 +
- drivers/gpu/drm/nouveau/dispnv50/core907d.c | 1 +
- drivers/gpu/drm/nouveau/dispnv50/core917d.c | 1 +
- drivers/gpu/drm/nouveau/dispnv50/corec37d.c | 26 +++++++++++++++++++++
- drivers/gpu/drm/nouveau/dispnv50/corec57d.c | 1 +
- drivers/gpu/drm/nouveau/dispnv50/disp.c | 19 +++++++++++++--
- drivers/gpu/drm/nouveau/dispnv50/disp.h | 1 +
- drivers/gpu/drm/nouveau/dispnv50/pior507d.c | 8 +++++++
- drivers/gpu/drm/nouveau/dispnv50/sor507d.c | 7 ++++++
- drivers/gpu/drm/nouveau/dispnv50/sor907d.c | 11 +++++++++
- drivers/gpu/drm/nouveau/dispnv50/sorc37d.c | 9 +++++++
- drivers/gpu/drm/nouveau/nouveau_connector.c | 10 +++++++-
- drivers/gpu/drm/nouveau/nouveau_encoder.h | 4 ++++
- 15 files changed, 118 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/dispnv50/core.h b/drivers/gpu/drm/nouveau/dispnv50/core.h
-index ff94f3f6f264..99157dc94d23 100644
---- a/drivers/gpu/drm/nouveau/dispnv50/core.h
-+++ b/drivers/gpu/drm/nouveau/dispnv50/core.h
-@@ -2,6 +2,7 @@
- #define __NV50_KMS_CORE_H__
- #include "disp.h"
- #include "atom.h"
-+#include <nouveau_encoder.h>
-
- struct nv50_core {
- const struct nv50_core_func *func;
-@@ -15,6 +16,7 @@ void nv50_core_del(struct nv50_core **);
- struct nv50_core_func {
- void (*init)(struct nv50_core *);
- void (*ntfy_init)(struct nouveau_bo *, u32 offset);
-+ int (*caps_init)(struct nouveau_drm *, struct nv50_disp *);
- int (*ntfy_wait_done)(struct nouveau_bo *, u32 offset,
- struct nvif_device *);
- void (*update)(struct nv50_core *, u32 *interlock, bool ntfy);
-@@ -27,6 +29,9 @@ struct nv50_core_func {
- const struct nv50_outp_func {
- void (*ctrl)(struct nv50_core *, int or, u32 ctrl,
- struct nv50_head_atom *);
-+ /* XXX: Only used by SORs and PIORs for now */
-+ void (*get_caps)(struct nv50_disp *,
-+ struct nouveau_encoder *, int or);
- } *dac, *pior, *sor;
- };
-
-@@ -35,6 +40,7 @@ int core507d_new_(const struct nv50_core_func *, struct nouveau_drm *, s32,
- struct nv50_core **);
- void core507d_init(struct nv50_core *);
- void core507d_ntfy_init(struct nouveau_bo *, u32);
-+int core507d_caps_init(struct nouveau_drm *, struct nv50_disp *);
- int core507d_ntfy_wait_done(struct nouveau_bo *, u32, struct nvif_device *);
- void core507d_update(struct nv50_core *, u32 *, bool);
-
-@@ -51,6 +57,7 @@ extern const struct nv50_outp_func sor907d;
- int core917d_new(struct nouveau_drm *, s32, struct nv50_core **);
-
- int corec37d_new(struct nouveau_drm *, s32, struct nv50_core **);
-+int corec37d_caps_init(struct nouveau_drm *, struct nv50_disp *);
- int corec37d_ntfy_wait_done(struct nouveau_bo *, u32, struct nvif_device *);
- void corec37d_update(struct nv50_core *, u32 *, bool);
- void corec37d_wndw_owner(struct nv50_core *);
-diff --git a/drivers/gpu/drm/nouveau/dispnv50/core507d.c b/drivers/gpu/drm/nouveau/dispnv50/core507d.c
-index c5152c39c684..e341f572c269 100644
---- a/drivers/gpu/drm/nouveau/dispnv50/core507d.c
-+++ b/drivers/gpu/drm/nouveau/dispnv50/core507d.c
-@@ -62,6 +62,20 @@ core507d_ntfy_init(struct nouveau_bo *bo, u32 offset)
- nouveau_bo_wr32(bo, offset / 4, 0x00000000);
- }
-
-+int
-+core507d_caps_init(struct nouveau_drm *drm, struct nv50_disp *disp)
-+{
-+ u32 *push = evo_wait(&disp->core->chan, 2);
-+
-+ if (push) {
-+ evo_mthd(push, 0x008c, 1);
-+ evo_data(push, 0x0);
-+ evo_kick(push, &disp->core->chan);
-+ }
-+
-+ return 0;
-+}
-+
- void
- core507d_init(struct nv50_core *core)
- {
-@@ -77,6 +91,7 @@ static const struct nv50_core_func
- core507d = {
- .init = core507d_init,
- .ntfy_init = core507d_ntfy_init,
-+ .caps_init = core507d_caps_init,
- .ntfy_wait_done = core507d_ntfy_wait_done,
- .update = core507d_update,
- .head = &head507d,
-diff --git a/drivers/gpu/drm/nouveau/dispnv50/core827d.c b/drivers/gpu/drm/nouveau/dispnv50/core827d.c
-index 6123a068f836..2e0c1c536afe 100644
---- a/drivers/gpu/drm/nouveau/dispnv50/core827d.c
-+++ b/drivers/gpu/drm/nouveau/dispnv50/core827d.c
-@@ -26,6 +26,7 @@ static const struct nv50_core_func
- core827d = {
- .init = core507d_init,
- .ntfy_init = core507d_ntfy_init,
-+ .caps_init = core507d_caps_init,
- .ntfy_wait_done = core507d_ntfy_wait_done,
- .update = core507d_update,
- .head = &head827d,
-diff --git a/drivers/gpu/drm/nouveau/dispnv50/core907d.c b/drivers/gpu/drm/nouveau/dispnv50/core907d.c
-index ef822f813435..271629832629 100644
---- a/drivers/gpu/drm/nouveau/dispnv50/core907d.c
-+++ b/drivers/gpu/drm/nouveau/dispnv50/core907d.c
-@@ -26,6 +26,7 @@ static const struct nv50_core_func
- core907d = {
- .init = core507d_init,
- .ntfy_init = core507d_ntfy_init,
-+ .caps_init = core507d_caps_init,
- .ntfy_wait_done = core507d_ntfy_wait_done,
- .update = core507d_update,
- .head = &head907d,
-diff --git a/drivers/gpu/drm/nouveau/dispnv50/core917d.c b/drivers/gpu/drm/nouveau/dispnv50/core917d.c
-index 392338df5bfd..5cc072d4c30f 100644
---- a/drivers/gpu/drm/nouveau/dispnv50/core917d.c
-+++ b/drivers/gpu/drm/nouveau/dispnv50/core917d.c
-@@ -26,6 +26,7 @@ static const struct nv50_core_func
- core917d = {
- .init = core507d_init,
- .ntfy_init = core507d_ntfy_init,
-+ .caps_init = core507d_caps_init,
- .ntfy_wait_done = core507d_ntfy_wait_done,
- .update = core507d_update,
- .head = &head917d,
-diff --git a/drivers/gpu/drm/nouveau/dispnv50/corec37d.c b/drivers/gpu/drm/nouveau/dispnv50/corec37d.c
-index c03cb987856b..e0c8811fb8e4 100644
---- a/drivers/gpu/drm/nouveau/dispnv50/corec37d.c
-+++ b/drivers/gpu/drm/nouveau/dispnv50/corec37d.c
-@@ -22,6 +22,7 @@
- #include "core.h"
- #include "head.h"
-
-+#include <nvif/class.h>
- #include <nouveau_bo.h>
-
- #include <nvif/timer.h>
-@@ -87,6 +88,30 @@ corec37d_ntfy_init(struct nouveau_bo *bo, u32 offset)
- nouveau_bo_wr32(bo, offset / 4 + 3, 0x00000000);
- }
-
-+int corec37d_caps_init(struct nouveau_drm *drm, struct nv50_disp *disp)
-+{
-+ int ret;
-+
-+ ret = nvif_object_init(&disp->disp->object, 0, GV100_DISP_CAPS,
-+ NULL, 0, &disp->caps);
-+ if (ret) {
-+ NV_ERROR(drm,
-+ "Failed to init notifier caps region: %d\n",
-+ ret);
-+ return ret;
-+ }
-+
-+ ret = nvif_object_map(&disp->caps, NULL, 0);
-+ if (ret) {
-+ NV_ERROR(drm,
-+ "Failed to map notifier caps region: %d\n",
-+ ret);
-+ return ret;
-+ }
-+
-+ return 0;
-+}
-+
- static void
- corec37d_init(struct nv50_core *core)
- {
-@@ -111,6 +136,7 @@ static const struct nv50_core_func
- corec37d = {
- .init = corec37d_init,
- .ntfy_init = corec37d_ntfy_init,
-+ .caps_init = corec37d_caps_init,
- .ntfy_wait_done = corec37d_ntfy_wait_done,
- .update = corec37d_update,
- .wndw.owner = corec37d_wndw_owner,
-diff --git a/drivers/gpu/drm/nouveau/dispnv50/corec57d.c b/drivers/gpu/drm/nouveau/dispnv50/corec57d.c
-index 147adcd60937..10ba9e9e4ae6 100644
---- a/drivers/gpu/drm/nouveau/dispnv50/corec57d.c
-+++ b/drivers/gpu/drm/nouveau/dispnv50/corec57d.c
-@@ -46,6 +46,7 @@ static const struct nv50_core_func
- corec57d = {
- .init = corec57d_init,
- .ntfy_init = corec37d_ntfy_init,
-+ .caps_init = corec37d_caps_init,
- .ntfy_wait_done = corec37d_ntfy_wait_done,
- .update = corec37d_update,
- .wndw.owner = corec37d_wndw_owner,
-diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c
-index 2afd56b9887d..1db4f20b8697 100644
---- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
-+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
-@@ -1663,6 +1663,7 @@ nv50_sor_create(struct drm_connector *connector, struct dcb_output *dcbe)
- struct nvkm_i2c *i2c = nvxx_i2c(&drm->client.device);
- struct nouveau_encoder *nv_encoder;
- struct drm_encoder *encoder;
-+ struct nv50_disp *disp = nv50_disp(connector->dev);
- int type, ret;
-
- switch (dcbe->type) {
-@@ -1689,10 +1690,12 @@ nv50_sor_create(struct drm_connector *connector, struct dcb_output *dcbe)
-
- drm_connector_attach_encoder(connector, encoder);
-
-+ disp->core->func->sor->get_caps(disp, nv_encoder, ffs(dcbe->or) - 1);
-+
- if (dcbe->type == DCB_OUTPUT_DP) {
-- struct nv50_disp *disp = nv50_disp(encoder->dev);
- struct nvkm_i2c_aux *aux =
- nvkm_i2c_aux_find(i2c, dcbe->i2c_index);
-+
- if (aux) {
- if (disp->disp->object.oclass < GF110_DISP) {
- /* HW has no support for address-only
-@@ -1805,7 +1808,9 @@ nv50_pior_func = {
- static int
- nv50_pior_create(struct drm_connector *connector, struct dcb_output *dcbe)
- {
-- struct nouveau_drm *drm = nouveau_drm(connector->dev);
-+ struct drm_device *dev = connector->dev;
-+ struct nouveau_drm *drm = nouveau_drm(dev);
-+ struct nv50_disp *disp = nv50_disp(dev);
- struct nvkm_i2c *i2c = nvxx_i2c(&drm->client.device);
- struct nvkm_i2c_bus *bus = NULL;
- struct nvkm_i2c_aux *aux = NULL;
-@@ -1844,6 +1849,9 @@ nv50_pior_create(struct drm_connector *connector, struct dcb_output *dcbe)
- drm_encoder_helper_add(encoder, &nv50_pior_help);
-
- drm_connector_attach_encoder(connector, encoder);
-+
-+ disp->core->func->pior->get_caps(disp, nv_encoder, ffs(dcbe->or) - 1);
-+
- return 0;
- }
-
-@@ -2401,6 +2409,8 @@ nv50_display_destroy(struct drm_device *dev)
-
- nv50_audio_component_fini(nouveau_drm(dev));
-
-+ nvif_object_unmap(&disp->caps);
-+ nvif_object_fini(&disp->caps);
- nv50_core_del(&disp->core);
-
- nouveau_bo_unmap(disp->sync);
-@@ -2462,6 +2472,11 @@ nv50_display_create(struct drm_device *dev)
- goto out;
-
- disp->core->func->init(disp->core);
-+ if (disp->core->func->caps_init) {
-+ ret = disp->core->func->caps_init(drm, disp);
-+ if (ret)
-+ goto out;
-+ }
-
- /* create crtc objects to represent the hw heads */
- if (disp->disp->object.oclass >= GV100_DISP)
-diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.h b/drivers/gpu/drm/nouveau/dispnv50/disp.h
-index d54fe00ac3a3..89c3b38c32a5 100644
---- a/drivers/gpu/drm/nouveau/dispnv50/disp.h
-+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.h
-@@ -9,6 +9,7 @@ struct nv50_msto;
- struct nv50_disp {
- struct nvif_disp *disp;
- struct nv50_core *core;
-+ struct nvif_object caps;
-
- #define NV50_DISP_SYNC(c, o) ((c) * 0x040 + (o))
- #define NV50_DISP_CORE_NTFY NV50_DISP_SYNC(0 , 0x00)
-diff --git a/drivers/gpu/drm/nouveau/dispnv50/pior507d.c b/drivers/gpu/drm/nouveau/dispnv50/pior507d.c
-index d2bac6a341dc..45d8ce7d2c28 100644
---- a/drivers/gpu/drm/nouveau/dispnv50/pior507d.c
-+++ b/drivers/gpu/drm/nouveau/dispnv50/pior507d.c
-@@ -38,7 +38,15 @@ pior507d_ctrl(struct nv50_core *core, int or, u32 ctrl,
- }
- }
-
-+static void
-+pior507d_get_caps(struct nv50_disp *disp, struct nouveau_encoder *outp,
-+ int or)
-+{
-+ outp->caps.dp_interlace = true;
-+}
-+
- const struct nv50_outp_func
- pior507d = {
- .ctrl = pior507d_ctrl,
-+ .get_caps = pior507d_get_caps,
- };
-diff --git a/drivers/gpu/drm/nouveau/dispnv50/sor507d.c b/drivers/gpu/drm/nouveau/dispnv50/sor507d.c
-index 5222fe6a9b21..9a59fa7da00d 100644
---- a/drivers/gpu/drm/nouveau/dispnv50/sor507d.c
-+++ b/drivers/gpu/drm/nouveau/dispnv50/sor507d.c
-@@ -38,7 +38,14 @@ sor507d_ctrl(struct nv50_core *core, int or, u32 ctrl,
- }
- }
-
-+static void
-+sor507d_get_caps(struct nv50_disp *core, struct nouveau_encoder *outp, int or)
-+{
-+ outp->caps.dp_interlace = true;
-+}
-+
- const struct nv50_outp_func
- sor507d = {
- .ctrl = sor507d_ctrl,
-+ .get_caps = sor507d_get_caps,
- };
-diff --git a/drivers/gpu/drm/nouveau/dispnv50/sor907d.c b/drivers/gpu/drm/nouveau/dispnv50/sor907d.c
-index b0314ec11fb3..9577ccf1c809 100644
---- a/drivers/gpu/drm/nouveau/dispnv50/sor907d.c
-+++ b/drivers/gpu/drm/nouveau/dispnv50/sor907d.c
-@@ -21,6 +21,7 @@
- */
- #include "core.h"
-
-+#include <nouveau_bo.h>
- #include <nvif/class.h>
-
- static void
-@@ -35,7 +36,17 @@ sor907d_ctrl(struct nv50_core *core, int or, u32 ctrl,
- }
- }
-
-+static void
-+sor907d_get_caps(struct nv50_disp *disp, struct nouveau_encoder *outp, int or)
-+{
-+ const int off = or * 2;
-+ u32 tmp = nouveau_bo_rd32(disp->sync, 0x000014 + off);
-+
-+ outp->caps.dp_interlace = !!(tmp & 0x04000000);
-+}
-+
- const struct nv50_outp_func
- sor907d = {
- .ctrl = sor907d_ctrl,
-+ .get_caps = sor907d_get_caps,
- };
-diff --git a/drivers/gpu/drm/nouveau/dispnv50/sorc37d.c b/drivers/gpu/drm/nouveau/dispnv50/sorc37d.c
-index dff059241c5d..c86ca955fdcd 100644
---- a/drivers/gpu/drm/nouveau/dispnv50/sorc37d.c
-+++ b/drivers/gpu/drm/nouveau/dispnv50/sorc37d.c
-@@ -33,7 +33,16 @@ sorc37d_ctrl(struct nv50_core *core, int or, u32 ctrl,
- }
- }
-
-+static void
-+sorc37d_get_caps(struct nv50_disp *disp, struct nouveau_encoder *outp, int or)
-+{
-+ u32 tmp = nvif_rd32(&disp->caps, 0x000144 + (or * 8));
-+
-+ outp->caps.dp_interlace = !!(tmp & 0x04000000);
-+}
-+
- const struct nv50_outp_func
- sorc37d = {
- .ctrl = sorc37d_ctrl,
-+ .get_caps = sorc37d_get_caps,
- };
-diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
-index 9a9a7f5003d3..6dae00da5d7e 100644
---- a/drivers/gpu/drm/nouveau/nouveau_connector.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
-@@ -509,7 +509,11 @@ nouveau_connector_set_encoder(struct drm_connector *connector,
- nv_connector->detected_encoder = nv_encoder;
-
- if (drm->client.device.info.family >= NV_DEVICE_INFO_V0_TESLA) {
-- connector->interlace_allowed = true;
-+ if (nv_encoder->dcb->type == DCB_OUTPUT_DP)
-+ connector->interlace_allowed =
-+ nv_encoder->caps.dp_interlace;
-+ else
-+ connector->interlace_allowed = true;
- connector->doublescan_allowed = true;
- } else
- if (nv_encoder->dcb->type == DCB_OUTPUT_LVDS ||
-@@ -1060,6 +1064,10 @@ nouveau_connector_mode_valid(struct drm_connector *connector,
- case DCB_OUTPUT_TV:
- return get_slave_funcs(encoder)->mode_valid(encoder, mode);
- case DCB_OUTPUT_DP:
-+ if (mode->flags & DRM_MODE_FLAG_INTERLACE &&
-+ !nv_encoder->caps.dp_interlace)
-+ return MODE_NO_INTERLACE;
-+
- max_clock = nv_encoder->dp.link_nr;
- max_clock *= nv_encoder->dp.link_bw;
- clock = clock * (connector->display_info.bpc * 3) / 10;
-diff --git a/drivers/gpu/drm/nouveau/nouveau_encoder.h b/drivers/gpu/drm/nouveau/nouveau_encoder.h
-index 3517f920bf89..3217f587eceb 100644
---- a/drivers/gpu/drm/nouveau/nouveau_encoder.h
-+++ b/drivers/gpu/drm/nouveau/nouveau_encoder.h
-@@ -66,6 +66,10 @@ struct nouveau_encoder {
- } dp;
- };
-
-+ struct {
-+ bool dp_interlace : 1;
-+ } caps;
-+
- void (*enc_save)(struct drm_encoder *encoder);
- void (*enc_restore)(struct drm_encoder *encoder);
- void (*update)(struct nouveau_encoder *, u8 head,
---
-2.26.2
-
diff --git a/0001-kms-nv50-Share-DP-SST-mode_valid-handling-with-MST.patch b/0001-kms-nv50-Share-DP-SST-mode_valid-handling-with-MST.patch
deleted file mode 100644
index c14aed7ea..000000000
--- a/0001-kms-nv50-Share-DP-SST-mode_valid-handling-with-MST.patch
+++ /dev/null
@@ -1,209 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Lyude Paul <lyude@redhat.com>
-Date: Mon, 11 May 2020 18:41:27 -0400
-Subject: [PATCH] kms/nv50-: Share DP SST mode_valid() handling with MST
-
-Currently, the nv50_mstc_mode_valid() function is happy to take any and
-all modes, even the ones we can't actually support sometimes like
-interlaced modes.
-
-Luckily, the only difference between the mode validation that needs to
-be performed for MST vs. SST is that eventually we'll need to check the
-minimum PBN against the MSTB's full PBN capabilities (remember-we don't
-care about the current bw state here). Otherwise, all of the other code
-can be shared.
-
-So, we move all of the common mode validation in
-nouveau_connector_mode_valid() into a separate helper,
-nv50_dp_mode_valid(), and use that from both nv50_mstc_mode_valid() and
-nouveau_connector_mode_valid(). Note that we allow for returning the
-calculated clock that nv50_dp_mode_valid() came up with, since we'll
-eventually want to use that for PBN calculation in
-nv50_mstc_mode_valid().
-
-Signed-off-by: Lyude Paul <lyude@redhat.com>
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
----
- drivers/gpu/drm/nouveau/dispnv50/disp.c | 9 +++-
- drivers/gpu/drm/nouveau/nouveau_connector.c | 46 ++++++++++++---------
- drivers/gpu/drm/nouveau/nouveau_connector.h | 5 +++
- drivers/gpu/drm/nouveau/nouveau_dp.c | 31 ++++++++++++++
- drivers/gpu/drm/nouveau/nouveau_encoder.h | 4 ++
- 5 files changed, 75 insertions(+), 20 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c
-index e92e7bf49780..d5d69532f3c5 100644
---- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
-+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
-@@ -1056,7 +1056,14 @@ static enum drm_mode_status
- nv50_mstc_mode_valid(struct drm_connector *connector,
- struct drm_display_mode *mode)
- {
-- return MODE_OK;
-+ struct nv50_mstc *mstc = nv50_mstc(connector);
-+ struct nouveau_encoder *outp = mstc->mstm->outp;
-+
-+ /* TODO: calculate the PBN from the dotclock and validate against the
-+ * MSTB's max possible PBN
-+ */
-+
-+ return nv50_dp_mode_valid(connector, outp, mode, NULL);
- }
-
- static int
-diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
-index 6dae00da5d7e..1b383ae0248f 100644
---- a/drivers/gpu/drm/nouveau/nouveau_connector.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
-@@ -38,6 +38,7 @@
- #include "nouveau_reg.h"
- #include "nouveau_drv.h"
- #include "dispnv04/hw.h"
-+#include "dispnv50/disp.h"
- #include "nouveau_acpi.h"
-
- #include "nouveau_display.h"
-@@ -1033,6 +1034,29 @@ get_tmds_link_bandwidth(struct drm_connector *connector)
- return 112000 * duallink_scale;
- }
-
-+enum drm_mode_status
-+nouveau_conn_mode_clock_valid(const struct drm_display_mode *mode,
-+ const unsigned min_clock,
-+ const unsigned max_clock,
-+ unsigned int *clock_out)
-+{
-+ unsigned int clock = mode->clock;
-+
-+ if ((mode->flags & DRM_MODE_FLAG_3D_MASK) ==
-+ DRM_MODE_FLAG_3D_FRAME_PACKING)
-+ clock *= 2;
-+
-+ if (clock < min_clock)
-+ return MODE_CLOCK_LOW;
-+ if (clock > max_clock)
-+ return MODE_CLOCK_HIGH;
-+
-+ if (clock_out)
-+ *clock_out = clock;
-+
-+ return MODE_OK;
-+}
-+
- static enum drm_mode_status
- nouveau_connector_mode_valid(struct drm_connector *connector,
- struct drm_display_mode *mode)
-@@ -1041,7 +1065,6 @@ nouveau_connector_mode_valid(struct drm_connector *connector,
- struct nouveau_encoder *nv_encoder = nv_connector->detected_encoder;
- struct drm_encoder *encoder = to_drm_encoder(nv_encoder);
- unsigned min_clock = 25000, max_clock = min_clock;
-- unsigned clock = mode->clock;
-
- switch (nv_encoder->dcb->type) {
- case DCB_OUTPUT_LVDS:
-@@ -1064,29 +1087,14 @@ nouveau_connector_mode_valid(struct drm_connector *connector,
- case DCB_OUTPUT_TV:
- return get_slave_funcs(encoder)->mode_valid(encoder, mode);
- case DCB_OUTPUT_DP:
-- if (mode->flags & DRM_MODE_FLAG_INTERLACE &&
-- !nv_encoder->caps.dp_interlace)
-- return MODE_NO_INTERLACE;
--
-- max_clock = nv_encoder->dp.link_nr;
-- max_clock *= nv_encoder->dp.link_bw;
-- clock = clock * (connector->display_info.bpc * 3) / 10;
-- break;
-+ return nv50_dp_mode_valid(connector, nv_encoder, mode, NULL);
- default:
- BUG();
- return MODE_BAD;
- }
-
-- if ((mode->flags & DRM_MODE_FLAG_3D_MASK) == DRM_MODE_FLAG_3D_FRAME_PACKING)
-- clock *= 2;
--
-- if (clock < min_clock)
-- return MODE_CLOCK_LOW;
--
-- if (clock > max_clock)
-- return MODE_CLOCK_HIGH;
--
-- return MODE_OK;
-+ return nouveau_conn_mode_clock_valid(mode, min_clock, max_clock,
-+ NULL);
- }
-
- static struct drm_encoder *
-diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.h b/drivers/gpu/drm/nouveau/nouveau_connector.h
-index de84fb4708c7..9e062c7adec8 100644
---- a/drivers/gpu/drm/nouveau/nouveau_connector.h
-+++ b/drivers/gpu/drm/nouveau/nouveau_connector.h
-@@ -195,6 +195,11 @@ int nouveau_conn_atomic_get_property(struct drm_connector *,
- const struct drm_connector_state *,
- struct drm_property *, u64 *);
- struct drm_display_mode *nouveau_conn_native_mode(struct drm_connector *);
-+enum drm_mode_status
-+nouveau_conn_mode_clock_valid(const struct drm_display_mode *,
-+ const unsigned min_clock,
-+ const unsigned max_clock,
-+ unsigned *clock);
-
- #ifdef CONFIG_DRM_NOUVEAU_BACKLIGHT
- extern int nouveau_backlight_init(struct drm_connector *);
-diff --git a/drivers/gpu/drm/nouveau/nouveau_dp.c b/drivers/gpu/drm/nouveau/nouveau_dp.c
-index 2674f1587457..8a0f7994e1ae 100644
---- a/drivers/gpu/drm/nouveau/nouveau_dp.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_dp.c
-@@ -98,3 +98,34 @@ nouveau_dp_detect(struct nouveau_encoder *nv_encoder)
- return NOUVEAU_DP_SST;
- return ret;
- }
-+
-+/* TODO:
-+ * - Use the minimum possible BPC here, once we add support for the max bpc
-+ * property.
-+ * - Validate the mode against downstream port caps (see
-+ * drm_dp_downstream_max_clock())
-+ * - Validate against the DP caps advertised by the GPU (we don't check these
-+ * yet)
-+ */
-+enum drm_mode_status
-+nv50_dp_mode_valid(struct drm_connector *connector,
-+ struct nouveau_encoder *outp,
-+ const struct drm_display_mode *mode,
-+ unsigned *out_clock)
-+{
-+ const unsigned min_clock = 25000;
-+ unsigned max_clock, clock;
-+ enum drm_mode_status ret;
-+
-+ if (mode->flags & DRM_MODE_FLAG_INTERLACE && !outp->caps.dp_interlace)
-+ return MODE_NO_INTERLACE;
-+
-+ max_clock = outp->dp.link_nr * outp->dp.link_bw;
-+ clock = mode->clock * (connector->display_info.bpc * 3) / 10;
-+
-+ ret = nouveau_conn_mode_clock_valid(mode, min_clock, max_clock,
-+ &clock);
-+ if (out_clock)
-+ *out_clock = clock;
-+ return ret;
-+}
-diff --git a/drivers/gpu/drm/nouveau/nouveau_encoder.h b/drivers/gpu/drm/nouveau/nouveau_encoder.h
-index 3217f587eceb..de51733b0476 100644
---- a/drivers/gpu/drm/nouveau/nouveau_encoder.h
-+++ b/drivers/gpu/drm/nouveau/nouveau_encoder.h
-@@ -104,6 +104,10 @@ enum nouveau_dp_status {
- };
-
- int nouveau_dp_detect(struct nouveau_encoder *);
-+enum drm_mode_status nv50_dp_mode_valid(struct drm_connector *,
-+ struct nouveau_encoder *,
-+ const struct drm_display_mode *,
-+ unsigned *clock);
-
- struct nouveau_connector *
- nouveau_encoder_connector_get(struct nouveau_encoder *encoder);
---
-2.26.2
-
diff --git a/0001-mmu-Remove-unneeded-semicolon.patch b/0001-mmu-Remove-unneeded-semicolon.patch
deleted file mode 100644
index 3931ff586..000000000
--- a/0001-mmu-Remove-unneeded-semicolon.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Zheng Bin <zhengbin13@huawei.com>
-Date: Fri, 24 Apr 2020 15:36:01 +0800
-Subject: [PATCH] mmu: Remove unneeded semicolon
-
-Fixes coccicheck warning:
-
-drivers/gpu/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h:307:2-3: Unneeded semicolon
-drivers/gpu/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:583:2-3: Unneeded semicolon
-
-Reported-by: Hulk Robot <hulkci@huawei.com>
-Signed-off-by: Zheng Bin <zhengbin13@huawei.com>
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
----
- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c | 2 +-
- drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c
-index 41640e0584ac..199f94e15c5f 100644
---- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c
-+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c
-@@ -580,7 +580,7 @@ nvkm_vmm_iter(struct nvkm_vmm *vmm, const struct nvkm_vmm_page *page,
- it.pte[it.lvl]++;
- }
- }
-- };
-+ }
-
- nvkm_vmm_flush(&it);
- return ~0ULL;
-diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h
-index 5e55ecbd8005..d3f8f916d0db 100644
---- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h
-+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.h
-@@ -304,7 +304,7 @@ int tu102_vmm_new(struct nvkm_mmu *, bool, u64, u64, void *, u32,
- FILL(VMM, PT, PTEI, _ptes, MAP, _addr); \
- PTEI += _ptes; \
- PTEN -= _ptes; \
-- }; \
-+ } \
- nvkm_done((PT)->memory); \
- } while(0)
-
---
-2.26.2
-
diff --git a/0001-modules-add-rhelversion-MODULE_INFO-tag.patch b/0001-modules-add-rhelversion-MODULE_INFO-tag.patch
deleted file mode 100644
index 5fbcc61e2..000000000
--- a/0001-modules-add-rhelversion-MODULE_INFO-tag.patch
+++ /dev/null
@@ -1,151 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Laura Abbott <labbott@redhat.com>
-Date: Mon, 7 Jan 2019 21:03:10 +0000
-Subject: [PATCH] modules: add rhelversion MODULE_INFO tag
-
-There were several changes in the 5.0-rc1 kernel that required
-this patch to be rebased with some context diff.
-
- Patchwork-id: 7379
- O-Subject: [kernel team] [RHEL8.0 BZ 1544999 1/2] modules: add rhelversion MODULE_INFO tag
- Bugzilla: 1544999
- RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
- RH-Acked-by: Oleg Nesterov <oleg@redhat.com>
- RH-Acked-by: Jarod Wilson <jarod@redhat.com>
-
- Bugzilla: http://bugzilla.redhat.com/1544999
-
- kernel-alt commit 9816b4b6ca5d4c0504d8806ce99442c90afbc8e6
- Author: Prarit Bhargava <prarit@redhat.com>
- Date: Fri Feb 9 18:09:26 2018 -0500
-
- [kernel] modules: add rhelversion MODULE_INFO tag
-
- Message-id: <20180209180926.5955-3-prarit@redhat.com>
- Patchwork-id: 205587
- O-Subject: [RHEL-ALT-7.5 BZ 1542796 2/2] modules: add rhelversion MODULE_INFO tag
- Bugzilla: 1542796
- RH-Acked-by: David Arcari <darcari@redhat.com>
- RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
- RH-Acked-by: Steve Best <sbest@redhat.com>
-
- Bugzilla: http://bugzilla.redhat.com/1542796
-
- rhel7 commit 9af8c3992ce5fff253c49abc0dedb3ec77badba4
- Author: Kyle McMartin <kmcmarti@redhat.com>
- Date: Fri Sep 12 17:46:12 2014 -0400
-
- [kernel] modules: add rhelversion MODULE_INFO tag
-
- Message-id: <20140912174612.GS29420@redacted.bos.redhat.com>
- Patchwork-id: 94052
- O-Subject: [RHEL7.1 PATCH 2/6 v4] modules: add rhelversion MODULE_INFO tag
- Bugzilla: 1110315
- RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
- RH-Acked-by: Johannes Weiner <jweiner@redhat.com>
- RH-Acked-by: Don Zickus <dzickus@redhat.com>
-
- From: Kyle McMartin <kmcmarti@redhat.com>
-
- Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1110315
-
- >From kylem's RHEL8 post:
-
- Let's not lose this ability in RHEL8. Sadly can't be applied to RHEL7
- because it breaks KABI due to the struct module change.
-
- Inspired by bits of a147e4729d9920ccae2c717ca65c811cc0f93a1d in RHEL6,
- which got lost for RHEL7.0. :/
-
- Kyle is correct and doing this would break RHEL7's KABI. I'm taking this
- patch in as a base and the next patch will resolve the KABI issues.
-
- [v2]: dzickus, cleanup add_rhelversion()
- [v4]: resubmitted along with 16k stacks change
-
- Signed-off-by: Jarod Wilson <jarod@redhat.com>
-
- Cc: Richard Guy Briggs <rgb@redhat.com>
- Cc: Peter Rajnoha <prajnoha@redhat.com>
- Cc: Laura Abbott <labbott@redhat.com>
- Cc: Josh Poimboeuf <jpoimboe@redhat.com>
- Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
-
-Upstream Status: RHEL only
-Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
-Acked-by: Don Zickus <dzickus@redhat.com>
-Acked-by: Prarit Bhargava <prarit@redhat.com>
----
- include/linux/module.h | 1 +
- kernel/module.c | 2 ++
- scripts/mod/modpost.c | 8 ++++++++
- 3 files changed, 11 insertions(+)
-
-diff --git a/include/linux/module.h b/include/linux/module.h
-index 1ad393e62bef..3fb19abee033 100644
---- a/include/linux/module.h
-+++ b/include/linux/module.h
-@@ -371,6 +371,7 @@ struct module {
- struct module_attribute *modinfo_attrs;
- const char *version;
- const char *srcversion;
-+ const char *rhelversion;
- struct kobject *holders_dir;
-
- /* Exported symbols */
-diff --git a/kernel/module.c b/kernel/module.c
-index 646f1e2330d2..aed5b1fcadf8 100644
---- a/kernel/module.c
-+++ b/kernel/module.c
-@@ -799,6 +799,7 @@ static struct module_attribute modinfo_##field = { \
-
- MODINFO_ATTR(version);
- MODINFO_ATTR(srcversion);
-+MODINFO_ATTR(rhelversion);
-
- static char last_unloaded_module[MODULE_NAME_LEN+1];
-
-@@ -1263,6 +1264,7 @@ static struct module_attribute *modinfo_attrs[] = {
- &module_uevent,
- &modinfo_version,
- &modinfo_srcversion,
-+ &modinfo_rhelversion,
- &modinfo_initstate,
- &modinfo_coresize,
- &modinfo_initsize,
-diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
-index 5c3c50c5ec52..188eb460cede 100644
---- a/scripts/mod/modpost.c
-+++ b/scripts/mod/modpost.c
-@@ -21,6 +21,7 @@
- #include <errno.h>
- #include "modpost.h"
- #include "../../include/linux/license.h"
-+#include "../../include/generated/uapi/linux/version.h"
-
- /* Are we using CONFIG_MODVERSIONS? */
- static int modversions = 0;
-@@ -2381,6 +2382,12 @@ static void add_srcversion(struct buffer *b, struct module *mod)
- }
- }
-
-+static void add_rhelversion(struct buffer *b, struct module *mod)
-+{
-+ buf_printf(b, "MODULE_INFO(rhelversion, \"%d.%d\");\n", RHEL_MAJOR,
-+ RHEL_MINOR);
-+}
-+
- static void write_if_changed(struct buffer *b, const char *fname)
- {
- char *tmp;
-@@ -2644,6 +2651,7 @@ int main(int argc, char **argv)
- add_depends(&buf, mod);
- add_moddevtable(&buf, mod);
- add_srcversion(&buf, mod);
-+ add_rhelversion(&buf, mod);
-
- sprintf(fname, "%s.mod.c", mod->name);
- write_if_changed(&buf, fname);
---
-2.26.2
-
diff --git a/0001-perf-cs-etm-Move-defined-of-traceid_list.patch b/0001-perf-cs-etm-Move-defined-of-traceid_list.patch
deleted file mode 100644
index 63cbefa93..000000000
--- a/0001-perf-cs-etm-Move-defined-of-traceid_list.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Leo Yan <leo.yan@linaro.org>
-Date: Tue, 5 May 2020 21:36:42 +0800
-Subject: [PATCH] perf cs-etm: Move defined of traceid_list
-
-The variable 'traceid_list' is defined in the header file cs-etm.h,
-if multiple C files include cs-etm.h the compiler might complaint for
-multiple definition of 'traceid_list'.
-
-To fix multiple definition error, move the definition of 'traceid_list'
-into cs-etm.c.
-
-Fixes: cd8bfd8c973e ("perf tools: Add processing of coresight metadata")
-Reported-by: Thomas Backlund <tmb@mageia.org>
-Signed-off-by: Leo Yan <leo.yan@linaro.org>
-Tested-by: Thomas Backlund <tmb@mageia.org>
-Tested-by: Mike Leach <mike.leach@linaro.org>
-Tested-by: Justin M. Forbes <jforbes@fedoraproject.org>
-Reviewed-by: Mike Leach <mike.leach@linaro.org>
-Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
-
-Upstream Status: https://lore.kernel.org/lkml/20200505133642.4756-1-leo.yan@linaro.org/
----
- tools/perf/util/cs-etm.c | 3 +++
- tools/perf/util/cs-etm.h | 3 ---
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/tools/perf/util/cs-etm.c b/tools/perf/util/cs-etm.c
-index 62d2f9b9ce1b..381d9708e9bd 100644
---- a/tools/perf/util/cs-etm.c
-+++ b/tools/perf/util/cs-etm.c
-@@ -94,6 +94,9 @@ struct cs_etm_queue {
- struct cs_etm_traceid_queue **traceid_queues;
- };
-
-+/* RB tree for quick conversion between traceID and metadata pointers */
-+static struct intlist *traceid_list;
-+
- static int cs_etm__update_queues(struct cs_etm_auxtrace *etm);
- static int cs_etm__process_queues(struct cs_etm_auxtrace *etm);
- static int cs_etm__process_timeless_queues(struct cs_etm_auxtrace *etm,
-diff --git a/tools/perf/util/cs-etm.h b/tools/perf/util/cs-etm.h
-index 650ecc2a6349..4ad925d6d799 100644
---- a/tools/perf/util/cs-etm.h
-+++ b/tools/perf/util/cs-etm.h
-@@ -114,9 +114,6 @@ enum cs_etm_isa {
- CS_ETM_ISA_T32,
- };
-
--/* RB tree for quick conversion between traceID and metadata pointers */
--struct intlist *traceid_list;
--
- struct cs_etm_queue;
-
- struct cs_etm_packet {
---
-2.26.2
-
diff --git a/0001-platform-x86-thinkpad_acpi-Add-support-for-dual-fan-.patch b/0001-platform-x86-thinkpad_acpi-Add-support-for-dual-fan-.patch
deleted file mode 100644
index 4ba03934d..000000000
--- a/0001-platform-x86-thinkpad_acpi-Add-support-for-dual-fan-.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-From 14232c6e788cb1f7b96dbd08b077f90923324b24 Mon Sep 17 00:00:00 2001
-From: Lars Hofhansl <larsh@apache.org>
-Date: Thu, 23 Apr 2020 14:57:09 -0700
-Subject: [PATCH] platform/x86: thinkpad_acpi: Add support for dual fan control
-
-This adds dual fan control for the following models:
-P50, P51, P52, P70, P71, P72, P1 gen1, P2 gen2, X1E gen1 and X1E gen2.
-
-Both fans are controlled together as if they were a single fan.
-
-Tested on an X1 Extreme Gen1, an X1 Extreme Gen2, and a P50.
-
-The patch is defensive, it adds only specific supported machines, and falls
-back to the old behavior if both fans cannot be controlled.
-
-Background:
-I tested the BIOS default behavior on my X1E gen2 and both fans are always
-changed together. So rather than adding controls for each fan, this controls
-both fans together as the BIOS would do.
-
-This was inspired by a discussion on dual fan support for the thinkfan tool
-(see link below). All BIOS IDs are taken from there. The X1E gen2 ID is
-verified on my machine.
-
-Thanks to GitHub users voidworker and civic9 for the earlier patches and
-BIOS IDs, and to users peter-stoll and sassman for testing the patch on
-their machines.
-
-BugLink: https://github.com/vmatare/thinkfan/issues/58
-Signed-off-by: Lars Hofhansl <larsh@apache.org>
-[andy: massaged commit message to capitalize ID and convert to BugLink]
-Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
----
- drivers/platform/x86/thinkpad_acpi.c | 43 ++++++++++++++++++++++++----
- 1 file changed, 37 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
-index 8eaadbaf8ffa..83b4a83da967 100644
---- a/drivers/platform/x86/thinkpad_acpi.c
-+++ b/drivers/platform/x86/thinkpad_acpi.c
-@@ -318,6 +318,7 @@ static struct {
- u32 uwb:1;
- u32 fan_ctrl_status_undef:1;
- u32 second_fan:1;
-+ u32 second_fan_ctl:1;
- u32 beep_needs_two_args:1;
- u32 mixer_no_level_control:1;
- u32 battery_force_primary:1;
-@@ -8324,11 +8325,19 @@ static int fan_set_level(int level)
-
- switch (fan_control_access_mode) {
- case TPACPI_FAN_WR_ACPI_SFAN:
-- if (level >= 0 && level <= 7) {
-- if (!acpi_evalf(sfan_handle, NULL, NULL, "vd", level))
-- return -EIO;
-- } else
-+ if ((level < 0) || (level > 7))
- return -EINVAL;
-+
-+ if (tp_features.second_fan_ctl) {
-+ if (!fan_select_fan2() ||
-+ !acpi_evalf(sfan_handle, NULL, NULL, "vd", level)) {
-+ pr_warn("Couldn't set 2nd fan level, disabling support\n");
-+ tp_features.second_fan_ctl = 0;
-+ }
-+ fan_select_fan1();
-+ }
-+ if (!acpi_evalf(sfan_handle, NULL, NULL, "vd", level))
-+ return -EIO;
- break;
-
- case TPACPI_FAN_WR_ACPI_FANS:
-@@ -8345,6 +8354,15 @@ static int fan_set_level(int level)
- else if (level & TP_EC_FAN_AUTO)
- level |= 4; /* safety min speed 4 */
-
-+ if (tp_features.second_fan_ctl) {
-+ if (!fan_select_fan2() ||
-+ !acpi_ec_write(fan_status_offset, level)) {
-+ pr_warn("Couldn't set 2nd fan level, disabling support\n");
-+ tp_features.second_fan_ctl = 0;
-+ }
-+ fan_select_fan1();
-+
-+ }
- if (!acpi_ec_write(fan_status_offset, level))
- return -EIO;
- else
-@@ -8763,6 +8781,7 @@ static const struct attribute_group fan_attr_group = {
-
- #define TPACPI_FAN_Q1 0x0001 /* Unitialized HFSP */
- #define TPACPI_FAN_2FAN 0x0002 /* EC 0x31 bit 0 selects fan2 */
-+#define TPACPI_FAN_2CTL 0x0004 /* selects fan2 control */
-
- static const struct tpacpi_quirk fan_quirk_table[] __initconst = {
- TPACPI_QEC_IBM('1', 'Y', TPACPI_FAN_Q1),
-@@ -8771,6 +8790,13 @@ static const struct tpacpi_quirk fan_quirk_table[] __initconst = {
- TPACPI_QEC_IBM('7', '0', TPACPI_FAN_Q1),
- TPACPI_QEC_LNV('7', 'M', TPACPI_FAN_2FAN),
- TPACPI_Q_LNV('N', '1', TPACPI_FAN_2FAN),
-+ TPACPI_Q_LNV3('N', '1', 'D', TPACPI_FAN_2CTL), /* P70 */
-+ TPACPI_Q_LNV3('N', '1', 'E', TPACPI_FAN_2CTL), /* P50 */
-+ TPACPI_Q_LNV3('N', '1', 'T', TPACPI_FAN_2CTL), /* P71 */
-+ TPACPI_Q_LNV3('N', '1', 'U', TPACPI_FAN_2CTL), /* P51 */
-+ TPACPI_Q_LNV3('N', '2', 'C', TPACPI_FAN_2CTL), /* P52 / P72 */
-+ TPACPI_Q_LNV3('N', '2', 'E', TPACPI_FAN_2CTL), /* P1 / X1 Extreme (1st gen) */
-+ TPACPI_Q_LNV3('N', '2', 'O', TPACPI_FAN_2CTL), /* P1 / X1 Extreme (2nd gen) */
- };
-
- static int __init fan_init(struct ibm_init_struct *iibm)
-@@ -8788,6 +8814,7 @@ static int __init fan_init(struct ibm_init_struct *iibm)
- fan_watchdog_maxinterval = 0;
- tp_features.fan_ctrl_status_undef = 0;
- tp_features.second_fan = 0;
-+ tp_features.second_fan_ctl = 0;
- fan_control_desired_level = 7;
-
- if (tpacpi_is_ibm()) {
-@@ -8812,8 +8839,12 @@ static int __init fan_init(struct ibm_init_struct *iibm)
- fan_quirk1_setup();
- if (quirks & TPACPI_FAN_2FAN) {
- tp_features.second_fan = 1;
-- dbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_FAN,
-- "secondary fan support enabled\n");
-+ pr_info("secondary fan support enabled\n");
-+ }
-+ if (quirks & TPACPI_FAN_2CTL) {
-+ tp_features.second_fan = 1;
-+ tp_features.second_fan_ctl = 1;
-+ pr_info("secondary fan control enabled\n");
- }
- } else {
- pr_err("ThinkPad ACPI EC access misbehaving, fan status and control unavailable\n");
---
-2.26.2
-
diff --git a/0001-s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch b/0001-s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch
index 4332472bb..63cd86b35 100644
--- a/0001-s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch
+++ b/0001-s390-Lock-down-the-kernel-when-the-IPL-secure-flag-i.patch
@@ -16,10 +16,10 @@ Signed-off-by: Jeremy Cline <jcline@redhat.com>
3 files changed, 10 insertions(+)
diff --git a/arch/s390/include/asm/ipl.h b/arch/s390/include/asm/ipl.h
-index b63bd66404b8..3482d9602e68 100644
+index 7d5cfdda5277..be66ee5d0437 100644
--- a/arch/s390/include/asm/ipl.h
+++ b/arch/s390/include/asm/ipl.h
-@@ -109,6 +109,7 @@ int ipl_report_add_component(struct ipl_report *report, struct kexec_buf *kbuf,
+@@ -120,6 +120,7 @@ int ipl_report_add_component(struct ipl_report *report, struct kexec_buf *kbuf,
unsigned char flags, unsigned short cert);
int ipl_report_add_certificate(struct ipl_report *report, void *key,
unsigned long addr, unsigned long len);
@@ -28,10 +28,10 @@ index b63bd66404b8..3482d9602e68 100644
/*
* DIAG 308 support
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c
-index 4a71061974fd..9baf0b570c3d 100644
+index 90a2a17239b0..be3b72c53656 100644
--- a/arch/s390/kernel/ipl.c
+++ b/arch/s390/kernel/ipl.c
-@@ -1901,3 +1901,8 @@ int ipl_report_free(struct ipl_report *report)
+@@ -2110,3 +2110,8 @@ int ipl_report_free(struct ipl_report *report)
}
#endif
@@ -41,7 +41,7 @@ index 4a71061974fd..9baf0b570c3d 100644
+ return !!ipl_secure_flag;
+}
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
-index 36445dd40fdb..b338a050c5aa 100644
+index 07aa15ba43b3..307abb2d82d7 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -49,6 +49,7 @@
@@ -52,7 +52,7 @@ index 36445dd40fdb..b338a050c5aa 100644
#include <asm/boot_data.h>
#include <asm/ipl.h>
-@@ -1093,6 +1094,9 @@ void __init setup_arch(char **cmdline_p)
+@@ -1086,6 +1087,9 @@ void __init setup_arch(char **cmdline_p)
log_component_list();
diff --git a/0001-security-lockdown-expose-a-hook-to-lock-the-kernel-d.patch b/0001-security-lockdown-expose-a-hook-to-lock-the-kernel-d.patch
index fc6b78ad0..9189832cf 100644
--- a/0001-security-lockdown-expose-a-hook-to-lock-the-kernel-d.patch
+++ b/0001-security-lockdown-expose-a-hook-to-lock-the-kernel-d.patch
@@ -17,10 +17,10 @@ Signed-off-by: Jeremy Cline <jcline@redhat.com>
5 files changed, 20 insertions(+)
diff --git a/include/linux/lsm_hook_defs.h b/include/linux/lsm_hook_defs.h
-index 5616b2567aa7..bc5caab1413b 100644
+index af998f93d256..3c33f00cd4d6 100644
--- a/include/linux/lsm_hook_defs.h
+++ b/include/linux/lsm_hook_defs.h
-@@ -371,6 +371,8 @@ LSM_HOOK(void, LSM_RET_VOID, bpf_prog_free_security, struct bpf_prog_aux *aux)
+@@ -383,6 +383,8 @@ LSM_HOOK(void, LSM_RET_VOID, bpf_prog_free_security, struct bpf_prog_aux *aux)
#endif /* CONFIG_BPF_SYSCALL */
LSM_HOOK(int, 0, locked_down, enum lockdown_reason what)
@@ -30,10 +30,10 @@ index 5616b2567aa7..bc5caab1413b 100644
#ifdef CONFIG_PERF_EVENTS
LSM_HOOK(int, 0, perf_event_open, struct perf_event_attr *attr, int type)
diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h
-index 988ca0df7824..4ed37b95417c 100644
+index 95b7c1d32062..dbacbb1fc129 100644
--- a/include/linux/lsm_hooks.h
+++ b/include/linux/lsm_hooks.h
-@@ -1476,6 +1476,12 @@
+@@ -1507,6 +1507,12 @@
*
* @what: kernel feature being accessed
*
@@ -47,10 +47,10 @@ index 988ca0df7824..4ed37b95417c 100644
*
* @perf_event_open:
diff --git a/include/linux/security.h b/include/linux/security.h
-index a8d9310472df..381305889d89 100644
+index 0a0a03b36a3b..26869f44416b 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
-@@ -446,6 +446,7 @@ int security_inode_notifysecctx(struct inode *inode, void *ctx, u32 ctxlen);
+@@ -451,6 +451,7 @@ int security_inode_notifysecctx(struct inode *inode, void *ctx, u32 ctxlen);
int security_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen);
int security_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen);
int security_locked_down(enum lockdown_reason what);
@@ -58,7 +58,7 @@ index a8d9310472df..381305889d89 100644
#else /* CONFIG_SECURITY */
static inline int call_blocking_lsm_notifier(enum lsm_event event, void *data)
-@@ -1273,6 +1274,10 @@ static inline int security_locked_down(enum lockdown_reason what)
+@@ -1291,6 +1292,10 @@ static inline int security_locked_down(enum lockdown_reason what)
{
return 0;
}
@@ -68,9 +68,9 @@ index a8d9310472df..381305889d89 100644
+}
#endif /* CONFIG_SECURITY */
- #ifdef CONFIG_SECURITY_NETWORK
+ #if defined(CONFIG_SECURITY) && defined(CONFIG_WATCH_QUEUE)
diff --git a/security/lockdown/lockdown.c b/security/lockdown/lockdown.c
-index 5a952617a0eb..61cc3cdc4d25 100644
+index 87cbdc64d272..18555cf18da7 100644
--- a/security/lockdown/lockdown.c
+++ b/security/lockdown/lockdown.c
@@ -73,6 +73,7 @@ static int lockdown_is_locked_down(enum lockdown_reason what)
@@ -82,10 +82,10 @@ index 5a952617a0eb..61cc3cdc4d25 100644
static int __init lockdown_lsm_init(void)
diff --git a/security/security.c b/security/security.c
-index 51de970fbb1e..48d05f8067f2 100644
+index 70a7ad357bc6..23e16e773bc2 100644
--- a/security/security.c
+++ b/security/security.c
-@@ -2468,6 +2468,12 @@ int security_locked_down(enum lockdown_reason what)
+@@ -2516,6 +2516,12 @@ int security_locked_down(enum lockdown_reason what)
}
EXPORT_SYMBOL(security_locked_down);
diff --git a/0001-selinux-allow-reading-labels-before-policy-is-loaded.patch b/0001-selinux-allow-reading-labels-before-policy-is-loaded.patch
new file mode 100644
index 000000000..5c2384cd6
--- /dev/null
+++ b/0001-selinux-allow-reading-labels-before-policy-is-loaded.patch
@@ -0,0 +1,49 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jonathan Lebon <jlebon@redhat.com>
+Date: Thu, 28 May 2020 10:39:40 -0400
+Subject: [PATCH] selinux: allow reading labels before policy is loaded
+
+This patch does for `getxattr` what commit 3e3e24b42043 ("selinux: allow
+labeling before policy is loaded") did for `setxattr`; it allows
+querying the current SELinux label on disk before the policy is loaded.
+
+One of the motivations described in that commit message also drives this
+patch: for Fedora CoreOS (and eventually RHEL CoreOS), we want to be
+able to move the root filesystem for example, from xfs to ext4 on RAID,
+on first boot, at initrd time.[1]
+
+Because such an operation works at the filesystem level, we need to be
+able to read the SELinux labels first from the original root, and apply
+them to the files of the new root. The previous commit enabled the
+second part of this process; this commit enables the first part.
+
+[1] https://github.com/coreos/fedora-coreos-tracker/issues/94
+
+Acked-by: Stephen Smalley <stephen.smalley.work@gmail.com>
+Signed-off-by: Jonathan Lebon <jlebon@redhat.com>
+Signed-off-by: Paul Moore <paul@paul-moore.com>
+---
+ security/selinux/hooks.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
+index efa6108b1ce9..ca901025802a 100644
+--- a/security/selinux/hooks.c
++++ b/security/selinux/hooks.c
+@@ -3332,7 +3332,12 @@ static int selinux_inode_getsecurity(struct inode *inode, const char *name, void
+ char *context = NULL;
+ struct inode_security_struct *isec;
+
+- if (strcmp(name, XATTR_SELINUX_SUFFIX))
++ /*
++ * If we're not initialized yet, then we can't validate contexts, so
++ * just let vfs_getxattr fall back to using the on-disk xattr.
++ */
++ if (!selinux_initialized(&selinux_state) ||
++ strcmp(name, XATTR_SELINUX_SUFFIX))
+ return -EOPNOTSUPP;
+
+ /*
+--
+2.26.2
+
diff --git a/0001-soc-bcm2835-Sync-xHCI-reset-firmware-property-with-d.patch b/0001-soc-bcm2835-Sync-xHCI-reset-firmware-property-with-d.patch
deleted file mode 100644
index 3dd66b141..000000000
--- a/0001-soc-bcm2835-Sync-xHCI-reset-firmware-property-with-d.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
-Date: Tue, 10 Mar 2020 13:52:39 +0100
-Subject: [PATCH] soc: bcm2835: Sync xHCI reset firmware property with
- downstream
-
-The property is needed in order to trigger VL805's firmware load. Note
-that there is a gap between the property introduced and the previous
-one. This is also the case downstream.
-
-Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
-Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
----
- include/soc/bcm2835/raspberrypi-firmware.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h
-index 7800e12ee042..cc9cdbc66403 100644
---- a/include/soc/bcm2835/raspberrypi-firmware.h
-+++ b/include/soc/bcm2835/raspberrypi-firmware.h
-@@ -90,7 +90,7 @@ enum rpi_firmware_property_tag {
- RPI_FIRMWARE_SET_PERIPH_REG = 0x00038045,
- RPI_FIRMWARE_GET_POE_HAT_VAL = 0x00030049,
- RPI_FIRMWARE_SET_POE_HAT_VAL = 0x00030050,
--
-+ RPI_FIRMWARE_NOTIFY_XHCI_RESET = 0x00030058,
-
- /* Dispmanx TAGS */
- RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 0x00040001,
---
-2.26.2
-
diff --git a/0001-usb-fusb302-Convert-to-use-GPIO-descriptors.patch b/0001-usb-fusb302-Convert-to-use-GPIO-descriptors.patch
deleted file mode 100644
index 40732340c..000000000
--- a/0001-usb-fusb302-Convert-to-use-GPIO-descriptors.patch
+++ /dev/null
@@ -1,162 +0,0 @@
-From 2c36867719d93db8d7f365310587578ab980762c Mon Sep 17 00:00:00 2001
-From: Linus Walleij <linus.walleij@linaro.org>
-Date: Wed, 15 Apr 2020 21:24:48 +0200
-Subject: [PATCH] usb: fusb302: Convert to use GPIO descriptors
-
-This converts the FUSB302 driver to use GPIO descriptors.
-The conversion to descriptors per se is pretty straight-forward.
-
-In the process I discovered that:
-
-1. The driver uses a completely undocumented device tree binding
- for the interrupt GPIO line, "fcs,int_n". Ooops.
-
-2. The undocumented binding, presumably since it has not seen
- review, is just "fcs,int_n", lacking the compulsory "-gpios"
- suffix and also something that is not a good name because
- the "_n" implies the line is inverted which is something we
- handle with flags in the device tree. Ooops.
-
-3. Possibly the driver should not be requesting the line as a
- GPIO and request the corresponding interrupt line by open
- coding, the GPIO chip is very likely doubleing as an IRQ
- controller and can probably provide an interrupt directly
- for this line with interrupts-extended = <&gpio0 ...>;
-
-4. Possibly the IRQ should just be tagged on the I2C client node
- in the device tree like apparently ACPI does, as it overrides
- this IRQ with client->irq if that exists.
-
-But now it is too late to do much about that and as I can see
-this is used like this in the Pinebook which is a shipping product
-so let'a just contain the mess and move on.
-
-The property currently appears in:
-arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
-
-Create a quirk in the GPIO OF library to allow this property
-specifically to be specified without the "-gpios" suffix, we have
-other such bindings already.
-
-Cc: Tobias Schramm <t.schramm@manjaro.org>
-Cc: Heikki Krogerus <heikki.krogerus@linux.intel.com>
-Cc: Yueyao Zhu <yueyao@google.com>
-Cc: Guenter Roeck <linux@roeck-us.net>
-Cc: devicetree@vger.kernel.org
-Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-Link: https://lore.kernel.org/r/20200415192448.305257-1-linus.walleij@linaro.org
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/gpio/gpiolib-of.c | 21 +++++++++++++++++++++
- drivers/usb/typec/tcpm/fusb302.c | 32 +++++++++-----------------------
- 2 files changed, 30 insertions(+), 23 deletions(-)
-
-diff --git a/drivers/gpio/gpiolib-of.c b/drivers/gpio/gpiolib-of.c
-index ccc449df3792a..20c2c428168e4 100644
---- a/drivers/gpio/gpiolib-of.c
-+++ b/drivers/gpio/gpiolib-of.c
-@@ -460,6 +460,24 @@ static struct gpio_desc *of_find_arizona_gpio(struct device *dev,
- return of_get_named_gpiod_flags(dev->of_node, con_id, 0, of_flags);
- }
-
-+static struct gpio_desc *of_find_usb_gpio(struct device *dev,
-+ const char *con_id,
-+ enum of_gpio_flags *of_flags)
-+{
-+ /*
-+ * Currently this USB quirk is only for the Fairchild FUSB302 host which is using
-+ * an undocumented DT GPIO line named "fcs,int_n" without the compulsory "-gpios"
-+ * suffix.
-+ */
-+ if (!IS_ENABLED(CONFIG_TYPEC_FUSB302))
-+ return ERR_PTR(-ENOENT);
-+
-+ if (!con_id || strcmp(con_id, "fcs,int_n"))
-+ return ERR_PTR(-ENOENT);
-+
-+ return of_get_named_gpiod_flags(dev->of_node, con_id, 0, of_flags);
-+}
-+
- struct gpio_desc *of_find_gpio(struct device *dev, const char *con_id,
- unsigned int idx, unsigned long *flags)
- {
-@@ -504,6 +522,9 @@ struct gpio_desc *of_find_gpio(struct device *dev, const char *con_id,
- if (PTR_ERR(desc) == -ENOENT)
- desc = of_find_arizona_gpio(dev, con_id, &of_flags);
-
-+ if (PTR_ERR(desc) == -ENOENT)
-+ desc = of_find_usb_gpio(dev, con_id, &of_flags);
-+
- if (IS_ERR(desc))
- return desc;
-
-diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c
-index b498960ff72b5..b28facece43c4 100644
---- a/drivers/usb/typec/tcpm/fusb302.c
-+++ b/drivers/usb/typec/tcpm/fusb302.c
-@@ -9,14 +9,13 @@
- #include <linux/delay.h>
- #include <linux/errno.h>
- #include <linux/extcon.h>
--#include <linux/gpio.h>
-+#include <linux/gpio/consumer.h>
- #include <linux/i2c.h>
- #include <linux/interrupt.h>
- #include <linux/kernel.h>
- #include <linux/module.h>
- #include <linux/mutex.h>
- #include <linux/of_device.h>
--#include <linux/of_gpio.h>
- #include <linux/pinctrl/consumer.h>
- #include <linux/proc_fs.h>
- #include <linux/regulator/consumer.h>
-@@ -83,7 +82,7 @@ struct fusb302_chip {
- struct work_struct irq_work;
- bool irq_suspended;
- bool irq_while_suspended;
-- int gpio_int_n;
-+ struct gpio_desc *gpio_int_n;
- int gpio_int_n_irq;
- struct extcon_dev *extcon;
-
-@@ -1618,30 +1617,17 @@ static void fusb302_irq_work(struct work_struct *work)
-
- static int init_gpio(struct fusb302_chip *chip)
- {
-- struct device_node *node;
-+ struct device *dev = chip->dev;
- int ret = 0;
-
-- node = chip->dev->of_node;
-- chip->gpio_int_n = of_get_named_gpio(node, "fcs,int_n", 0);
-- if (!gpio_is_valid(chip->gpio_int_n)) {
-- ret = chip->gpio_int_n;
-- dev_err(chip->dev, "cannot get named GPIO Int_N, ret=%d", ret);
-- return ret;
-- }
-- ret = devm_gpio_request(chip->dev, chip->gpio_int_n, "fcs,int_n");
-- if (ret < 0) {
-- dev_err(chip->dev, "cannot request GPIO Int_N, ret=%d", ret);
-- return ret;
-- }
-- ret = gpio_direction_input(chip->gpio_int_n);
-- if (ret < 0) {
-- dev_err(chip->dev,
-- "cannot set GPIO Int_N to input, ret=%d", ret);
-- return ret;
-+ chip->gpio_int_n = devm_gpiod_get(dev, "fcs,int_n", GPIOD_IN);
-+ if (IS_ERR(chip->gpio_int_n)) {
-+ dev_err(dev, "failed to request gpio_int_n\n");
-+ return PTR_ERR(chip->gpio_int_n);
- }
-- ret = gpio_to_irq(chip->gpio_int_n);
-+ ret = gpiod_to_irq(chip->gpio_int_n);
- if (ret < 0) {
-- dev_err(chip->dev,
-+ dev_err(dev,
- "cannot request IRQ for GPIO Int_N, ret=%d", ret);
- return ret;
- }
---
-2.26.2
-
diff --git a/0001-virt-vbox-Fix-VBGL_IOCTL_VMMDEV_REQUEST_BIG-and-_LOG.patch b/0001-virt-vbox-Fix-VBGL_IOCTL_VMMDEV_REQUEST_BIG-and-_LOG.patch
deleted file mode 100644
index daf372ec2..000000000
--- a/0001-virt-vbox-Fix-VBGL_IOCTL_VMMDEV_REQUEST_BIG-and-_LOG.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Tue, 19 May 2020 12:21:30 +0200
-Subject: [PATCH] virt: vbox: Fix VBGL_IOCTL_VMMDEV_REQUEST_BIG and _LOG req
- numbers to match upstream
-
-Until this commit the mainline kernel version (this version) of the
-vboxguest module contained a bug where it defined
-VBGL_IOCTL_VMMDEV_REQUEST_BIG and VBGL_IOCTL_LOG using
-_IOC(_IOC_READ | _IOC_WRITE, 'V', ...) instead of
-_IO(V, ...) as the out of tree VirtualBox upstream version does.
-
-Since the VirtualBox userspace bits are always built against VirtualBox
-upstream's headers, this means that so far the mainline kernel version
-of the vboxguest module has been failing these 2 ioctls with -ENOTTY.
-I guess that VBGL_IOCTL_VMMDEV_REQUEST_BIG is never used causing us to
-not hit that one and sofar the vboxguest driver has failed to actually
-log any log messages passed it through VBGL_IOCTL_LOG.
-
-This commit changes the VBGL_IOCTL_VMMDEV_REQUEST_BIG and VBGL_IOCTL_LOG
-defines to match the out of tree VirtualBox upstream vboxguest version,
-while keeping compatibility with the old wrong request defines so as
-to not break the kernel ABI in case someone has been using the old
-request defines.
-
-Fixes: f6ddd094f579 ("virt: Add vboxguest driver for Virtual Box Guest integration UAPI")
-Cc: stable@vger.kernel.org
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Upstream Status: https://lore.kernel.org/lkml/20200520195440.38759-1-hdegoede@redhat.com/
----
- drivers/virt/vboxguest/vboxguest_core.c | 4 +++-
- drivers/virt/vboxguest/vboxguest_core.h | 15 +++++++++++++++
- drivers/virt/vboxguest/vboxguest_linux.c | 3 ++-
- include/uapi/linux/vboxguest.h | 4 ++--
- 4 files changed, 22 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c
-index b690a8a4bf9e..8fab04e76c14 100644
---- a/drivers/virt/vboxguest/vboxguest_core.c
-+++ b/drivers/virt/vboxguest/vboxguest_core.c
-@@ -1520,7 +1520,8 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data)
-
- /* For VMMDEV_REQUEST hdr->type != VBG_IOCTL_HDR_TYPE_DEFAULT */
- if (req_no_size == VBG_IOCTL_VMMDEV_REQUEST(0) ||
-- req == VBG_IOCTL_VMMDEV_REQUEST_BIG)
-+ req == VBG_IOCTL_VMMDEV_REQUEST_BIG ||
-+ req == VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT)
- return vbg_ioctl_vmmrequest(gdev, session, data);
-
- if (hdr->type != VBG_IOCTL_HDR_TYPE_DEFAULT)
-@@ -1558,6 +1559,7 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data)
- case VBG_IOCTL_HGCM_CALL(0):
- return vbg_ioctl_hgcm_call(gdev, session, f32bit, data);
- case VBG_IOCTL_LOG(0):
-+ case VBG_IOCTL_LOG_ALT(0):
- return vbg_ioctl_log(data);
- }
-
-diff --git a/drivers/virt/vboxguest/vboxguest_core.h b/drivers/virt/vboxguest/vboxguest_core.h
-index 4188c12b839f..77c3a9c8255d 100644
---- a/drivers/virt/vboxguest/vboxguest_core.h
-+++ b/drivers/virt/vboxguest/vboxguest_core.h
-@@ -15,6 +15,21 @@
- #include <linux/vboxguest.h>
- #include "vmmdev.h"
-
-+/*
-+ * The mainline kernel version (this version) of the vboxguest module
-+ * contained a bug where it defined VBGL_IOCTL_VMMDEV_REQUEST_BIG and
-+ * VBGL_IOCTL_LOG using _IOC(_IOC_READ | _IOC_WRITE, 'V', ...) instead
-+ * of _IO(V, ...) as the out of tree VirtualBox upstream version does.
-+ *
-+ * These _ALT definitions keep compatibility with the wrong defines the
-+ * mainline kernel version used for a while.
-+ * Note the VirtualBox userspace bits have always been built against
-+ * VirtualBox upstream's headers, so this is likely not necessary. But
-+ * we must never break our ABI so we keep these around to be 100% sure.
-+ */
-+#define VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT _IOC(_IOC_READ | _IOC_WRITE, 'V', 3, 0)
-+#define VBG_IOCTL_LOG_ALT(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 9, s)
-+
- struct vbg_session;
-
- /** VBox guest memory balloon. */
-diff --git a/drivers/virt/vboxguest/vboxguest_linux.c b/drivers/virt/vboxguest/vboxguest_linux.c
-index 6e8c0f1c1056..32c2c52f7e84 100644
---- a/drivers/virt/vboxguest/vboxguest_linux.c
-+++ b/drivers/virt/vboxguest/vboxguest_linux.c
-@@ -131,7 +131,8 @@ static long vbg_misc_device_ioctl(struct file *filp, unsigned int req,
- * the need for a bounce-buffer and another copy later on.
- */
- is_vmmdev_req = (req & ~IOCSIZE_MASK) == VBG_IOCTL_VMMDEV_REQUEST(0) ||
-- req == VBG_IOCTL_VMMDEV_REQUEST_BIG;
-+ req == VBG_IOCTL_VMMDEV_REQUEST_BIG ||
-+ req == VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT;
-
- if (is_vmmdev_req)
- buf = vbg_req_alloc(size, VBG_IOCTL_HDR_TYPE_DEFAULT,
-diff --git a/include/uapi/linux/vboxguest.h b/include/uapi/linux/vboxguest.h
-index 9cec58a6a5ea..f79d7abe27db 100644
---- a/include/uapi/linux/vboxguest.h
-+++ b/include/uapi/linux/vboxguest.h
-@@ -103,7 +103,7 @@ VMMDEV_ASSERT_SIZE(vbg_ioctl_driver_version_info, 24 + 20);
-
-
- /* IOCTL to perform a VMM Device request larger then 1KB. */
--#define VBG_IOCTL_VMMDEV_REQUEST_BIG _IOC(_IOC_READ | _IOC_WRITE, 'V', 3, 0)
-+#define VBG_IOCTL_VMMDEV_REQUEST_BIG _IO('V', 3)
-
-
- /** VBG_IOCTL_HGCM_CONNECT data structure. */
-@@ -198,7 +198,7 @@ struct vbg_ioctl_log {
- } u;
- };
-
--#define VBG_IOCTL_LOG(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 9, s)
-+#define VBG_IOCTL_LOG(s) _IO('V', 9)
-
-
- /** VBG_IOCTL_WAIT_FOR_EVENTS data structure. */
---
-2.26.2
-
diff --git a/0001-virt-vbox-Fix-guest-capabilities-mask-check.patch b/0001-virt-vbox-Fix-guest-capabilities-mask-check.patch
deleted file mode 100644
index 77dbde8f5..000000000
--- a/0001-virt-vbox-Fix-guest-capabilities-mask-check.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Tue, 19 May 2020 13:23:06 +0200
-Subject: [PATCH] virt: vbox: Fix guest capabilities mask check
-
-Check the passed in capabilities against VMMDEV_GUEST_CAPABILITIES_MASK
-instead of against VMMDEV_EVENT_VALID_EVENT_MASK.
-This tightens the allowed mask from 0x7ff to 0x7.
-
-Fixes: 0ba002bc4393 ("virt: Add vboxguest driver for Virtual Box Guest integration")
-Cc: stable@vger.kernel.org
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Upstream Status: https://lore.kernel.org/lkml/20200520195440.38759-1-hdegoede@redhat.com/
----
- drivers/virt/vboxguest/vboxguest_core.c | 2 +-
- drivers/virt/vboxguest/vmmdev.h | 2 ++
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c
-index 8fab04e76c14..18ebd7a6af98 100644
---- a/drivers/virt/vboxguest/vboxguest_core.c
-+++ b/drivers/virt/vboxguest/vboxguest_core.c
-@@ -1444,7 +1444,7 @@ static int vbg_ioctl_change_guest_capabilities(struct vbg_dev *gdev,
- or_mask = caps->u.in.or_mask;
- not_mask = caps->u.in.not_mask;
-
-- if ((or_mask | not_mask) & ~VMMDEV_EVENT_VALID_EVENT_MASK)
-+ if ((or_mask | not_mask) & ~VMMDEV_GUEST_CAPABILITIES_MASK)
- return -EINVAL;
-
- ret = vbg_set_session_capabilities(gdev, session, or_mask, not_mask,
-diff --git a/drivers/virt/vboxguest/vmmdev.h b/drivers/virt/vboxguest/vmmdev.h
-index 6337b8d75d96..21f408120e3f 100644
---- a/drivers/virt/vboxguest/vmmdev.h
-+++ b/drivers/virt/vboxguest/vmmdev.h
-@@ -206,6 +206,8 @@ VMMDEV_ASSERT_SIZE(vmmdev_mask, 24 + 8);
- * not.
- */
- #define VMMDEV_GUEST_SUPPORTS_GRAPHICS BIT(2)
-+/* The mask of valid capabilities, for sanity checking. */
-+#define VMMDEV_GUEST_CAPABILITIES_MASK 0x00000007U
-
- /** struct vmmdev_hypervisorinfo - Hypervisor info structure. */
- struct vmmdev_hypervisorinfo {
---
-2.26.2
-
diff --git a/0004-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch b/0004-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch
deleted file mode 100644
index c4c947641..000000000
--- a/0004-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From e82044df3332199c63904d86b4b1ad0963a6f8e0 Mon Sep 17 00:00:00 2001
-From: Ondrej Jirman <megous@megous.com>
-Date: Fri, 26 Jun 2020 02:55:52 +0200
-Subject: [PATCH 04/13] drm/panel: rocktech-jh057n00900: Rename the driver to
- st7703
-
-This rename is done so that the driver matches the name of the
-display controller and in preparation for adding support for more
-panels to the driver.
-
-This is just a basic file rename, with no code changes.
-
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- drivers/gpu/drm/panel/Kconfig | 26 +++++++++----------
- drivers/gpu/drm/panel/Makefile | 2 +-
- ...-jh057n00900.c => panel-sitronix-st7703.c} | 0
- 3 files changed, 14 insertions(+), 14 deletions(-)
- rename drivers/gpu/drm/panel/{panel-rocktech-jh057n00900.c => panel-sitronix-st7703.c} (100%)
-
-diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig
-index a1723c1b5fbf8..7cf1f160fdd51 100644
---- a/drivers/gpu/drm/panel/Kconfig
-+++ b/drivers/gpu/drm/panel/Kconfig
-@@ -262,19 +262,6 @@ config DRM_PANEL_RAYDIUM_RM68200
- Say Y here if you want to enable support for Raydium RM68200
- 720x1280 DSI video mode panel.
-
--config DRM_PANEL_ROCKTECH_JH057N00900
-- tristate "Rocktech JH057N00900 MIPI touchscreen panel"
-- depends on OF
-- depends on DRM_MIPI_DSI
-- depends on BACKLIGHT_CLASS_DEVICE
-- help
-- Say Y here if you want to enable support for Rocktech JH057N00900
-- MIPI DSI panel as e.g. used in the Librem 5 devkit. It has a
-- resolution of 720x1440 pixels, a built in backlight and touch
-- controller.
-- Touch input support is provided by the goodix driver and needs to be
-- selected separately.
--
- config DRM_PANEL_RONBO_RB070D30
- tristate "Ronbo Electronics RB070D30 panel"
- depends on OF
-@@ -374,6 +361,19 @@ config DRM_PANEL_SITRONIX_ST7701
- ST7701 controller for 480X864 LCD panels with MIPI/RGB/SPI
- system interfaces.
-
-+config DRM_PANEL_SITRONIX_ST7703
-+ tristate "Sitronix ST7703 based MIPI touchscreen panels"
-+ depends on OF
-+ depends on DRM_MIPI_DSI
-+ depends on BACKLIGHT_CLASS_DEVICE
-+ help
-+ Say Y here if you want to enable support for Sitronix ST7703 based
-+ panels, souch as Rocktech JH057N00900 MIPI DSI panel as e.g. used in
-+ the Librem 5 devkit. It has a resolution of 720x1440 pixels, a built
-+ in backlight and touch controller.
-+ Touch input support is provided by the goodix driver and needs to be
-+ selected separately.
-+
- config DRM_PANEL_SITRONIX_ST7789V
- tristate "Sitronix ST7789V panel"
- depends on OF && SPI
-diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile
-index 96a883cd66305..0519fdf0710d5 100644
---- a/drivers/gpu/drm/panel/Makefile
-+++ b/drivers/gpu/drm/panel/Makefile
-@@ -25,7 +25,6 @@ obj-$(CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00) += panel-panasonic-vvx10f034n00.o
- obj-$(CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN) += panel-raspberrypi-touchscreen.o
- obj-$(CONFIG_DRM_PANEL_RAYDIUM_RM67191) += panel-raydium-rm67191.o
- obj-$(CONFIG_DRM_PANEL_RAYDIUM_RM68200) += panel-raydium-rm68200.o
--obj-$(CONFIG_DRM_PANEL_ROCKTECH_JH057N00900) += panel-rocktech-jh057n00900.o
- obj-$(CONFIG_DRM_PANEL_RONBO_RB070D30) += panel-ronbo-rb070d30.o
- obj-$(CONFIG_DRM_PANEL_SAMSUNG_LD9040) += panel-samsung-ld9040.o
- obj-$(CONFIG_DRM_PANEL_SAMSUNG_S6D16D0) += panel-samsung-s6d16d0.o
-@@ -39,6 +38,7 @@ obj-$(CONFIG_DRM_PANEL_SHARP_LQ101R1SX01) += panel-sharp-lq101r1sx01.o
- obj-$(CONFIG_DRM_PANEL_SHARP_LS037V7DW01) += panel-sharp-ls037v7dw01.o
- obj-$(CONFIG_DRM_PANEL_SHARP_LS043T1LE01) += panel-sharp-ls043t1le01.o
- obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7701) += panel-sitronix-st7701.o
-+obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7703) += panel-sitronix-st7703.o
- obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7789V) += panel-sitronix-st7789v.o
- obj-$(CONFIG_DRM_PANEL_SONY_ACX424AKP) += panel-sony-acx424akp.o
- obj-$(CONFIG_DRM_PANEL_SONY_ACX565AKM) += panel-sony-acx565akm.o
-diff --git a/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
-similarity index 100%
-rename from drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c
-rename to drivers/gpu/drm/panel/panel-sitronix-st7703.c
---
-2.26.2
-
diff --git a/20200505_leo_yan_linaro_org.patch b/20200505_leo_yan_linaro_org.patch
deleted file mode 100644
index 9674efab9..000000000
--- a/20200505_leo_yan_linaro_org.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From MAILER-DAEMON Wed May 6 20:19:37 2020
-From: Leo Yan <leo.yan@linaro.org>
-To: Arnaldo Carvalho de Melo <acme@kernel.org>, Mathieu Poirier <mathieu.poirier@linaro.org>, Suzuki K Poulose <suzuki.poulose@arm.com>, Mike Leach <mike.leach@linaro.org>, Peter Zijlstra <peterz@infradead.org>, Ingo Molnar <mingo@redhat.com>, Mark Rutland <mark.rutland@arm.com>, Alexander Shishkin <alexander.shishkin@linux.intel.com>, Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>, Tor Jeremiassen <tor@ti.com>, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org
-Subject: [PATCH] perf cs-etm: Move defined of traceid_list
-Date: Tue, 05 May 2020 21:36:42 +0800
-Message-Id: <20200505133642.4756-1-leo.yan@linaro.org>
-List-Id: <linux-arm-kernel.lists.infradead.org>
-Cc: Leo Yan <leo.yan@linaro.org>
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 7bit
-
-The variable 'traceid_list' is defined in the header file cs-etm.h,
-if multiple C files include cs-etm.h the compiler might complaint for
-multiple definition of 'traceid_list'.
-
-To fix multiple definition error, move the definition of 'traceid_list'
-into cs-etm.c.
-
-Fixes: cd8bfd8c973e ("perf tools: Add processing of coresight metadata")
-Reported-by: Thomas Backlund <tmb@mageia.org>
-Signed-off-by: Leo Yan <leo.yan@linaro.org>
-Tested-by: Thomas Backlund <tmb@mageia.org>
-Tested-by: Mike Leach <mike.leach@linaro.org>
-Reviewed-by: Mike Leach <mike.leach@linaro.org>
-Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
----
- tools/perf/util/cs-etm.c | 3 +++
- tools/perf/util/cs-etm.h | 3 ---
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/tools/perf/util/cs-etm.c b/tools/perf/util/cs-etm.c
-index 62d2f9b9ce1b..381d9708e9bd 100644
---- a/tools/perf/util/cs-etm.c
-+++ b/tools/perf/util/cs-etm.c
-@@ -94,6 +94,9 @@ struct cs_etm_queue {
- struct cs_etm_traceid_queue **traceid_queues;
- };
-
-+/* RB tree for quick conversion between traceID and metadata pointers */
-+static struct intlist *traceid_list;
-+
- static int cs_etm__update_queues(struct cs_etm_auxtrace *etm);
- static int cs_etm__process_queues(struct cs_etm_auxtrace *etm);
- static int cs_etm__process_timeless_queues(struct cs_etm_auxtrace *etm,
-diff --git a/tools/perf/util/cs-etm.h b/tools/perf/util/cs-etm.h
-index 650ecc2a6349..4ad925d6d799 100644
---- a/tools/perf/util/cs-etm.h
-+++ b/tools/perf/util/cs-etm.h
-@@ -114,9 +114,6 @@ enum cs_etm_isa {
- CS_ETM_ISA_T32,
- };
-
--/* RB tree for quick conversion between traceID and metadata pointers */
--struct intlist *traceid_list;
--
- struct cs_etm_queue;
-
- struct cs_etm_packet {
---
-2.17.1
-
-
-_______________________________________________
-linux-arm-kernel mailing list
-linux-arm-kernel@lists.infradead.org
-http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
-
diff --git a/configs/fedora/debug/CONFIG_BTRFS_ASSERT b/configs/fedora/debug/CONFIG_BTRFS_ASSERT
new file mode 100644
index 000000000..bfb600a25
--- /dev/null
+++ b/configs/fedora/debug/CONFIG_BTRFS_ASSERT
@@ -0,0 +1 @@
+CONFIG_BTRFS_ASSERT=y
diff --git a/configs/fedora/debug/CONFIG_DEBUG_VM_PGTABLE b/configs/fedora/debug/CONFIG_DEBUG_VM_PGTABLE
new file mode 100644
index 000000000..1ac76e09a
--- /dev/null
+++ b/configs/fedora/debug/CONFIG_DEBUG_VM_PGTABLE
@@ -0,0 +1,24 @@
+# CONFIG_DEBUG_VM_PGTABLE:
+#
+# This option provides a debug method which can be used to test
+# architecture page table helper functions on various platforms in
+# verifying if they comply with expected generic MM semantics. This
+# will help architecture code in making sure that any changes or
+# new additions of these helpers still conform to expected
+# semantics of the generic MM. Platforms will have to opt in for
+# this through ARCH_HAS_DEBUG_VM_PGTABLE.
+#
+# If unsure, say N.
+#
+# Symbol: DEBUG_VM_PGTABLE [=y]
+# Type : bool
+# Defined at lib/Kconfig.debug:702
+# Prompt: Debug arch page table for semantics compliance
+# Depends on: MMU [=y] && ARCH_HAS_DEBUG_VM_PGTABLE [=y]
+# Location:
+# -> Kernel hacking
+# -> Memory Debugging
+#
+#
+#
+CONFIG_DEBUG_VM_PGTABLE=y
diff --git a/configs/fedora/debug/CONFIG_DMADEVICES_DEBUG b/configs/fedora/debug/CONFIG_DMADEVICES_DEBUG
index 7cd4fec86..0b101be4e 100644
--- a/configs/fedora/debug/CONFIG_DMADEVICES_DEBUG
+++ b/configs/fedora/debug/CONFIG_DMADEVICES_DEBUG
@@ -1 +1 @@
-# CONFIG_DMADEVICES_DEBUG is not set
+CONFIG_DMADEVICES_DEBUG=y
diff --git a/configs/fedora/debug/CONFIG_KASAN_VMALLOC b/configs/fedora/debug/CONFIG_KASAN_VMALLOC
new file mode 100644
index 000000000..290120758
--- /dev/null
+++ b/configs/fedora/debug/CONFIG_KASAN_VMALLOC
@@ -0,0 +1 @@
+CONFIG_KASAN_VMALLOC=y
diff --git a/configs/fedora/debug/CONFIG_KPROBE_EVENT_GEN_TEST b/configs/fedora/debug/CONFIG_KPROBE_EVENT_GEN_TEST
new file mode 100644
index 000000000..e7583defd
--- /dev/null
+++ b/configs/fedora/debug/CONFIG_KPROBE_EVENT_GEN_TEST
@@ -0,0 +1 @@
+CONFIG_KPROBE_EVENT_GEN_TEST=m
diff --git a/configs/fedora/debug/CONFIG_MMIOTRACE b/configs/fedora/debug/CONFIG_MMIOTRACE
deleted file mode 100644
index dd8016c2c..000000000
--- a/configs/fedora/debug/CONFIG_MMIOTRACE
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_MMIOTRACE=y
diff --git a/configs/fedora/debug/CONFIG_PROVE_RCU b/configs/fedora/debug/CONFIG_PROVE_RCU
deleted file mode 100644
index d7a71a2e7..000000000
--- a/configs/fedora/debug/CONFIG_PROVE_RCU
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_PROVE_RCU=y
diff --git a/configs/fedora/debug/CONFIG_PTDUMP_DEBUGFS b/configs/fedora/debug/CONFIG_PTDUMP_DEBUGFS
new file mode 100644
index 000000000..72f9e29de
--- /dev/null
+++ b/configs/fedora/debug/CONFIG_PTDUMP_DEBUGFS
@@ -0,0 +1 @@
+CONFIG_PTDUMP_DEBUGFS=y
diff --git a/configs/fedora/debug/CONFIG_SND_CTL_VALIDATION b/configs/fedora/debug/CONFIG_SND_CTL_VALIDATION
new file mode 100644
index 000000000..884dadda0
--- /dev/null
+++ b/configs/fedora/debug/CONFIG_SND_CTL_VALIDATION
@@ -0,0 +1 @@
+CONFIG_SND_CTL_VALIDATION=y
diff --git a/configs/fedora/debug/CONFIG_SND_SOC_SOF_DEBUG_PROBES b/configs/fedora/debug/CONFIG_SND_SOC_SOF_DEBUG_PROBES
new file mode 100644
index 000000000..a44a53ccf
--- /dev/null
+++ b/configs/fedora/debug/CONFIG_SND_SOC_SOF_DEBUG_PROBES
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_DEBUG_PROBES=y
diff --git a/configs/fedora/debug/CONFIG_SND_SOC_SOF_HDA_PROBES b/configs/fedora/debug/CONFIG_SND_SOC_SOF_HDA_PROBES
new file mode 100644
index 000000000..bc27b6a00
--- /dev/null
+++ b/configs/fedora/debug/CONFIG_SND_SOC_SOF_HDA_PROBES
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_HDA_PROBES=y
diff --git a/configs/fedora/debug/CONFIG_SYNTH_EVENT_GEN_TEST b/configs/fedora/debug/CONFIG_SYNTH_EVENT_GEN_TEST
new file mode 100644
index 000000000..29f4ccb3b
--- /dev/null
+++ b/configs/fedora/debug/CONFIG_SYNTH_EVENT_GEN_TEST
@@ -0,0 +1 @@
+CONFIG_SYNTH_EVENT_GEN_TEST=m
diff --git a/configs/fedora/debug/CONFIG_TEST_MIN_HEAP b/configs/fedora/debug/CONFIG_TEST_MIN_HEAP
new file mode 100644
index 000000000..484d9f294
--- /dev/null
+++ b/configs/fedora/debug/CONFIG_TEST_MIN_HEAP
@@ -0,0 +1 @@
+CONFIG_TEST_MIN_HEAP=m
diff --git a/configs/fedora/debug/CONFIG_TRACE_EVENT_INJECT b/configs/fedora/debug/CONFIG_TRACE_EVENT_INJECT
deleted file mode 100644
index 6eed5bde6..000000000
--- a/configs/fedora/debug/CONFIG_TRACE_EVENT_INJECT
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_TRACE_EVENT_INJECT=y
diff --git a/configs/fedora/debug/arm/aarch64/CONFIG_ARM64_FORCE_52BIT b/configs/fedora/debug/arm/aarch64/CONFIG_ARM64_FORCE_52BIT
new file mode 100644
index 000000000..8836ae9a5
--- /dev/null
+++ b/configs/fedora/debug/arm/aarch64/CONFIG_ARM64_FORCE_52BIT
@@ -0,0 +1 @@
+CONFIG_ARM64_FORCE_52BIT=y
diff --git a/configs/fedora/debug/arm/aarch64/README b/configs/fedora/debug/arm/aarch64/README
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/configs/fedora/debug/arm/aarch64/README
diff --git a/configs/fedora/debug/arm/armv7/README b/configs/fedora/debug/arm/armv7/README
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/configs/fedora/debug/arm/armv7/README
diff --git a/configs/fedora/debug/powerpc/README b/configs/fedora/debug/powerpc/README
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/configs/fedora/debug/powerpc/README
diff --git a/configs/fedora/debug/s390x/README b/configs/fedora/debug/s390x/README
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/configs/fedora/debug/s390x/README
diff --git a/configs/fedora/generic/CONFIG_ACPI_TABLE_UPGRADE b/configs/fedora/generic/CONFIG_ACPI_TABLE_UPGRADE
new file mode 100644
index 000000000..3ac21bf3a
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_ACPI_TABLE_UPGRADE
@@ -0,0 +1 @@
+# CONFIG_ACPI_TABLE_UPGRADE is not set
diff --git a/configs/fedora/generic/CONFIG_AD9467 b/configs/fedora/generic/CONFIG_AD9467
new file mode 100644
index 000000000..c7d541b1c
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_AD9467
@@ -0,0 +1,26 @@
+# CONFIG_AD9467:
+#
+# Say yes here to build support for Analog Devices:
+# * AD9467 16-Bit, 200 MSPS/250 MSPS Analog-to-Digital Converter
+#
+# The driver requires the assistance of the AXI ADC IP core to operate,
+# since SPI is used for configuration only, while data has to be
+# streamed into memory via DMA.
+#
+# To compile this driver as a module, choose M here: the module will be
+# called ad9467.
+#
+# Symbol: AD9467 [=n]
+# Type : tristate
+# Defined at drivers/iio/adc/Kconfig:249
+# Prompt: Analog Devices AD9467 High Speed ADC driver
+# Depends on: IIO [=m] && SPI [=y]
+# Location:
+# -> Device Drivers
+# -> Industrial I/O support (IIO [=m])
+# -> Analog to digital converters
+# Selects: ADI_AXI_ADC [=n]
+#
+#
+#
+CONFIG_AD9467=m
diff --git a/configs/fedora/generic/CONFIG_ADIS16475 b/configs/fedora/generic/CONFIG_ADIS16475
new file mode 100644
index 000000000..da7de0b31
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_ADIS16475
@@ -0,0 +1,23 @@
+# CONFIG_ADIS16475:
+#
+# Say yes here to build support for Analog Devices ADIS16470, ADIS16475,
+# ADIS16477, ADIS16465, ADIS16467, ADIS16500, ADIS16505, ADIS16507 inertial
+# sensors.
+#
+# To compile this driver as a module, choose M here: the module will be
+# called adis16475.
+#
+# Symbol: ADIS16475 [=n]
+# Type : tristate
+# Defined at drivers/iio/imu/Kconfig:32
+# Prompt: Analog Devices ADIS16475 and similar IMU driver
+# Depends on: IIO [=m] && SPI [=y]
+# Location:
+# -> Device Drivers
+# -> Industrial I/O support (IIO [=m])
+# -> Inertial measurement units
+# Selects: IIO_ADIS_LIB [=n] && IIO_ADIS_LIB_BUFFER [=n]
+#
+#
+#
+CONFIG_ADIS16475=m
diff --git a/configs/fedora/generic/CONFIG_ADI_AXI_ADC b/configs/fedora/generic/CONFIG_ADI_AXI_ADC
new file mode 100644
index 000000000..58f300a76
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_ADI_AXI_ADC
@@ -0,0 +1,32 @@
+# CONFIG_ADI_AXI_ADC:
+#
+# Say yes here to build support for Analog Devices Generic
+# AXI ADC IP core. The IP core is used for interfacing with
+# analog-to-digital (ADC) converters that require either a high-speed
+# serial interface (JESD204B/C) or a source synchronous parallel
+# interface (LVDS/CMOS).
+# Typically (for such devices) SPI will be used for configuration only,
+# while this IP core handles the streaming of data into memory via DMA.
+#
+# Link: https://wiki.analog.com/resources/fpga/docs/axi_adc_ip
+# If unsure, say N (but it's safe to say "Y").
+#
+# To compile this driver as a module, choose M here: the
+# module will be called adi-axi-adc.
+#
+# Symbol: ADI_AXI_ADC [=n]
+# Type : tristate
+# Defined at drivers/iio/adc/Kconfig:264
+# Prompt: Analog Devices Generic AXI ADC IP core driver
+# Depends on: IIO [=m]
+# Location:
+# -> Device Drivers
+# -> Industrial I/O support (IIO [=m])
+# -> Analog to digital converters
+# Selects: IIO_BUFFER [=y] && IIO_BUFFER_HW_CONSUMER [=m] && IIO_BUFFER_DMAENGINE [=n]
+# Selected by [n]:
+# - AD9467 [=n] && IIO [=m] && SPI [=y]
+#
+#
+#
+CONFIG_ADI_AXI_ADC=m
diff --git a/configs/fedora/generic/CONFIG_AMDTEE b/configs/fedora/generic/CONFIG_AMDTEE
new file mode 100644
index 000000000..994a2a1fc
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_AMDTEE
@@ -0,0 +1 @@
+# CONFIG_AMDTEE is not set
diff --git a/configs/fedora/generic/CONFIG_ARCH_REALTEK b/configs/fedora/generic/CONFIG_ARCH_REALTEK
new file mode 100644
index 000000000..49536f6d5
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_ARCH_REALTEK
@@ -0,0 +1 @@
+# CONFIG_ARCH_REALTEK is not set
diff --git a/configs/fedora/generic/arm/CONFIG_ARCH_S32 b/configs/fedora/generic/CONFIG_ARCH_S32
index 8764fcd8b..8764fcd8b 100644
--- a/configs/fedora/generic/arm/CONFIG_ARCH_S32
+++ b/configs/fedora/generic/CONFIG_ARCH_S32
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_AMU_EXTN b/configs/fedora/generic/CONFIG_ARM64_AMU_EXTN
index e16916cec..e16916cec 100644
--- a/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_AMU_EXTN
+++ b/configs/fedora/generic/CONFIG_ARM64_AMU_EXTN
diff --git a/configs/fedora/generic/CONFIG_ARM64_BTI b/configs/fedora/generic/CONFIG_ARM64_BTI
new file mode 100644
index 000000000..5af4d535b
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_ARM64_BTI
@@ -0,0 +1,31 @@
+# CONFIG_ARM64_BTI:
+#
+# Branch Target Identification (part of the ARMv8.5 Extensions)
+# provides a mechanism to limit the set of locations to which computed
+# branch instructions such as BR or BLR can jump.
+#
+# To make use of BTI on CPUs that support it, say Y.
+#
+# BTI is intended to provide complementary protection to other control
+# flow integrity protection mechanisms, such as the Pointer
+# authentication mechanism provided as part of the ARMv8.3 Extensions.
+# For this reason, it does not make sense to enable this option without
+# also enabling support for pointer authentication. Thus, when
+# enabling this option you should also select ARM64_PTR_AUTH=y.
+#
+# Userspace binaries must also be specifically compiled to make use of
+# this mechanism. If you say N here or the hardware does not support
+# BTI, such binaries can still run, but you get no additional
+# enforcement of branch destinations.
+#
+# Symbol: ARM64_BTI [=y]
+# Type : bool
+# Defined at arch/arm64/Kconfig:1594
+# Prompt: Branch Target Identification support
+# Location:
+# -> Kernel Features
+# -> ARMv8.5 architectural features
+#
+#
+#
+CONFIG_ARM64_BTI=y
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_E0PD b/configs/fedora/generic/CONFIG_ARM64_E0PD
index cba9bf0b8..cba9bf0b8 100644
--- a/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_E0PD
+++ b/configs/fedora/generic/CONFIG_ARM64_E0PD
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_ERRATUM_1319367 b/configs/fedora/generic/CONFIG_ARM64_ERRATUM_1319367
index 3c76daab5..3c76daab5 100644
--- a/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_ERRATUM_1319367
+++ b/configs/fedora/generic/CONFIG_ARM64_ERRATUM_1319367
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_ERRATUM_1530923 b/configs/fedora/generic/CONFIG_ARM64_ERRATUM_1530923
index 4cc427c4a..4cc427c4a 100644
--- a/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_ERRATUM_1530923
+++ b/configs/fedora/generic/CONFIG_ARM64_ERRATUM_1530923
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_ERRATUM_1542419 b/configs/fedora/generic/CONFIG_ARM64_ERRATUM_1542419
index fc1543d3a..fc1543d3a 100644
--- a/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_ERRATUM_1542419
+++ b/configs/fedora/generic/CONFIG_ARM64_ERRATUM_1542419
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_USE_LSE_ATOMICS b/configs/fedora/generic/CONFIG_ARM64_USE_LSE_ATOMICS
index bb1ab4cb2..bb1ab4cb2 100644
--- a/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_USE_LSE_ATOMICS
+++ b/configs/fedora/generic/CONFIG_ARM64_USE_LSE_ATOMICS
diff --git a/configs/fedora/generic/CONFIG_ARM_SMC_WATCHDOG b/configs/fedora/generic/CONFIG_ARM_SMC_WATCHDOG
new file mode 100644
index 000000000..af24ce5fa
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_ARM_SMC_WATCHDOG
@@ -0,0 +1,21 @@
+# CONFIG_ARM_SMC_WATCHDOG:
+#
+# Say Y here to include support for a watchdog timer
+# implemented by the EL3 Secure Monitor on ARM platforms.
+# Requires firmware support.
+# To compile this driver as a module, choose M here: the
+# module will be called arm_smc_wdt.
+#
+# Symbol: ARM_SMC_WATCHDOG [=n]
+# Type : tristate
+# Defined at drivers/watchdog/Kconfig:871
+# Prompt: ARM Secure Monitor Call based watchdog support
+# Depends on: WATCHDOG [=y] && (ARM || ARM64 [=y]) && OF [=y] && HAVE_ARM_SMCCC [=y]
+# Location:
+# -> Device Drivers
+# -> Watchdog Timer Support (WATCHDOG [=y])
+# Selects: WATCHDOG_CORE [=y]
+#
+#
+#
+# CONFIG_ARM_SMC_WATCHDOG is not set
diff --git a/configs/fedora/generic/arm/CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS b/configs/fedora/generic/CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS
index a8cf80f89..a8cf80f89 100644
--- a/configs/fedora/generic/arm/CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS
+++ b/configs/fedora/generic/CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS
diff --git a/configs/fedora/generic/CONFIG_ATLAS_EZO_SENSOR b/configs/fedora/generic/CONFIG_ATLAS_EZO_SENSOR
new file mode 100644
index 000000000..be8768690
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_ATLAS_EZO_SENSOR
@@ -0,0 +1 @@
+# CONFIG_ATLAS_EZO_SENSOR is not set
diff --git a/configs/fedora/generic/CONFIG_BACKLIGHT_PM8941_WLED b/configs/fedora/generic/CONFIG_BACKLIGHT_PM8941_WLED
new file mode 100644
index 000000000..cd95d798e
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_BACKLIGHT_PM8941_WLED
@@ -0,0 +1 @@
+# CONFIG_BACKLIGHT_PM8941_WLED is not set
diff --git a/configs/fedora/generic/CONFIG_BATTERY_CW2015 b/configs/fedora/generic/CONFIG_BATTERY_CW2015
new file mode 100644
index 000000000..e369d35da
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_BATTERY_CW2015
@@ -0,0 +1,21 @@
+# CONFIG_BATTERY_CW2015:
+#
+# Say Y here to enable support for the cellwise cw2015
+# battery fuel gauge (used in the Pinebook Pro & others)
+#
+# This driver can also be built as a module. If so, the module will be
+# called cw2015_battery.
+#
+# Symbol: BATTERY_CW2015 [=n]
+# Type : tristate
+# Defined at drivers/power/supply/Kconfig:119
+# Prompt: CW2015 Battery driver
+# Depends on: POWER_SUPPLY [=y] && I2C [=y]
+# Location:
+# -> Device Drivers
+# -> Power supply class support (POWER_SUPPLY [=y])
+# Selects: REGMAP_I2C [=y]
+#
+#
+#
+CONFIG_BATTERY_CW2015=m
diff --git a/configs/fedora/generic/CONFIG_BCACHE_ASYNC_REGISTRAION b/configs/fedora/generic/CONFIG_BCACHE_ASYNC_REGISTRAION
new file mode 100644
index 000000000..a4305fdb6
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_BCACHE_ASYNC_REGISTRAION
@@ -0,0 +1,20 @@
+# CONFIG_BCACHE_ASYNC_REGISTRAION:
+#
+# Add a sysfs file /sys/fs/bcache/register_async. Writing registering
+# device path into this file will returns immediately and the real
+# registration work is handled in kernel work queue in asynchronous
+# way.
+#
+# Symbol: BCACHE_ASYNC_REGISTRAION [=n]
+# Type : bool
+# Defined at drivers/md/bcache/Kconfig:30
+# Prompt: Asynchronous device registration (EXPERIMENTAL)
+# Depends on: MD [=y] && BCACHE [=m]
+# Location:
+# -> Device Drivers
+# -> Multiple devices driver support (RAID and LVM) (MD [=y])
+# -> Block device as cache (BCACHE [=m])
+#
+#
+#
+# CONFIG_BCACHE_ASYNC_REGISTRAION is not set
diff --git a/configs/fedora/generic/CONFIG_BCM54140_PHY b/configs/fedora/generic/CONFIG_BCM54140_PHY
new file mode 100644
index 000000000..4c1b9f68b
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_BCM54140_PHY
@@ -0,0 +1,21 @@
+# CONFIG_BCM54140_PHY:
+#
+# Support the Broadcom BCM54140 Quad SGMII/QSGMII PHY.
+#
+# This driver also supports the hardware monitoring of this PHY and
+# exposes voltage and temperature sensors.
+#
+# Symbol: BCM54140_PHY [=n]
+# Type : tristate
+# Defined at drivers/net/phy/Kconfig:357
+# Prompt: Broadcom BCM54140 PHY
+# Depends on: NETDEVICES [=y] && PHYLIB [=y] && (HWMON [=y] || HWMON [=y]=n)
+# Location:
+# -> Device Drivers
+# -> Network device support (NETDEVICES [=y])
+# -> PHY Device support and infrastructure (PHYLIB [=y])
+# Selects: BCM_NET_PHYLIB [=m]
+#
+#
+#
+CONFIG_BCM54140_PHY=m
diff --git a/configs/fedora/generic/CONFIG_BLK_DEV_RNBD_CLIENT b/configs/fedora/generic/CONFIG_BLK_DEV_RNBD_CLIENT
new file mode 100644
index 000000000..7a5e3ce8d
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_BLK_DEV_RNBD_CLIENT
@@ -0,0 +1 @@
+CONFIG_BLK_DEV_RNBD_CLIENT=m
diff --git a/configs/fedora/generic/CONFIG_BLK_DEV_RNBD_SERVER b/configs/fedora/generic/CONFIG_BLK_DEV_RNBD_SERVER
new file mode 100644
index 000000000..08ebe8932
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_BLK_DEV_RNBD_SERVER
@@ -0,0 +1 @@
+CONFIG_BLK_DEV_RNBD_SERVER=m
diff --git a/configs/fedora/generic/CONFIG_BLK_INLINE_ENCRYPTION b/configs/fedora/generic/CONFIG_BLK_INLINE_ENCRYPTION
new file mode 100644
index 000000000..f81ea9630
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_BLK_INLINE_ENCRYPTION
@@ -0,0 +1,17 @@
+# CONFIG_BLK_INLINE_ENCRYPTION:
+#
+# Build the blk-crypto subsystem. Enabling this lets the
+# block layer handle encryption, so users can take
+# advantage of inline encryption hardware if present.
+#
+# Symbol: BLK_INLINE_ENCRYPTION [=n]
+# Type : bool
+# Defined at block/Kconfig:189
+# Prompt: Enable inline encryption support in block layer
+# Depends on: BLOCK [=y]
+# Location:
+# -> Enable the block layer (BLOCK [=y])
+#
+#
+#
+CONFIG_BLK_INLINE_ENCRYPTION=y
diff --git a/configs/fedora/generic/CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK b/configs/fedora/generic/CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK
new file mode 100644
index 000000000..ff476454e
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK
@@ -0,0 +1 @@
+# CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK is not set
diff --git a/configs/fedora/generic/CONFIG_BRIDGE_MRP b/configs/fedora/generic/CONFIG_BRIDGE_MRP
new file mode 100644
index 000000000..92d19f49a
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_BRIDGE_MRP
@@ -0,0 +1,22 @@
+# CONFIG_BRIDGE_MRP:
+#
+# If you say Y here, then the Ethernet bridge will be able to run MRP
+# protocol to detect loops
+#
+# Say N to exclude this support and reduce the binary size.
+#
+# If unsure, say N.
+#
+# Symbol: BRIDGE_MRP [=n]
+# Type : bool
+# Defined at net/bridge/Kconfig:65
+# Prompt: MRP protocol
+# Depends on: NET [=y] && BRIDGE [=m]
+# Location:
+# -> Networking support (NET [=y])
+# -> Networking options
+# -> 802.1d Ethernet Bridging (BRIDGE [=m])
+#
+#
+#
+CONFIG_BRIDGE_MRP=y
diff --git a/configs/fedora/generic/CONFIG_BTRFS_FS b/configs/fedora/generic/CONFIG_BTRFS_FS
index 3b4d4254c..605c1837e 100644
--- a/configs/fedora/generic/CONFIG_BTRFS_FS
+++ b/configs/fedora/generic/CONFIG_BTRFS_FS
@@ -1 +1 @@
-CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS=y
diff --git a/configs/fedora/generic/CONFIG_BT_MSFTEXT b/configs/fedora/generic/CONFIG_BT_MSFTEXT
new file mode 100644
index 000000000..07c77454d
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_BT_MSFTEXT
@@ -0,0 +1,17 @@
+# CONFIG_BT_MSFTEXT:
+#
+# This options enables support for the Microsoft defined HCI
+# vendor extensions.
+#
+# Symbol: BT_MSFTEXT [=n]
+# Type : bool
+# Defined at net/bluetooth/Kconfig:96
+# Prompt: Enable Microsoft extensions
+# Depends on: NET [=y] && BT [=m]
+# Location:
+# -> Networking support (NET [=y])
+# -> Bluetooth subsystem support (BT [=m])
+#
+#
+#
+CONFIG_BT_MSFTEXT=y
diff --git a/configs/fedora/generic/CONFIG_CAPI_AVM b/configs/fedora/generic/CONFIG_CAPI_AVM
new file mode 100644
index 000000000..e22084428
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CAPI_AVM
@@ -0,0 +1 @@
+CONFIG_CAPI_AVM=y
diff --git a/configs/fedora/generic/CONFIG_CEC_SECO b/configs/fedora/generic/CONFIG_CEC_SECO
new file mode 100644
index 000000000..bd4e94258
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CEC_SECO
@@ -0,0 +1,20 @@
+# CONFIG_CEC_SECO:
+#
+# This is a driver for SECO Boards integrated CEC interface.
+# Selecting it will enable support for this device.
+# CEC bus is present in the HDMI connector and enables communication
+# between compatible devices.
+#
+# Symbol: CEC_SECO [=n]
+# Type : tristate
+# Defined at drivers/media/cec/platform/Kconfig:100
+# Prompt: SECO Boards HDMI CEC driver
+# Depends on: MEDIA_CEC_SUPPORT [=y] && (X86 [=y] || IA64 || COMPILE_TEST [=n]) && PCI [=y] && DMI [=y]
+# Location:
+# -> Device Drivers
+# -> HDMI CEC drivers (MEDIA_CEC_SUPPORT [=y])
+# Selects: CEC_CORE [=m] && CEC_NOTIFIER [=n]
+#
+#
+#
+# CONFIG_CEC_SECO is not set
diff --git a/configs/fedora/generic/CONFIG_CEC_SECO_RC b/configs/fedora/generic/CONFIG_CEC_SECO_RC
new file mode 100644
index 000000000..9ecdec2cc
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CEC_SECO_RC
@@ -0,0 +1,20 @@
+# CONFIG_CEC_SECO_RC:
+#
+# If you say yes here you will get support for the
+# SECO Boards Consumer-IR in seco-cec driver.
+# The embedded controller supports RC5 protocol only, default mapping
+# is set to rc-hauppauge.
+#
+# Symbol: CEC_SECO_RC [=n]
+# Type : bool
+# Defined at drivers/media/cec/platform/Kconfig:112
+# Prompt: SECO Boards IR RC5 support
+# Depends on: MEDIA_CEC_SUPPORT [=y] && CEC_SECO [=m] && (RC_CORE [=y]=y || RC_CORE [=y]=CEC_SECO [=m])
+# Location:
+# -> Device Drivers
+# -> HDMI CEC drivers (MEDIA_CEC_SUPPORT [=y])
+# -> SECO Boards HDMI CEC driver (CEC_SECO [=m])
+#
+#
+#
+CONFIG_CEC_SECO_RC=y
diff --git a/configs/fedora/generic/CONFIG_CHARGER_BD99954 b/configs/fedora/generic/CONFIG_CHARGER_BD99954
new file mode 100644
index 000000000..769d056b1
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CHARGER_BD99954
@@ -0,0 +1,19 @@
+# CONFIG_CHARGER_BD99954:
+#
+# Say Y here to enable support for getting battery and charger
+# information and altering charger configurations from the ROHM
+# BD99954 charger IC.
+#
+# Symbol: CHARGER_BD99954 [=n]
+# Type : tristate
+# Defined at drivers/power/supply/Kconfig:724
+# Prompt: ROHM bd99954 charger driver
+# Depends on: POWER_SUPPLY [=y] && I2C [=y]
+# Location:
+# -> Device Drivers
+# -> Power supply class support (POWER_SUPPLY [=y])
+# Selects: LINEAR_RANGES [=y]
+#
+#
+#
+CONFIG_CHARGER_BD99954=m
diff --git a/configs/fedora/generic/CONFIG_CHELSIO_TLS_DEVICE b/configs/fedora/generic/CONFIG_CHELSIO_TLS_DEVICE
index 0cf2ac889..eb5031f20 100644
--- a/configs/fedora/generic/CONFIG_CHELSIO_TLS_DEVICE
+++ b/configs/fedora/generic/CONFIG_CHELSIO_TLS_DEVICE
@@ -1 +1,19 @@
+# CONFIG_CHELSIO_TLS_DEVICE:
+#
+# This flag enables support for kernel tls offload over Chelsio T6
+# crypto accelerator. CONFIG_CHELSIO_TLS_DEVICE flag can be enabled
+# only if CONFIG_TLS and CONFIG_TLS_DEVICE flags are enabled.
+#
+# Symbol: CHELSIO_TLS_DEVICE [=y]
+# Type : bool
+# Defined at drivers/crypto/chelsio/Kconfig:46
+# Prompt: Chelsio Inline KTLS Offload
+# Depends on: CRYPTO [=y] && CRYPTO_HW [=y] && CHELSIO_T4 [=m] && TLS_DEVICE [=y]
+# Location:
+# -> Cryptographic API (CRYPTO [=y])
+# -> Hardware crypto devices (CRYPTO_HW [=y])
+# Selects: CRYPTO_DEV_CHELSIO [=m]
+#
+#
+#
CONFIG_CHELSIO_TLS_DEVICE=y
diff --git a/configs/fedora/generic/CONFIG_COMMON_CLK b/configs/fedora/generic/CONFIG_COMMON_CLK
new file mode 100644
index 000000000..1b102ee1c
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_COMMON_CLK
@@ -0,0 +1,24 @@
+# CONFIG_COMMON_CLK:
+#
+# The common clock framework is a single definition of struct
+# clk, useful across many platforms, as well as an
+# implementation of the clock API in include/linux/clk.h.
+# Architectures utilizing the common struct clk should select
+# this option.
+#
+# Symbol: COMMON_CLK [=n]
+# Type : bool
+# Defined at drivers/clk/Kconfig:25
+# Prompt: Common Clock Framework
+# Depends on: !HAVE_LEGACY_CLK [=n]
+# Location:
+# -> Device Drivers
+# Selects: HAVE_CLK_PREPARE [=n] && CLKDEV_LOOKUP [=n] && SRCU [=y] && RATIONAL [=n]
+# Selected by [n]:
+# - MFD_INTEL_LPSS [=n] && HAS_IOMEM [=y]
+# - INTEL_ATOMISP [=n] && STAGING [=n] && STAGING_MEDIA [=n] && MEDIA_SUPPORT [=n] && X86 && EFI && PCI [=y] && ACPI
+# - PMC_ATOM [=n] && X86 && PCI [=y]
+#
+#
+#
+CONFIG_COMMON_CLK=y
diff --git a/configs/fedora/generic/CONFIG_COMMON_CLK_MMP2_AUDIO b/configs/fedora/generic/CONFIG_COMMON_CLK_MMP2_AUDIO
new file mode 100644
index 000000000..389b3f04a
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_COMMON_CLK_MMP2_AUDIO
@@ -0,0 +1,16 @@
+# CONFIG_COMMON_CLK_MMP2_AUDIO:
+#
+# This driver supports clocks for Audio subsystem on MMP2 SoC.
+#
+# Symbol: COMMON_CLK_MMP2_AUDIO [=n]
+# Type : tristate
+# Defined at drivers/clk/Kconfig:344
+# Prompt: Clock driver for MMP2 Audio subsystem
+# Depends on: COMMON_CLK [=y] && (COMMON_CLK_MMP2 [=y] || COMPILE_TEST [=n])
+# Location:
+# -> Device Drivers
+# -> Common Clock Framework (COMMON_CLK [=y])
+#
+#
+#
+# CONFIG_COMMON_CLK_MMP2_AUDIO is not set
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_CPU_LITTLE_ENDIAN b/configs/fedora/generic/CONFIG_CPU_LITTLE_ENDIAN
index ee43fdb3b..ee43fdb3b 100644
--- a/configs/fedora/generic/arm/aarch64/CONFIG_CPU_LITTLE_ENDIAN
+++ b/configs/fedora/generic/CONFIG_CPU_LITTLE_ENDIAN
diff --git a/configs/fedora/generic/CONFIG_CRYPTO_BLAKE2B b/configs/fedora/generic/CONFIG_CRYPTO_BLAKE2B
index 13f92b91f..5a978e966 100644
--- a/configs/fedora/generic/CONFIG_CRYPTO_BLAKE2B
+++ b/configs/fedora/generic/CONFIG_CRYPTO_BLAKE2B
@@ -1 +1 @@
-CONFIG_CRYPTO_BLAKE2B=m
+CONFIG_CRYPTO_BLAKE2B=y
diff --git a/configs/fedora/generic/CONFIG_CRYPTO_BLAKE2S_X86 b/configs/fedora/generic/CONFIG_CRYPTO_BLAKE2S_X86
new file mode 100644
index 000000000..7767ca12c
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CRYPTO_BLAKE2S_X86
@@ -0,0 +1 @@
+# CONFIG_CRYPTO_BLAKE2S_X86 is not set
diff --git a/configs/fedora/generic/CONFIG_CRYPTO_BLKCIPHER b/configs/fedora/generic/CONFIG_CRYPTO_BLKCIPHER
new file mode 100644
index 000000000..ba301e0ea
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CRYPTO_BLKCIPHER
@@ -0,0 +1 @@
+CONFIG_CRYPTO_BLKCIPHER=y
diff --git a/configs/fedora/generic/CONFIG_CRYPTO_CURVE25519_X86 b/configs/fedora/generic/CONFIG_CRYPTO_CURVE25519_X86
new file mode 100644
index 000000000..22b552878
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CRYPTO_CURVE25519_X86
@@ -0,0 +1 @@
+# CONFIG_CRYPTO_CURVE25519_X86 is not set
diff --git a/configs/fedora/generic/CONFIG_CRYPTO_DEV_HISI_HPRE b/configs/fedora/generic/CONFIG_CRYPTO_DEV_HISI_HPRE
new file mode 100644
index 000000000..131c89d2a
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CRYPTO_DEV_HISI_HPRE
@@ -0,0 +1 @@
+# CONFIG_CRYPTO_DEV_HISI_HPRE is not set
diff --git a/configs/fedora/generic/CONFIG_CRYPTO_DEV_HISI_SEC2 b/configs/fedora/generic/CONFIG_CRYPTO_DEV_HISI_SEC2
new file mode 100644
index 000000000..92ab7af9e
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CRYPTO_DEV_HISI_SEC2
@@ -0,0 +1 @@
+# CONFIG_CRYPTO_DEV_HISI_SEC2 is not set
diff --git a/configs/fedora/generic/CONFIG_CRYPTO_DEV_OCTEONTX_CPT b/configs/fedora/generic/CONFIG_CRYPTO_DEV_OCTEONTX_CPT
new file mode 100644
index 000000000..a27e4b6a8
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CRYPTO_DEV_OCTEONTX_CPT
@@ -0,0 +1,21 @@
+# CONFIG_CRYPTO_DEV_OCTEONTX_CPT:
+#
+# This driver allows you to utilize the Marvell Cryptographic
+# Accelerator Unit(CPT) found in OcteonTX series of processors.
+#
+# To compile this driver as module, choose M here:
+# the modules will be called octeontx-cpt and octeontx-cptvf
+#
+# Symbol: CRYPTO_DEV_OCTEONTX_CPT [=n]
+# Type : tristate
+# Defined at drivers/crypto/marvell/Kconfig:23
+# Prompt: Support for Marvell OcteonTX CPT driver
+# Depends on: CRYPTO [=y] && CRYPTO_HW [=y] && (ARCH_THUNDER [=y] || COMPILE_TEST [=n]) && PCI_MSI [=y] && 64BIT [=y] && CRYPTO_LIB_AES [=y]
+# Location:
+# -> Cryptographic API (CRYPTO [=y])
+# -> Hardware crypto devices (CRYPTO_HW [=y])
+# Selects: CRYPTO_SKCIPHER [=y] && CRYPTO_HASH [=y] && CRYPTO_AEAD [=y] && CRYPTO_DEV_MARVELL [=n]
+#
+#
+#
+# CONFIG_CRYPTO_DEV_OCTEONTX_CPT is not set
diff --git a/configs/fedora/generic/CONFIG_CRYPTO_POLY1305_NEON b/configs/fedora/generic/CONFIG_CRYPTO_POLY1305_NEON
new file mode 100644
index 000000000..045de8b66
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CRYPTO_POLY1305_NEON
@@ -0,0 +1 @@
+# CONFIG_CRYPTO_POLY1305_NEON is not set
diff --git a/configs/fedora/generic/CONFIG_CRYPTO_SHA512 b/configs/fedora/generic/CONFIG_CRYPTO_SHA512
deleted file mode 100644
index 5c25197e5..000000000
--- a/configs/fedora/generic/CONFIG_CRYPTO_SHA512
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_CRYPTO_SHA512=y
diff --git a/configs/fedora/generic/CONFIG_CRYPTO_XXHASH b/configs/fedora/generic/CONFIG_CRYPTO_XXHASH
index 95c76019f..974554787 100644
--- a/configs/fedora/generic/CONFIG_CRYPTO_XXHASH
+++ b/configs/fedora/generic/CONFIG_CRYPTO_XXHASH
@@ -1 +1 @@
-CONFIG_CRYPTO_XXHASH=m
+CONFIG_CRYPTO_XXHASH=y
diff --git a/configs/fedora/generic/CONFIG_DEBUG_INFO_COMPRESSED b/configs/fedora/generic/CONFIG_DEBUG_INFO_COMPRESSED
new file mode 100644
index 000000000..a12a51893
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DEBUG_INFO_COMPRESSED
@@ -0,0 +1 @@
+# CONFIG_DEBUG_INFO_COMPRESSED is not set
diff --git a/configs/fedora/generic/CONFIG_DEBUG_VM_PGTABLE b/configs/fedora/generic/CONFIG_DEBUG_VM_PGTABLE
new file mode 100644
index 000000000..9f311469e
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DEBUG_VM_PGTABLE
@@ -0,0 +1,24 @@
+# CONFIG_DEBUG_VM_PGTABLE:
+#
+# This option provides a debug method which can be used to test
+# architecture page table helper functions on various platforms in
+# verifying if they comply with expected generic MM semantics. This
+# will help architecture code in making sure that any changes or
+# new additions of these helpers still conform to expected
+# semantics of the generic MM. Platforms will have to opt in for
+# this through ARCH_HAS_DEBUG_VM_PGTABLE.
+#
+# If unsure, say N.
+#
+# Symbol: DEBUG_VM_PGTABLE [=n]
+# Type : bool
+# Defined at lib/Kconfig.debug:702
+# Prompt: Debug arch page table for semantics compliance
+# Depends on: MMU [=y] && ARCH_HAS_DEBUG_VM_PGTABLE [=y]
+# Location:
+# -> Kernel hacking
+# -> Memory Debugging
+#
+#
+#
+# CONFIG_DEBUG_VM_PGTABLE is not set
diff --git a/configs/fedora/generic/arm/CONFIG_DEBUG_WX b/configs/fedora/generic/CONFIG_DEBUG_WX
index 95e08f44b..95e08f44b 100644
--- a/configs/fedora/generic/arm/CONFIG_DEBUG_WX
+++ b/configs/fedora/generic/CONFIG_DEBUG_WX
diff --git a/configs/fedora/generic/CONFIG_DEFAULT_INIT b/configs/fedora/generic/CONFIG_DEFAULT_INIT
new file mode 100644
index 000000000..e49f35c9c
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DEFAULT_INIT
@@ -0,0 +1,18 @@
+# CONFIG_DEFAULT_INIT:
+#
+# This option determines the default init for the system if no init=
+# option is passed on the kernel command line. If the requested path is
+# not present, we will still then move on to attempting further
+# locations (e.g. /sbin/init, etc). If this is empty, we will just use
+# the fallback list when init= is not passed.
+#
+# Symbol: DEFAULT_INIT [=]
+# Type : string
+# Defined at init/Kconfig:267
+# Prompt: Default init path
+# Location:
+# -> General setup
+#
+#
+#
+CONFIG_DEFAULT_INIT=""
diff --git a/configs/fedora/generic/CONFIG_DMABUF_HEAPS b/configs/fedora/generic/CONFIG_DMABUF_HEAPS
index 06c5f4cf1..f4f69ff9b 100644
--- a/configs/fedora/generic/CONFIG_DMABUF_HEAPS
+++ b/configs/fedora/generic/CONFIG_DMABUF_HEAPS
@@ -1 +1 @@
-# CONFIG_DMABUF_HEAPS is not set
+CONFIG_DMABUF_HEAPS=y
diff --git a/configs/fedora/generic/CONFIG_DMABUF_HEAPS_CMA b/configs/fedora/generic/CONFIG_DMABUF_HEAPS_CMA
new file mode 100644
index 000000000..0173e7c19
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DMABUF_HEAPS_CMA
@@ -0,0 +1,19 @@
+# CONFIG_DMABUF_HEAPS_CMA:
+#
+# Choose this option to enable dma-buf CMA heap. This heap is backed
+# by the Contiguous Memory Allocator (CMA). If your system has these
+# regions, you should say Y here.
+#
+# Symbol: DMABUF_HEAPS_CMA [=n]
+# Type : bool
+# Defined at drivers/dma-buf/heaps/Kconfig:8
+# Prompt: DMA-BUF CMA Heap
+# Depends on: DMABUF_HEAPS [=y] && DMA_CMA [=y]
+# Location:
+# -> Device Drivers
+# -> DMABUF options
+# -> DMA-BUF Userland Memory Heaps (DMABUF_HEAPS [=y])
+#
+#
+#
+CONFIG_DMABUF_HEAPS_CMA=y
diff --git a/configs/fedora/generic/CONFIG_DMABUF_HEAPS_SYSTEM b/configs/fedora/generic/CONFIG_DMABUF_HEAPS_SYSTEM
new file mode 100644
index 000000000..fe2294a4f
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DMABUF_HEAPS_SYSTEM
@@ -0,0 +1,18 @@
+# CONFIG_DMABUF_HEAPS_SYSTEM:
+#
+# Choose this option to enable the system dmabuf heap. The system heap
+# is backed by pages from the buddy allocator. If in doubt, say Y.
+#
+# Symbol: DMABUF_HEAPS_SYSTEM [=n]
+# Type : bool
+# Defined at drivers/dma-buf/heaps/Kconfig:1
+# Prompt: DMA-BUF System Heap
+# Depends on: DMABUF_HEAPS [=y]
+# Location:
+# -> Device Drivers
+# -> DMABUF options
+# -> DMA-BUF Userland Memory Heaps (DMABUF_HEAPS [=y])
+#
+#
+#
+CONFIG_DMABUF_HEAPS_SYSTEM=y
diff --git a/configs/fedora/generic/CONFIG_DM_EBS b/configs/fedora/generic/CONFIG_DM_EBS
new file mode 100644
index 000000000..ee5e77fae
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DM_EBS
@@ -0,0 +1,19 @@
+# CONFIG_DM_EBS:
+#
+# dm-ebs emulates smaller logical block size on backing devices
+# with larger ones (e.g. 512 byte sectors on 4K native disks).
+#
+# Symbol: DM_EBS [=n]
+# Type : tristate
+# Defined at drivers/md/Kconfig:340
+# Prompt: Emulated block size target (EXPERIMENTAL)
+# Depends on: MD [=y] && BLK_DEV_DM [=y]
+# Location:
+# -> Device Drivers
+# -> Multiple devices driver support (RAID and LVM) (MD [=y])
+# -> Device mapper support (BLK_DEV_DM [=y])
+# Selects: DM_BUFIO [=y]
+#
+#
+#
+CONFIG_DM_EBS=m
diff --git a/configs/fedora/generic/CONFIG_DM_MULTIPATH_HST b/configs/fedora/generic/CONFIG_DM_MULTIPATH_HST
new file mode 100644
index 000000000..33b24c2e0
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DM_MULTIPATH_HST
@@ -0,0 +1,23 @@
+# CONFIG_DM_MULTIPATH_HST:
+#
+# This path selector is a dynamic load balancer which selects
+# the path expected to complete the incoming I/O in the shortest
+# time by comparing estimated service time (based on historical
+# service time).
+#
+# If unsure, say N.
+#
+# Symbol: DM_MULTIPATH_HST [=n]
+# Type : tristate
+# Defined at drivers/md/Kconfig:455
+# Prompt: I/O Path Selector based on historical service time
+# Depends on: MD [=y] && DM_MULTIPATH [=m]
+# Location:
+# -> Device Drivers
+# -> Multiple devices driver support (RAID and LVM) (MD [=y])
+# -> Device mapper support (BLK_DEV_DM [=y])
+# -> Multipath target (DM_MULTIPATH [=m])
+#
+#
+#
+CONFIG_DM_MULTIPATH_HST=m
diff --git a/configs/fedora/generic/CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG b/configs/fedora/generic/CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG
index 4d2da6ce4..e18a99fb3 100644
--- a/configs/fedora/generic/CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG
+++ b/configs/fedora/generic/CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG
@@ -1 +1 @@
-# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set
+CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG=y
diff --git a/configs/fedora/generic/x86/CONFIG_DRM_AMD_DC_DCN2_0 b/configs/fedora/generic/CONFIG_DRM_AMD_DC_DCN2_0
index 6dd660a6d..6dd660a6d 100644
--- a/configs/fedora/generic/x86/CONFIG_DRM_AMD_DC_DCN2_0
+++ b/configs/fedora/generic/CONFIG_DRM_AMD_DC_DCN2_0
diff --git a/configs/fedora/generic/x86/CONFIG_DRM_AMD_DC_DSC_SUPPORT b/configs/fedora/generic/CONFIG_DRM_AMD_DC_DSC_SUPPORT
index 94442b2a5..94442b2a5 100644
--- a/configs/fedora/generic/x86/CONFIG_DRM_AMD_DC_DSC_SUPPORT
+++ b/configs/fedora/generic/CONFIG_DRM_AMD_DC_DSC_SUPPORT
diff --git a/configs/fedora/generic/CONFIG_DRM_CHRONTEL_CH7033 b/configs/fedora/generic/CONFIG_DRM_CHRONTEL_CH7033
new file mode 100644
index 000000000..77e5139cb
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DRM_CHRONTEL_CH7033
@@ -0,0 +1,21 @@
+# CONFIG_DRM_CHRONTEL_CH7033:
+#
+# Enable support for the Chrontel CH7033 VGA/DVI/HDMI Encoder, as
+# found in the Dell Wyse 3020 thin client.
+#
+# If in doubt, say "N".
+#
+# Symbol: DRM_CHRONTEL_CH7033 [=n]
+# Type : tristate
+# Defined at drivers/gpu/drm/bridge/Kconfig:30
+# Prompt: Chrontel CH7033 Video Encoder
+# Depends on: HAS_IOMEM [=y] && DRM [=m] && DRM_BRIDGE [=y] && OF [=y]
+# Location:
+# -> Device Drivers
+# -> Graphics support
+# -> Display Interface Bridges
+# Selects: DRM_KMS_HELPER [=m]
+#
+#
+#
+CONFIG_DRM_CHRONTEL_CH7033=m
diff --git a/configs/fedora/generic/CONFIG_DRM_DP_CEC b/configs/fedora/generic/CONFIG_DRM_DP_CEC
index f0dbdcca2..5f9b38555 100644
--- a/configs/fedora/generic/CONFIG_DRM_DP_CEC
+++ b/configs/fedora/generic/CONFIG_DRM_DP_CEC
@@ -1 +1 @@
-# CONFIG_DRM_DP_CEC is not set
+CONFIG_DRM_DP_CEC=y
diff --git a/configs/fedora/generic/CONFIG_DRM_LVDS_ENCODER b/configs/fedora/generic/CONFIG_DRM_LVDS_ENCODER
new file mode 100644
index 000000000..e2ea277b3
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DRM_LVDS_ENCODER
@@ -0,0 +1 @@
+# CONFIG_DRM_LVDS_ENCODER is not set
diff --git a/configs/fedora/generic/CONFIG_DRM_NWL_MIPI_DSI b/configs/fedora/generic/CONFIG_DRM_NWL_MIPI_DSI
new file mode 100644
index 000000000..6f4e4e857
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DRM_NWL_MIPI_DSI
@@ -0,0 +1 @@
+# CONFIG_DRM_NWL_MIPI_DSI is not set
diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_ARM_VERSATILE b/configs/fedora/generic/CONFIG_DRM_PANEL_ARM_VERSATILE
new file mode 100644
index 000000000..f5ffd8d31
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DRM_PANEL_ARM_VERSATILE
@@ -0,0 +1 @@
+# CONFIG_DRM_PANEL_ARM_VERSATILE is not set
diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 b/configs/fedora/generic/CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596
new file mode 100644
index 000000000..848c00fc5
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596
@@ -0,0 +1,19 @@
+# CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596:
+#
+# Say Y here if you want to enable support for the ASUS TMP5P5
+# NT35596 1080x1920 video mode panel as found in some Asus
+# Zenfone 2 Laser Z00T devices.
+#
+# Symbol: DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 [=n]
+# Type : tristate
+# Defined at drivers/gpu/drm/panel/Kconfig:21
+# Prompt: ASUS Z00T TM5P5 NT35596 panel
+# Depends on: HAS_IOMEM [=y] && DRM [=m] && DRM_PANEL [=y] && GPIOLIB [=y] && OF [=y] && DRM_MIPI_DSI [=y] && BACKLIGHT_CLASS_DEVICE [=y]
+# Location:
+# -> Device Drivers
+# -> Graphics support
+# -> Display Panels
+#
+#
+#
+# CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 is not set
diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W b/configs/fedora/generic/CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W
new file mode 100644
index 000000000..94f7279db
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W
@@ -0,0 +1,20 @@
+# CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W:
+#
+# Say Y here if you want to enable support for Leadtek LTK050H3146W
+# TFT-LCD modules. The panel has a 720x1280 resolution and uses
+# 24 bit RGB per pixel. It provides a MIPI DSI interface to
+# the host and has a built-in LED backlight.
+#
+# Symbol: DRM_PANEL_LEADTEK_LTK050H3146W [=n]
+# Type : tristate
+# Defined at drivers/gpu/drm/panel/Kconfig:150
+# Prompt: Leadtek LTK050H3146W panel
+# Depends on: HAS_IOMEM [=y] && DRM [=m] && DRM_PANEL [=y] && OF [=y] && DRM_MIPI_DSI [=y] && BACKLIGHT_CLASS_DEVICE [=y]
+# Location:
+# -> Device Drivers
+# -> Graphics support
+# -> Display Panels
+#
+#
+#
+# CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W is not set
diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_ROCKTECH_JH057N00900 b/configs/fedora/generic/CONFIG_DRM_PANEL_ROCKTECH_JH057N00900
new file mode 100644
index 000000000..070c7734f
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DRM_PANEL_ROCKTECH_JH057N00900
@@ -0,0 +1 @@
+CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m
diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_SITRONIX_ST7703 b/configs/fedora/generic/CONFIG_DRM_PANEL_SITRONIX_ST7703
index aa14cabc0..f518598bb 100644
--- a/configs/fedora/generic/CONFIG_DRM_PANEL_SITRONIX_ST7703
+++ b/configs/fedora/generic/CONFIG_DRM_PANEL_SITRONIX_ST7703
@@ -1 +1 @@
-CONFIG_DRM_PANEL_SITRONIX_ST7703=m
+# CONFIG_DRM_PANEL_SITRONIX_ST7703 is not set
diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_VISIONOX_RM69299 b/configs/fedora/generic/CONFIG_DRM_PANEL_VISIONOX_RM69299
new file mode 100644
index 000000000..4275adab8
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DRM_PANEL_VISIONOX_RM69299
@@ -0,0 +1,18 @@
+# CONFIG_DRM_PANEL_VISIONOX_RM69299:
+#
+# Say Y here if you want to enable support for Visionox
+# RM69299 DSI Video Mode panel.
+#
+# Symbol: DRM_PANEL_VISIONOX_RM69299 [=n]
+# Type : tristate
+# Defined at drivers/gpu/drm/panel/Kconfig:457
+# Prompt: Visionox RM69299
+# Depends on: HAS_IOMEM [=y] && DRM [=m] && DRM_PANEL [=y] && OF [=y] && DRM_MIPI_DSI [=y]
+# Location:
+# -> Device Drivers
+# -> Graphics support
+# -> Display Panels
+#
+#
+#
+CONFIG_DRM_PANEL_VISIONOX_RM69299=m
diff --git a/configs/fedora/generic/CONFIG_DWMAC_IMX8 b/configs/fedora/generic/CONFIG_DWMAC_IMX8
new file mode 100644
index 000000000..b644971dd
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DWMAC_IMX8
@@ -0,0 +1,25 @@
+# CONFIG_DWMAC_IMX8:
+#
+# Support for ethernet controller on NXP i.MX8 SOCs.
+#
+# This selects NXP SoC glue layer support for the stmmac
+# device driver. This driver is used for i.MX8 series like
+# iMX8MP/iMX8DXL GMAC ethernet controller.
+#
+# Symbol: DWMAC_IMX8 [=m]
+# Type : tristate
+# Defined at drivers/net/ethernet/stmicro/stmmac/Kconfig:200
+# Prompt: NXP IMX8 DWMAC support
+# Depends on: NETDEVICES [=y] && ETHERNET [=y] && NET_VENDOR_STMICRO [=y] && STMMAC_ETH [=m] && STMMAC_PLATFORM [=m] && OF [=y] && (ARCH_MXC [=y] || COMPILE_TEST [=n])
+# Location:
+# -> Device Drivers
+# -> Network device support (NETDEVICES [=y])
+# -> Ethernet driver support (ETHERNET [=y])
+# -> STMicroelectronics devices (NET_VENDOR_STMICRO [=y])
+# -> STMicroelectronics Multi-Gigabit Ethernet driver (STMMAC_ETH [=m])
+# -> STMMAC Platform bus support (STMMAC_PLATFORM [=m])
+# Selects: MFD_SYSCON [=y]
+#
+#
+#
+CONFIG_DWMAC_IMX8=m
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_EDAC_DMC520 b/configs/fedora/generic/CONFIG_EDAC_DMC520
index 691d534c5..691d534c5 100644
--- a/configs/fedora/generic/arm/aarch64/CONFIG_EDAC_DMC520
+++ b/configs/fedora/generic/CONFIG_EDAC_DMC520
diff --git a/configs/fedora/generic/CONFIG_EFI_CUSTOM_SSDT_OVERLAYS b/configs/fedora/generic/CONFIG_EFI_CUSTOM_SSDT_OVERLAYS
new file mode 100644
index 000000000..d96a45178
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_EFI_CUSTOM_SSDT_OVERLAYS
@@ -0,0 +1,19 @@
+# CONFIG_EFI_CUSTOM_SSDT_OVERLAYS:
+#
+# Allow loading of an ACPI SSDT overlay from an EFI variable specified
+# by a kernel command line option.
+#
+# See Documentation/admin-guide/acpi/ssdt-overlays.rst for more
+# information.
+#
+# Symbol: EFI_CUSTOM_SSDT_OVERLAYS [=y]
+# Type : bool
+# Defined at drivers/firmware/efi/Kconfig:282
+# Prompt: Load custom ACPI SSDT overlay from an EFI variable
+# Depends on: EFI_VARS [=y] && ACPI [=y]
+# Location:
+# -> Firmware Drivers
+#
+#
+#
+# CONFIG_EFI_CUSTOM_SSDT_OVERLAYS is not set
diff --git a/configs/fedora/generic/CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER b/configs/fedora/generic/CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER
new file mode 100644
index 000000000..5c373663f
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER
@@ -0,0 +1,21 @@
+# CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER:
+#
+# Select this config option to add support for the initrd= command
+# line parameter, allowing an initrd that resides on the same volume
+# as the kernel image to be loaded into memory.
+#
+# This method is deprecated.
+#
+# Symbol: EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER [=y]
+# Type : bool
+# Defined at drivers/firmware/efi/Kconfig:127
+# Prompt: Enable the command line initrd loader
+# Depends on: EFI [=y] && EFI_STUB [=y] && (EFI_GENERIC_STUB [=y] || X86)
+# Visible if: EFI [=y] && EFI_STUB [=y] && (EFI_GENERIC_STUB [=y] || X86) && !X86
+# Location:
+# -> Firmware Drivers
+# -> EFI (Extensible Firmware Interface) Support
+#
+#
+#
+CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_EXTCON_QCOM_SPMI_MISC b/configs/fedora/generic/CONFIG_EXTCON_QCOM_SPMI_MISC
index 5f2508da3..5f2508da3 100644
--- a/configs/fedora/generic/arm/aarch64/CONFIG_EXTCON_QCOM_SPMI_MISC
+++ b/configs/fedora/generic/CONFIG_EXTCON_QCOM_SPMI_MISC
diff --git a/configs/fedora/generic/CONFIG_F2FS_FS_LZORLE b/configs/fedora/generic/CONFIG_F2FS_FS_LZORLE
new file mode 100644
index 000000000..39bf1b307
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_F2FS_FS_LZORLE
@@ -0,0 +1,18 @@
+# CONFIG_F2FS_FS_LZORLE:
+#
+# Support LZO-RLE compress algorithm, if unsure, say Y.
+#
+# Symbol: F2FS_FS_LZORLE [=y]
+# Type : bool
+# Defined at fs/f2fs/Kconfig:131
+# Prompt: LZO-RLE compression support
+# Depends on: BLOCK [=y] && F2FS_FS_COMPRESSION [=y] && F2FS_FS_LZO [=y]
+# Location:
+# -> File systems
+# -> F2FS filesystem support (F2FS_FS [=m])
+# -> F2FS compression feature (F2FS_FS_COMPRESSION [=y])
+# Selects: LZO_COMPRESS [=y] && LZO_DECOMPRESS [=y]
+#
+#
+#
+CONFIG_F2FS_FS_LZORLE=y
diff --git a/configs/fedora/generic/CONFIG_FLATMEM_MANUAL b/configs/fedora/generic/CONFIG_FLATMEM_MANUAL
new file mode 100644
index 000000000..0c149e927
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_FLATMEM_MANUAL
@@ -0,0 +1,25 @@
+# CONFIG_FLATMEM_MANUAL:
+#
+# This option is best suited for non-NUMA systems with
+# flat address space. The FLATMEM is the most efficient
+# system in terms of performance and resource consumption
+# and it is the best option for smaller systems.
+#
+# For systems that have holes in their physical address
+# spaces and for features like NUMA and memory hotplug,
+# choose "Sparse Memory".
+#
+# If unsure, choose this option (Flat Memory) over any other.
+#
+# Symbol: FLATMEM_MANUAL [=n]
+# Type : bool
+# Defined at mm/Kconfig:21
+# Prompt: Flat Memory
+# Depends on: <choice> && (!ARCH_DISCONTIGMEM_ENABLE && !ARCH_SPARSEMEM_ENABLE [=y] || ARCH_FLATMEM_ENABLE [=y])
+# Location:
+# -> Memory Management options
+# -> Memory model (<choice> [=y])
+#
+#
+#
+# CONFIG_FLATMEM_MANUAL is not set
diff --git a/configs/fedora/generic/CONFIG_FRAME_WARN b/configs/fedora/generic/CONFIG_FRAME_WARN
index ca907a00b..6826578df 100644
--- a/configs/fedora/generic/CONFIG_FRAME_WARN
+++ b/configs/fedora/generic/CONFIG_FRAME_WARN
@@ -1 +1 @@
-CONFIG_FRAME_WARN=1024
+CONFIG_FRAME_WARN=2048
diff --git a/configs/fedora/generic/CONFIG_FSL_RCPM b/configs/fedora/generic/CONFIG_FSL_RCPM
new file mode 100644
index 000000000..aab0d456e
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_FSL_RCPM
@@ -0,0 +1 @@
+# CONFIG_FSL_RCPM is not set
diff --git a/configs/fedora/generic/CONFIG_GIGASET_BASE b/configs/fedora/generic/CONFIG_GIGASET_BASE
new file mode 100644
index 000000000..fa7bb4bea
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_GIGASET_BASE
@@ -0,0 +1 @@
+CONFIG_GIGASET_BASE=m
diff --git a/configs/fedora/generic/CONFIG_GIGASET_CAPI b/configs/fedora/generic/CONFIG_GIGASET_CAPI
new file mode 100644
index 000000000..b94738045
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_GIGASET_CAPI
@@ -0,0 +1 @@
+CONFIG_GIGASET_CAPI=y
diff --git a/configs/fedora/generic/CONFIG_GIGASET_DEBUG b/configs/fedora/generic/CONFIG_GIGASET_DEBUG
new file mode 100644
index 000000000..95c9cd104
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_GIGASET_DEBUG
@@ -0,0 +1 @@
+# CONFIG_GIGASET_DEBUG is not set
diff --git a/configs/fedora/generic/CONFIG_GIGASET_M101 b/configs/fedora/generic/CONFIG_GIGASET_M101
new file mode 100644
index 000000000..10388d0a9
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_GIGASET_M101
@@ -0,0 +1 @@
+CONFIG_GIGASET_M101=m
diff --git a/configs/fedora/generic/CONFIG_GIGASET_M105 b/configs/fedora/generic/CONFIG_GIGASET_M105
new file mode 100644
index 000000000..cf3d1db9f
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_GIGASET_M105
@@ -0,0 +1 @@
+CONFIG_GIGASET_M105=m
diff --git a/configs/fedora/generic/CONFIG_GPIO_AGGREGATOR b/configs/fedora/generic/CONFIG_GPIO_AGGREGATOR
new file mode 100644
index 000000000..873288c62
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_GPIO_AGGREGATOR
@@ -0,0 +1,23 @@
+# CONFIG_GPIO_AGGREGATOR:
+#
+# Say yes here to enable the GPIO Aggregator, which provides a way to
+# aggregate existing GPIO lines into a new virtual GPIO chip.
+# This can serve the following purposes:
+# - Assign permissions for a collection of GPIO lines to a user,
+# - Export a collection of GPIO lines to a virtual machine,
+# - Provide a generic driver for a GPIO-operated device in an
+# industrial control context, to be operated from userspace using
+# the GPIO chardev interface.
+#
+# Symbol: GPIO_AGGREGATOR [=n]
+# Type : tristate
+# Defined at drivers/gpio/Kconfig:1548
+# Prompt: GPIO Aggregator
+# Depends on: GPIOLIB [=y]
+# Location:
+# -> Device Drivers
+# -> GPIO Support (GPIOLIB [=y])
+#
+#
+#
+CONFIG_GPIO_AGGREGATOR=m
diff --git a/configs/fedora/generic/CONFIG_GPIO_BCM_XGS_IPROC b/configs/fedora/generic/CONFIG_GPIO_BCM_XGS_IPROC
new file mode 100644
index 000000000..ddd521a75
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_GPIO_BCM_XGS_IPROC
@@ -0,0 +1 @@
+# CONFIG_GPIO_BCM_XGS_IPROC is not set
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_GPIO_MLXBF2 b/configs/fedora/generic/CONFIG_GPIO_MLXBF2
index 127a1ffa2..127a1ffa2 100644
--- a/configs/fedora/generic/arm/aarch64/CONFIG_GPIO_MLXBF2
+++ b/configs/fedora/generic/CONFIG_GPIO_MLXBF2
diff --git a/configs/fedora/generic/CONFIG_GPIO_PCA953X_IRQ b/configs/fedora/generic/CONFIG_GPIO_PCA953X_IRQ
new file mode 100644
index 000000000..ea752dc52
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_GPIO_PCA953X_IRQ
@@ -0,0 +1 @@
+# CONFIG_GPIO_PCA953X_IRQ is not set
diff --git a/configs/fedora/generic/CONFIG_GPIO_SYSCON b/configs/fedora/generic/CONFIG_GPIO_SYSCON
new file mode 100644
index 000000000..714d52d62
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_GPIO_SYSCON
@@ -0,0 +1 @@
+# CONFIG_GPIO_SYSCON is not set
diff --git a/configs/fedora/generic/CONFIG_HEADERS_CHECK b/configs/fedora/generic/CONFIG_HEADERS_CHECK
new file mode 100644
index 000000000..0658b1fce
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_HEADERS_CHECK
@@ -0,0 +1 @@
+CONFIG_HEADERS_CHECK=y
diff --git a/configs/fedora/generic/CONFIG_HEADER_TEST b/configs/fedora/generic/CONFIG_HEADER_TEST
new file mode 100644
index 000000000..bcdd8b485
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_HEADER_TEST
@@ -0,0 +1 @@
+CONFIG_HEADER_TEST=y
diff --git a/configs/fedora/generic/CONFIG_HIBERNATION_SNAPSHOT_DEV b/configs/fedora/generic/CONFIG_HIBERNATION_SNAPSHOT_DEV
new file mode 100644
index 000000000..c4627aa7e
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_HIBERNATION_SNAPSHOT_DEV
@@ -0,0 +1 @@
+CONFIG_HIBERNATION_SNAPSHOT_DEV=y
diff --git a/configs/fedora/generic/CONFIG_HISI_DMA b/configs/fedora/generic/CONFIG_HISI_DMA
new file mode 100644
index 000000000..57350600f
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_HISI_DMA
@@ -0,0 +1 @@
+# CONFIG_HISI_DMA is not set
diff --git a/configs/fedora/generic/CONFIG_HIST_TRIGGERS_DEBUG b/configs/fedora/generic/CONFIG_HIST_TRIGGERS_DEBUG
new file mode 100644
index 000000000..7634345b6
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_HIST_TRIGGERS_DEBUG
@@ -0,0 +1,33 @@
+# CONFIG_HIST_TRIGGERS_DEBUG:
+#
+# Add "hist_debug" file for each event, which when read will
+# dump out a bunch of internal details about the hist triggers
+# defined on that event.
+#
+# The hist_debug file serves a couple of purposes:
+#
+# - Helps developers verify that nothing is broken.
+#
+# - Provides educational information to support the details
+# of the hist trigger internals as described by
+# Documentation/trace/histogram-design.rst.
+#
+# The hist_debug output only covers the data structures
+# related to the histogram definitions themselves and doesn't
+# display the internals of map buckets or variable values of
+# running histograms.
+#
+# If unsure, say N.
+#
+# Symbol: HIST_TRIGGERS_DEBUG [=n]
+# Type : bool
+# Defined at kernel/trace/Kconfig:850
+# Prompt: Hist trigger debug support
+# Depends on: TRACING_SUPPORT [=y] && FTRACE [=y] && HIST_TRIGGERS [=y]
+# Location:
+# -> Kernel hacking
+# -> Tracers (FTRACE [=y])
+#
+#
+#
+# CONFIG_HIST_TRIGGERS_DEBUG is not set
diff --git a/configs/fedora/generic/CONFIG_HW_RANDOM_CCTRNG b/configs/fedora/generic/CONFIG_HW_RANDOM_CCTRNG
new file mode 100644
index 000000000..97f5363c7
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_HW_RANDOM_CCTRNG
@@ -0,0 +1 @@
+# CONFIG_HW_RANDOM_CCTRNG is not set
diff --git a/configs/fedora/generic/x86/CONFIG_HYPERV_TESTING b/configs/fedora/generic/CONFIG_HYPERV_TESTING
index d763bef97..d763bef97 100644
--- a/configs/fedora/generic/x86/CONFIG_HYPERV_TESTING
+++ b/configs/fedora/generic/CONFIG_HYPERV_TESTING
diff --git a/configs/fedora/generic/CONFIG_HYSDN b/configs/fedora/generic/CONFIG_HYSDN
new file mode 100644
index 000000000..2f1ddde6c
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_HYSDN
@@ -0,0 +1 @@
+CONFIG_HYSDN=m
diff --git a/configs/fedora/generic/CONFIG_HYSDN_CAPI b/configs/fedora/generic/CONFIG_HYSDN_CAPI
new file mode 100644
index 000000000..db9a861ab
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_HYSDN_CAPI
@@ -0,0 +1 @@
+CONFIG_HYSDN_CAPI=y
diff --git a/configs/fedora/generic/CONFIG_I2C_QCOM_CCI b/configs/fedora/generic/CONFIG_I2C_QCOM_CCI
new file mode 100644
index 000000000..b66c46744
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_I2C_QCOM_CCI
@@ -0,0 +1 @@
+# CONFIG_I2C_QCOM_CCI is not set
diff --git a/configs/fedora/generic/CONFIG_ICST b/configs/fedora/generic/CONFIG_ICST
new file mode 100644
index 000000000..f1c4cbd99
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_ICST
@@ -0,0 +1,20 @@
+# CONFIG_ICST:
+#
+# Supports clocking on ARM Reference designs:
+# - Integrator/AP and Integrator/CP
+# - RealView PB1176, EB, PB11MP and PBX
+#
+# Symbol: ICST [=n]
+# Type : bool
+# Defined at drivers/clk/versatile/Kconfig:7
+# Prompt: Clock driver for ARM Reference designs ICST
+# Depends on: COMMON_CLK [=y] && (ARCH_INTEGRATOR || ARCH_REALVIEW || ARCH_VERSATILE || ARCH_VEXPRESS [=y] || COMPILE_TEST [=n])
+# Location:
+# -> Device Drivers
+# -> Common Clock Framework
+# -> Clock driver for ARM Reference designs
+# Selects: REGMAP_MMIO [=y]
+#
+#
+#
+# CONFIG_ICST is not set
diff --git a/configs/fedora/generic/CONFIG_INET6_ESPINTCP b/configs/fedora/generic/CONFIG_INET6_ESPINTCP
new file mode 100644
index 000000000..50485ce44
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_INET6_ESPINTCP
@@ -0,0 +1,23 @@
+# CONFIG_INET6_ESPINTCP:
+#
+# Support for RFC 8229 encapsulation of ESP and IKE over
+# TCP/IPv6 sockets.
+#
+# If unsure, say N.
+#
+# Symbol: INET6_ESPINTCP [=n]
+# Type : bool
+# Defined at net/ipv6/Kconfig:91
+# Prompt: IPv6: ESP in TCP encapsulation (RFC 8229)
+# Depends on: NET [=y] && INET [=y] && IPV6 [=y] && XFRM [=y] && INET6_ESP [=m]
+# Location:
+# -> Networking support (NET [=y])
+# -> Networking options
+# -> TCP/IP networking (INET [=y])
+# -> The IPv6 protocol (IPV6 [=y])
+# -> IPv6: ESP transformation (INET6_ESP [=m])
+# Selects: STREAM_PARSER [=y] && NET_SOCK_MSG [=y] && XFRM_ESPINTCP [=y]
+#
+#
+#
+CONFIG_INET6_ESPINTCP=y
diff --git a/configs/fedora/generic/CONFIG_INFINIBAND_RTRS_CLIENT b/configs/fedora/generic/CONFIG_INFINIBAND_RTRS_CLIENT
new file mode 100644
index 000000000..5d438a4cb
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_INFINIBAND_RTRS_CLIENT
@@ -0,0 +1,21 @@
+# CONFIG_INFINIBAND_RTRS_CLIENT:
+#
+# RDMA transport client module.
+#
+# RDMA Transport (RTRS) client implements a reliable transport layer
+# and also multipathing functionality and that it is intended to be
+# the base layer for a block storage initiator over RDMA.
+#
+# Symbol: INFINIBAND_RTRS_CLIENT [=n]
+# Type : tristate
+# Defined at drivers/infiniband/ulp/rtrs/Kconfig:7
+# Prompt: RTRS client module
+# Depends on: INFINIBAND [=m] && INFINIBAND_ADDR_TRANS [=y]
+# Location:
+# -> Device Drivers
+# -> InfiniBand support (INFINIBAND [=m])
+# Selects: INFINIBAND_RTRS [=n]
+#
+#
+#
+CONFIG_INFINIBAND_RTRS_CLIENT=m
diff --git a/configs/fedora/generic/CONFIG_INFINIBAND_RTRS_SERVER b/configs/fedora/generic/CONFIG_INFINIBAND_RTRS_SERVER
new file mode 100644
index 000000000..30fe516f4
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_INFINIBAND_RTRS_SERVER
@@ -0,0 +1,21 @@
+# CONFIG_INFINIBAND_RTRS_SERVER:
+#
+# RDMA transport server module.
+#
+# RDMA Transport (RTRS) server module processing connection and IO
+# requests received from the RTRS client module, it will pass the
+# IO requests to its user eg. RNBD_server.
+#
+# Symbol: INFINIBAND_RTRS_SERVER [=n]
+# Type : tristate
+# Defined at drivers/infiniband/ulp/rtrs/Kconfig:18
+# Prompt: RTRS server module
+# Depends on: INFINIBAND [=m] && INFINIBAND_ADDR_TRANS [=y]
+# Location:
+# -> Device Drivers
+# -> InfiniBand support (INFINIBAND [=m])
+# Selects: INFINIBAND_RTRS [=n]
+#
+#
+#
+CONFIG_INFINIBAND_RTRS_SERVER=m
diff --git a/configs/fedora/generic/CONFIG_INPUT_FF_MEMLESS b/configs/fedora/generic/CONFIG_INPUT_FF_MEMLESS
index 817e3e1ed..f3633927e 100644
--- a/configs/fedora/generic/CONFIG_INPUT_FF_MEMLESS
+++ b/configs/fedora/generic/CONFIG_INPUT_FF_MEMLESS
@@ -1 +1,2 @@
+# CONFIG_INPUT_FF_MEMLESS is selected as a module by CONFIG_HID_BETOP_FF
CONFIG_INPUT_FF_MEMLESS=m
diff --git a/configs/fedora/generic/CONFIG_INPUT_IQS269A b/configs/fedora/generic/CONFIG_INPUT_IQS269A
new file mode 100644
index 000000000..fc8eb94c6
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_INPUT_IQS269A
@@ -0,0 +1,23 @@
+# CONFIG_INPUT_IQS269A:
+#
+# Say Y to enable support for the Azoteq IQS269A capacitive
+# touch controller.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called iqs269a.
+#
+# Symbol: INPUT_IQS269A [=n]
+# Type : tristate
+# Defined at drivers/input/misc/Kconfig:721
+# Prompt: Azoteq IQS269A capacitive touch controller
+# Depends on: !UML && INPUT [=y] && INPUT_MISC [=y] && I2C [=y]
+# Location:
+# -> Device Drivers
+# -> Input device support
+# -> Generic input layer (needed for keyboard, mouse, ...) (INPUT [=y])
+# -> Miscellaneous devices (INPUT_MISC [=y])
+# Selects: REGMAP_I2C [=y]
+#
+#
+#
+CONFIG_INPUT_IQS269A=m
diff --git a/configs/fedora/generic/x86/x86_64/CONFIG_INTEL_IDXD b/configs/fedora/generic/CONFIG_INTEL_IDXD
index 5ca68a398..5ca68a398 100644
--- a/configs/fedora/generic/x86/x86_64/CONFIG_INTEL_IDXD
+++ b/configs/fedora/generic/CONFIG_INTEL_IDXD
diff --git a/configs/fedora/generic/CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON b/configs/fedora/generic/CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON
new file mode 100644
index 000000000..1b7327cec
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON
@@ -0,0 +1 @@
+# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
diff --git a/configs/fedora/generic/CONFIG_INTEL_SCU_PCI b/configs/fedora/generic/CONFIG_INTEL_SCU_PCI
new file mode 100644
index 000000000..6accffa2c
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_INTEL_SCU_PCI
@@ -0,0 +1,27 @@
+# CONFIG_INTEL_SCU_PCI:
+#
+# This driver is used to bridge the communications between kernel
+# and SCU on some embedded Intel x86 platforms. It also creates
+# devices that are connected to the SoC through the SCU.
+# Platforms supported:
+# Medfield
+# Clovertrail
+# Merrifield
+# Broxton
+# Apollo Lake
+#
+# Symbol: INTEL_SCU_PCI [=n]
+# Type : bool
+# Defined at drivers/platform/x86/Kconfig:1354
+# Prompt: Intel SCU PCI driver
+# Depends on: X86 [=y] && X86_PLATFORM_DEVICES [=y] && PCI [=y]
+# Location:
+# -> Device Drivers
+# -> X86 Platform Specific Device Drivers (X86_PLATFORM_DEVICES [=y])
+# Selects: INTEL_SCU [=n]
+# Selected by [n]:
+# - X86_INTEL_MID [=n] && X86_EXTENDED_PLATFORM [=y] && X86_PLATFORM_DEVICES [=y] && PCI [=y] && (X86_64 [=y] || PCI_GOANY [=n] && X86_32 [=n]) && X86_IO_APIC [=y]
+#
+#
+#
+# CONFIG_INTEL_SCU_PCI is not set
diff --git a/configs/fedora/generic/CONFIG_INTEL_SCU_PLATFORM b/configs/fedora/generic/CONFIG_INTEL_SCU_PLATFORM
new file mode 100644
index 000000000..0e96047ab
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_INTEL_SCU_PLATFORM
@@ -0,0 +1,19 @@
+# CONFIG_INTEL_SCU_PLATFORM:
+#
+# This driver is used to bridge the communications between kernel
+# and SCU (sometimes called PMC as well). The driver currently
+# supports Intel Elkhart Lake and compatible platforms.
+#
+# Symbol: INTEL_SCU_PLATFORM [=n]
+# Type : tristate
+# Defined at drivers/platform/x86/Kconfig:1369
+# Prompt: Intel SCU platform driver
+# Depends on: X86 [=y] && X86_PLATFORM_DEVICES [=y] && ACPI [=y]
+# Location:
+# -> Device Drivers
+# -> X86 Platform Specific Device Drivers (X86_PLATFORM_DEVICES [=y])
+# Selects: INTEL_SCU [=n]
+#
+#
+#
+# CONFIG_INTEL_SCU_PLATFORM is not set
diff --git a/configs/fedora/generic/x86/x86_64/CONFIG_INTEL_UNCORE_FREQ_CONTROL b/configs/fedora/generic/CONFIG_INTEL_UNCORE_FREQ_CONTROL
index f8e5172cf..f8e5172cf 100644
--- a/configs/fedora/generic/x86/x86_64/CONFIG_INTEL_UNCORE_FREQ_CONTROL
+++ b/configs/fedora/generic/CONFIG_INTEL_UNCORE_FREQ_CONTROL
diff --git a/configs/fedora/generic/CONFIG_INTEL_WMI_SBL_FW_UPDATE b/configs/fedora/generic/CONFIG_INTEL_WMI_SBL_FW_UPDATE
new file mode 100644
index 000000000..1625bb32c
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_INTEL_WMI_SBL_FW_UPDATE
@@ -0,0 +1,21 @@
+# CONFIG_INTEL_WMI_SBL_FW_UPDATE:
+#
+# Say Y here if you want to be able to use the WMI interface to signal
+# Slim Bootloader to trigger update on next reboot.
+#
+# To compile this driver as a module, choose M here: the module will
+# be called intel-wmi-sbl-fw-update.
+#
+# Symbol: INTEL_WMI_SBL_FW_UPDATE [=n]
+# Type : tristate
+# Defined at drivers/platform/x86/Kconfig:81
+# Prompt: Intel WMI Slim Bootloader firmware update signaling driver
+# Depends on: X86 [=y] && X86_PLATFORM_DEVICES [=y] && ACPI_WMI [=m]
+# Location:
+# -> Device Drivers
+# -> X86 Platform Specific Device Drivers (X86_PLATFORM_DEVICES [=y])
+# -> WMI (ACPI_WMI [=m])
+#
+#
+#
+# CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set
diff --git a/configs/fedora/generic/CONFIG_INTERCONNECT b/configs/fedora/generic/CONFIG_INTERCONNECT
index 44680093f..04fcaa10c 100644
--- a/configs/fedora/generic/CONFIG_INTERCONNECT
+++ b/configs/fedora/generic/CONFIG_INTERCONNECT
@@ -1 +1,19 @@
-# CONFIG_INTERCONNECT is not set
+# CONFIG_INTERCONNECT:
+#
+# Support for management of the on-chip interconnects.
+#
+# This framework is designed to provide a generic interface for
+# managing the interconnects in a SoC.
+#
+# If unsure, say no.
+#
+# Symbol: INTERCONNECT [=n]
+# Type : bool
+# Defined at drivers/interconnect/Kconfig:2
+# Prompt: On-Chip Interconnect management support
+# Location:
+# -> Device Drivers
+#
+#
+#
+CONFIG_INTERCONNECT=y
diff --git a/configs/fedora/generic/CONFIG_IR_SERIAL b/configs/fedora/generic/CONFIG_IR_SERIAL
index 53c7f1d81..4da276f1e 100644
--- a/configs/fedora/generic/CONFIG_IR_SERIAL
+++ b/configs/fedora/generic/CONFIG_IR_SERIAL
@@ -1 +1 @@
-CONFIG_IR_SERIAL=m
+# CONFIG_IR_SERIAL is not set
diff --git a/configs/fedora/generic/CONFIG_ISDN_CAPI b/configs/fedora/generic/CONFIG_ISDN_CAPI
new file mode 100644
index 000000000..b36fbdb13
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_ISDN_CAPI
@@ -0,0 +1 @@
+CONFIG_ISDN_CAPI=y
diff --git a/configs/fedora/generic/CONFIG_KASAN_VMALLOC b/configs/fedora/generic/CONFIG_KASAN_VMALLOC
new file mode 100644
index 000000000..81b3589c9
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_KASAN_VMALLOC
@@ -0,0 +1 @@
+# CONFIG_KASAN_VMALLOC is not set
diff --git a/configs/fedora/generic/CONFIG_KERNEL_HEADER_TEST b/configs/fedora/generic/CONFIG_KERNEL_HEADER_TEST
new file mode 100644
index 000000000..040d0b830
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_KERNEL_HEADER_TEST
@@ -0,0 +1 @@
+CONFIG_KERNEL_HEADER_TEST=y
diff --git a/configs/fedora/generic/CONFIG_KEXEC_SIG b/configs/fedora/generic/CONFIG_KEXEC_SIG
new file mode 100644
index 000000000..49392e485
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_KEXEC_SIG
@@ -0,0 +1 @@
+# CONFIG_KEXEC_SIG is not set
diff --git a/configs/fedora/generic/CONFIG_KEYBOARD_BCM b/configs/fedora/generic/CONFIG_KEYBOARD_BCM
new file mode 100644
index 000000000..93e4fffa8
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_KEYBOARD_BCM
@@ -0,0 +1,22 @@
+# CONFIG_KEYBOARD_BCM:
+#
+# Say Y here if you want to use Broadcom keypad.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called bcm-keypad.
+#
+# Symbol: KEYBOARD_BCM [=n]
+# Type : tristate
+# Defined at drivers/input/keyboard/Kconfig:774
+# Prompt: Broadcom keypad driver
+# Depends on: !UML && INPUT [=y] && INPUT_KEYBOARD [=y] && OF [=y] && HAVE_CLK [=y]
+# Location:
+# -> Device Drivers
+# -> Input device support
+# -> Generic input layer (needed for keyboard, mouse, ...) (INPUT [=y])
+# -> Keyboards (INPUT_KEYBOARD [=y])
+# Selects: INPUT_MATRIXKMAP [=m]
+#
+#
+#
+CONFIG_KEYBOARD_BCM=m
diff --git a/configs/fedora/generic/CONFIG_KEY_NOTIFICATIONS b/configs/fedora/generic/CONFIG_KEY_NOTIFICATIONS
new file mode 100644
index 000000000..f2556d44c
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_KEY_NOTIFICATIONS
@@ -0,0 +1,19 @@
+# CONFIG_KEY_NOTIFICATIONS:
+#
+# This option provides support for getting change notifications on keys
+# and keyrings on which the caller has View permission. This makes use
+# of the /dev/watch_queue misc device to handle the notification
+# buffer and provides KEYCTL_WATCH_KEY to enable/disable watches.
+#
+# Symbol: KEY_NOTIFICATIONS [=n]
+# Type : bool
+# Defined at security/keys/Kconfig:118
+# Prompt: Provide key/keyring change notifications
+# Depends on: KEYS [=y] && WATCH_QUEUE [=y]
+# Location:
+# -> Security options
+# -> Enable access key retention support (KEYS [=y])
+#
+#
+#
+CONFIG_KEY_NOTIFICATIONS=y
diff --git a/configs/fedora/generic/CONFIG_KVM_ARM_PMU b/configs/fedora/generic/CONFIG_KVM_ARM_PMU
new file mode 100644
index 000000000..c60b45de4
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_KVM_ARM_PMU
@@ -0,0 +1,17 @@
+# CONFIG_KVM_ARM_PMU:
+#
+# Adds support for a virtual Performance Monitoring Unit (PMU) in
+# virtual machines.
+#
+# Symbol: KVM_ARM_PMU [=y]
+# Type : bool
+# Defined at arch/arm64/kvm/Kconfig:52
+# Prompt: Virtual Performance Monitoring Unit (PMU) support
+# Depends on: VIRTUALIZATION [=y] && KVM [=y] && HW_PERF_EVENTS [=y]
+# Location:
+# -> Virtualization (VIRTUALIZATION [=y])
+# -> Kernel-based Virtual Machine (KVM) support (KVM [=y])
+#
+#
+#
+CONFIG_KVM_ARM_PMU=y
diff --git a/configs/fedora/generic/CONFIG_LEDS_AW2013 b/configs/fedora/generic/CONFIG_LEDS_AW2013
new file mode 100644
index 000000000..2c5a7d17a
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_LEDS_AW2013
@@ -0,0 +1,20 @@
+# CONFIG_LEDS_AW2013:
+#
+# This option enables support for the AW2013 3-channel
+# LED driver.
+#
+# To compile this driver as a module, choose M here: the module
+# will be called leds-aw2013.
+#
+# Symbol: LEDS_AW2013 [=n]
+# Type : tristate
+# Defined at drivers/leds/Kconfig:106
+# Prompt: LED support for Awinic AW2013
+# Depends on: NEW_LEDS [=y] && LEDS_CLASS [=y] && I2C [=y] && OF [=y]
+# Location:
+# -> Device Drivers
+# -> LED Support (NEW_LEDS [=y])
+#
+#
+#
+# CONFIG_LEDS_AW2013 is not set
diff --git a/configs/fedora/generic/CONFIG_LEDS_SGM3140 b/configs/fedora/generic/CONFIG_LEDS_SGM3140
new file mode 100644
index 000000000..ecd6dc8d2
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_LEDS_SGM3140
@@ -0,0 +1,17 @@
+# CONFIG_LEDS_SGM3140:
+#
+# This option enables support for the SGM3140 500mA Buck/Boost Charge
+# Pump LED Driver.
+#
+# Symbol: LEDS_SGM3140 [=n]
+# Type : tristate
+# Defined at drivers/leds/Kconfig:881
+# Prompt: LED support for the SGM3140
+# Depends on: NEW_LEDS [=y] && LEDS_CLASS_FLASH [=m] && (V4L2_FLASH_LED_CLASS [=n] || !V4L2_FLASH_LED_CLASS [=n])
+# Location:
+# -> Device Drivers
+# -> LED Support (NEW_LEDS [=y])
+#
+#
+#
+# CONFIG_LEDS_SGM3140 is not set
diff --git a/configs/fedora/generic/CONFIG_LEDS_SYSCON b/configs/fedora/generic/CONFIG_LEDS_SYSCON
new file mode 100644
index 000000000..cc80700c5
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_LEDS_SYSCON
@@ -0,0 +1 @@
+# CONFIG_LEDS_SYSCON is not set
diff --git a/configs/fedora/generic/CONFIG_LIBCRC32C b/configs/fedora/generic/CONFIG_LIBCRC32C
index ed0c7dfc7..887fe16f5 100644
--- a/configs/fedora/generic/CONFIG_LIBCRC32C
+++ b/configs/fedora/generic/CONFIG_LIBCRC32C
@@ -1 +1 @@
-CONFIG_LIBCRC32C=m
+CONFIG_LIBCRC32C=y
diff --git a/configs/fedora/generic/CONFIG_MAX1241 b/configs/fedora/generic/CONFIG_MAX1241
new file mode 100644
index 000000000..33d998381
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MAX1241
@@ -0,0 +1,21 @@
+# CONFIG_MAX1241:
+#
+# Say yes here to build support for Maxim max1241 12-bit, single-channel
+# ADC.
+#
+# To compile this driver as a module, choose M here: the module will be
+# called max1241.
+#
+# Symbol: MAX1241 [=n]
+# Type : tristate
+# Defined at drivers/iio/adc/Kconfig:633
+# Prompt: Maxim max1241 ADC driver
+# Depends on: IIO [=m] && SPI_MASTER [=y]
+# Location:
+# -> Device Drivers
+# -> Industrial I/O support (IIO [=m])
+# -> Analog to digital converters
+#
+#
+#
+CONFIG_MAX1241=m
diff --git a/configs/fedora/generic/CONFIG_MDIO_IPQ4019 b/configs/fedora/generic/CONFIG_MDIO_IPQ4019
new file mode 100644
index 000000000..e7792d132
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MDIO_IPQ4019
@@ -0,0 +1,18 @@
+# CONFIG_MDIO_IPQ4019:
+#
+# This driver supports the MDIO interface found in Qualcomm
+# IPQ40xx series Soc-s.
+#
+# Symbol: MDIO_IPQ4019 [=n]
+# Type : tristate
+# Defined at drivers/net/phy/Kconfig:160
+# Prompt: Qualcomm IPQ4019 MDIO interface support
+# Depends on: NETDEVICES [=y] && MDIO_DEVICE [=y] && MDIO_BUS [=y] && HAS_IOMEM [=y] && OF_MDIO [=y]
+# Location:
+# -> Device Drivers
+# -> Network device support (NETDEVICES [=y])
+# -> MDIO bus device drivers (MDIO_DEVICE [=y])
+#
+#
+#
+# CONFIG_MDIO_IPQ4019 is not set
diff --git a/configs/fedora/generic/CONFIG_MDIO_IPQ8064 b/configs/fedora/generic/CONFIG_MDIO_IPQ8064
new file mode 100644
index 000000000..3104618fc
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MDIO_IPQ8064
@@ -0,0 +1 @@
+# CONFIG_MDIO_IPQ8064 is not set
diff --git a/configs/fedora/generic/CONFIG_MEDIA_PLATFORM_SUPPORT b/configs/fedora/generic/CONFIG_MEDIA_PLATFORM_SUPPORT
new file mode 100644
index 000000000..9f6637ddf
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MEDIA_PLATFORM_SUPPORT
@@ -0,0 +1,25 @@
+# CONFIG_MEDIA_PLATFORM_SUPPORT:
+#
+# Enable support for complex cameras, codecs, and other hardware
+# that are integrated at the CPU, GPU or on Image Signalling Processor
+# and don't use PCI, USB or Firewire buses.
+#
+# This is found on Embedded hardware (SoC), on V4L2 codecs and
+# on some GPU and newer CPU chipsets.
+#
+# Say Y when you want to be able so see such devices.
+#
+# Symbol: MEDIA_PLATFORM_SUPPORT [=n]
+# Type : bool
+# Defined at drivers/media/Kconfig:126
+# Prompt: Platform-specific devices
+# Depends on: MEDIA_SUPPORT [=m]
+# Visible if: MEDIA_SUPPORT [=m] && MEDIA_SUPPORT_FILTER [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media device types
+#
+#
+#
+CONFIG_MEDIA_PLATFORM_SUPPORT=y
diff --git a/configs/fedora/generic/CONFIG_MEDIA_SUPPORT_FILTER b/configs/fedora/generic/CONFIG_MEDIA_SUPPORT_FILTER
new file mode 100644
index 000000000..6cd0717b2
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MEDIA_SUPPORT_FILTER
@@ -0,0 +1,25 @@
+# CONFIG_MEDIA_SUPPORT_FILTER:
+#
+# Configuring the media subsystem can be complex, as there are
+# hundreds of drivers and other config options.
+#
+# This menu offers option that will help the Kernel's config
+# system to hide drivers that are out of the scope of the
+# user needs, and disabling core support for unused APIs.
+#
+# If not selected, all non-optional media core functionality
+# needed to support media drivers will be enabled. Also, all
+# media device drivers should be shown.
+#
+# Symbol: MEDIA_SUPPORT_FILTER [=y]
+# Type : bool
+# Defined at drivers/media/Kconfig:25
+# Prompt: Filter media drivers
+# Depends on: MEDIA_SUPPORT [=m]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+#
+#
+#
+CONFIG_MEDIA_SUPPORT_FILTER=y
diff --git a/configs/fedora/generic/CONFIG_MEDIA_TEST_SUPPORT b/configs/fedora/generic/CONFIG_MEDIA_TEST_SUPPORT
new file mode 100644
index 000000000..06cb75c8d
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MEDIA_TEST_SUPPORT
@@ -0,0 +1,26 @@
+# CONFIG_MEDIA_TEST_SUPPORT:
+#
+# Those drivers should not be used on production Kernels, but
+# can be useful on debug ones. It enables several dummy drivers
+# that simulate a real hardware. Very useful to test userspace
+# applications and to validate if the subsystem core is doesn't
+# have regressions.
+#
+# Say Y if you want to use some virtual test driver.
+#
+# In case of doubts, say N.
+# Say Y when you have a software defined radio device.
+# Symbol: MEDIA_TEST_SUPPORT [=n]
+# Type : bool
+# Defined at drivers/media/Kconfig:140
+# Prompt: Test drivers
+# Depends on: MEDIA_SUPPORT [=m]
+# Visible if: MEDIA_SUPPORT [=m] && MEDIA_SUPPORT_FILTER [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media device types
+#
+#
+#
+# CONFIG_MEDIA_TEST_SUPPORT is not set
diff --git a/configs/fedora/generic/CONFIG_MFD_GATEWORKS_GSC b/configs/fedora/generic/CONFIG_MFD_GATEWORKS_GSC
new file mode 100644
index 000000000..19ea1a015
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MFD_GATEWORKS_GSC
@@ -0,0 +1 @@
+# CONFIG_MFD_GATEWORKS_GSC is not set
diff --git a/configs/fedora/generic/CONFIG_MFD_INTEL_PMC_BXT b/configs/fedora/generic/CONFIG_MFD_INTEL_PMC_BXT
new file mode 100644
index 000000000..daf2341bb
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MFD_INTEL_PMC_BXT
@@ -0,0 +1,21 @@
+# CONFIG_MFD_INTEL_PMC_BXT:
+#
+# This driver provides support for the PMC (Power Management
+# Controller) on Intel Broxton and Apollo Lake. The PMC is a
+# multi-function device that exposes IPC, General Control
+# Register and P-unit access. In addition this creates devices
+# for iTCO watchdog and telemetry that are part of the PMC.
+#
+# Symbol: MFD_INTEL_PMC_BXT [=n]
+# Type : tristate
+# Defined at drivers/mfd/Kconfig:650
+# Prompt: Intel PMC Driver for Broxton
+# Depends on: HAS_IOMEM [=y] && X86 [=y] && X86_PLATFORM_DEVICES [=y] && ACPI [=y]
+# Location:
+# -> Device Drivers
+# -> Multifunction device drivers
+# Selects: INTEL_SCU_IPC [=n] && MFD_CORE [=y]
+#
+#
+#
+# CONFIG_MFD_INTEL_PMC_BXT is not set
diff --git a/configs/fedora/generic/CONFIG_MFD_MP2629 b/configs/fedora/generic/CONFIG_MFD_MP2629
new file mode 100644
index 000000000..ab50ee3da
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MFD_MP2629
@@ -0,0 +1,19 @@
+# CONFIG_MFD_MP2629:
+#
+# Select this option to enable support for Monolithic Power Systems
+# battery charger. This provides ADC, thermal and battery charger power
+# management functions.
+#
+# Symbol: MFD_MP2629 [=n]
+# Type : tristate
+# Defined at drivers/mfd/Kconfig:452
+# Prompt: Monolithic Power Systems MP2629 ADC and Battery charger
+# Depends on: HAS_IOMEM [=y] && I2C [=y]
+# Location:
+# -> Device Drivers
+# -> Multifunction device drivers
+# Selects: REGMAP_I2C [=m]
+#
+#
+#
+# CONFIG_MFD_MP2629 is not set
diff --git a/configs/fedora/generic/CONFIG_MFD_MT6360 b/configs/fedora/generic/CONFIG_MFD_MT6360
new file mode 100644
index 000000000..c12a94335
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MFD_MT6360
@@ -0,0 +1,20 @@
+# CONFIG_MFD_MT6360:
+#
+# Say Y here to enable MT6360 PMU/PMIC/LDO functional support.
+# PMU part includes Charger, Flashlight, RGB LED
+# PMIC part includes 2-channel BUCKs and 2-channel LDOs
+# LDO part includes 4-channel LDOs
+#
+# Symbol: MFD_MT6360 [=n]
+# Type : tristate
+# Defined at drivers/mfd/Kconfig:911
+# Prompt: Mediatek MT6360 SubPMIC
+# Depends on: HAS_IOMEM [=y] && I2C [=y]
+# Location:
+# -> Device Drivers
+# -> Multifunction device drivers
+# Selects: MFD_CORE [=y] && REGMAP_I2C [=m] && REGMAP_IRQ [=y]
+#
+#
+#
+# CONFIG_MFD_MT6360 is not set
diff --git a/configs/fedora/generic/CONFIG_MFD_SYSCON b/configs/fedora/generic/CONFIG_MFD_SYSCON
index cab0ef0b7..9890ebdb9 100644
--- a/configs/fedora/generic/CONFIG_MFD_SYSCON
+++ b/configs/fedora/generic/CONFIG_MFD_SYSCON
@@ -1 +1 @@
-# CONFIG_MFD_SYSCON is not set
+CONFIG_MFD_SYSCON=y
diff --git a/configs/fedora/generic/CONFIG_MLX5_CLS_ACT b/configs/fedora/generic/CONFIG_MLX5_CLS_ACT
new file mode 100644
index 000000000..0dd0c3000
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MLX5_CLS_ACT
@@ -0,0 +1,28 @@
+# CONFIG_MLX5_CLS_ACT:
+#
+# mlx5 ConnectX offloads support for TC classifier action (NET_CLS_ACT),
+# works in both native NIC mode and Switchdev SRIOV mode.
+# Actions get attached to a Hardware offloaded classifiers and are
+# invoked after a successful classification. Actions are used to
+# overwrite the classification result, instantly drop or redirect and/or
+# reformat packets in wire speeds without involving the host cpu.
+#
+# If set to N, TC offloads in both NIC and switchdev modes will be disabled.
+# If unsure, set to Y
+#
+# Symbol: MLX5_CLS_ACT [=y]
+# Type : bool
+# Defined at drivers/net/ethernet/mellanox/mlx5/core/Kconfig:81
+# Prompt: MLX5 TC classifier action support
+# Depends on: NETDEVICES [=y] && ETHERNET [=y] && NET_VENDOR_MELLANOX [=y] && MLX5_ESWITCH [=y] && NET_CLS_ACT [=y]
+# Location:
+# -> Device Drivers
+# -> Network device support (NETDEVICES [=y])
+# -> Ethernet driver support (ETHERNET [=y])
+# -> Mellanox devices (NET_VENDOR_MELLANOX [=y])
+# -> Mellanox 5th generation network adapters (ConnectX series) Ethernet support (MLX5_CORE_EN [=y])
+# -> Mellanox Technologies MLX5 SRIOV E-Switch support (MLX5_ESWITCH [=y])
+#
+#
+#
+CONFIG_MLX5_CLS_ACT=y
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_MLXBF_BOOTCTL b/configs/fedora/generic/CONFIG_MLXBF_BOOTCTL
index 3bf6d6449..3bf6d6449 100644
--- a/configs/fedora/generic/arm/aarch64/CONFIG_MLXBF_BOOTCTL
+++ b/configs/fedora/generic/CONFIG_MLXBF_BOOTCTL
diff --git a/configs/fedora/generic/CONFIG_MODULE_SIG_SHA256 b/configs/fedora/generic/CONFIG_MODULE_SIG_SHA256
index b350aa05a..f54169c56 100644
--- a/configs/fedora/generic/CONFIG_MODULE_SIG_SHA256
+++ b/configs/fedora/generic/CONFIG_MODULE_SIG_SHA256
@@ -1 +1 @@
-CONFIG_MODULE_SIG_SHA256=y
+# CONFIG_MODULE_SIG_SHA256 is not set
diff --git a/configs/fedora/generic/CONFIG_MODULE_SIG_SHA512 b/configs/fedora/generic/CONFIG_MODULE_SIG_SHA512
index 2910d8330..fe14d3f42 100644
--- a/configs/fedora/generic/CONFIG_MODULE_SIG_SHA512
+++ b/configs/fedora/generic/CONFIG_MODULE_SIG_SHA512
@@ -1 +1 @@
-# CONFIG_MODULE_SIG_SHA512 is not set
+CONFIG_MODULE_SIG_SHA512=y
diff --git a/configs/fedora/generic/CONFIG_MSM_GCC_8939 b/configs/fedora/generic/CONFIG_MSM_GCC_8939
new file mode 100644
index 000000000..c17aa7073
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MSM_GCC_8939
@@ -0,0 +1,20 @@
+# CONFIG_MSM_GCC_8939:
+#
+# Support for the global clock controller on msm8939 devices.
+# Say Y if you want to use devices such as UART, SPI i2c, USB,
+# SD/eMMC, display, graphics, camera etc.
+#
+# Symbol: MSM_GCC_8939 [=n]
+# Type : tristate
+# Defined at drivers/clk/qcom/Kconfig:145
+# Prompt: MSM8939 Global Clock Controller
+# Depends on: COMMON_CLK [=y] && COMMON_CLK_QCOM [=y]
+# Location:
+# -> Device Drivers
+# -> Common Clock Framework (COMMON_CLK [=y])
+# -> Support for Qualcomm's clock controllers (COMMON_CLK_QCOM [=y])
+# Selects: QCOM_GDSC [=y]
+#
+#
+#
+# CONFIG_MSM_GCC_8939 is not set
diff --git a/configs/fedora/generic/CONFIG_MT7663U b/configs/fedora/generic/CONFIG_MT7663U
new file mode 100644
index 000000000..bf8eea13c
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MT7663U
@@ -0,0 +1,21 @@
+# CONFIG_MT7663U:
+#
+# This adds support for MT7663U 802.11ax 2x2:2 wireless devices.
+#
+# To compile this driver as a module, choose M here.
+#
+# Symbol: MT7663U [=n]
+# Type : tristate
+# Defined at drivers/net/wireless/mediatek/mt76/mt7615/Kconfig:31
+# Prompt: MediaTek MT7663U (USB) support
+# Depends on: NETDEVICES [=y] && WLAN [=y] && WLAN_VENDOR_MEDIATEK [=y] && MAC80211 [=m] && USB [=y]
+# Location:
+# -> Device Drivers
+# -> Network device support (NETDEVICES [=y])
+# -> Wireless LAN (WLAN [=y])
+# -> MediaTek devices (WLAN_VENDOR_MEDIATEK [=y])
+# Selects: MT76_USB [=m] && MT7615_COMMON [=m]
+#
+#
+#
+CONFIG_MT7663U=m
diff --git a/configs/fedora/generic/CONFIG_MT7915E b/configs/fedora/generic/CONFIG_MT7915E
new file mode 100644
index 000000000..bb801afb9
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MT7915E
@@ -0,0 +1,24 @@
+# CONFIG_MT7915E:
+#
+# This adds support for MT7915-based wireless PCIe devices,
+# which support concurrent dual-band operation at both 5GHz
+# and 2.4GHz IEEE 802.11ax 4x4:4SS 1024-QAM, 160MHz channels,
+# OFDMA, spatial reuse and dual carrier modulation.
+#
+# To compile this driver as a module, choose M here.
+#
+# Symbol: MT7915E [=n]
+# Type : tristate
+# Defined at drivers/net/wireless/mediatek/mt76/mt7915/Kconfig:2
+# Prompt: MediaTek MT7915E (PCIe) support
+# Depends on: NETDEVICES [=y] && WLAN [=y] && WLAN_VENDOR_MEDIATEK [=y] && MAC80211 [=m] && PCI [=y]
+# Location:
+# -> Device Drivers
+# -> Network device support (NETDEVICES [=y])
+# -> Wireless LAN (WLAN [=y])
+# -> MediaTek devices (WLAN_VENDOR_MEDIATEK [=y])
+# Selects: MT76_CORE [=m]
+#
+#
+#
+CONFIG_MT7915E=m
diff --git a/configs/fedora/generic/CONFIG_MTD_NAND_ARASAN b/configs/fedora/generic/CONFIG_MTD_NAND_ARASAN
new file mode 100644
index 000000000..ae4589669
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MTD_NAND_ARASAN
@@ -0,0 +1,19 @@
+# CONFIG_MTD_NAND_ARASAN:
+#
+# Enables the driver for the Arasan NAND flash controller on
+# Zynq Ultrascale+ MPSoC.
+#
+# Symbol: MTD_NAND_ARASAN [=n]
+# Type : tristate
+# Defined at drivers/mtd/nand/raw/Kconfig:456
+# Prompt: Support for Arasan NAND flash controller
+# Depends on: MTD [=m] && MTD_RAW_NAND [=m] && HAS_IOMEM [=y] && HAS_DMA [=y]
+# Location:
+# -> Device Drivers
+# -> Memory Technology Device (MTD) support (MTD [=m])
+# -> Raw/Parallel NAND Device Support (MTD_RAW_NAND [=m])
+# Selects: BCH [=n]
+#
+#
+#
+# CONFIG_MTD_NAND_ARASAN is not set
diff --git a/configs/fedora/generic/CONFIG_MTD_PSTORE b/configs/fedora/generic/CONFIG_MTD_PSTORE
new file mode 100644
index 000000000..f2e8aab06
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MTD_PSTORE
@@ -0,0 +1,20 @@
+# CONFIG_MTD_PSTORE:
+#
+# This enables panic and oops messages to be logged to a circular
+# buffer in a flash partition where it can be read back as files after
+# mounting pstore filesystem.
+#
+# If unsure, say N.
+#
+# Symbol: MTD_PSTORE [=n]
+# Type : tristate
+# Defined at drivers/mtd/Kconfig:173
+# Prompt: Log panic/oops to an MTD buffer based on pstore
+# Depends on: MTD [=m] && PSTORE_BLK [=m]
+# Location:
+# -> Device Drivers
+# -> Memory Technology Device (MTD) support (MTD [=m])
+#
+#
+#
+CONFIG_MTD_PSTORE=m
diff --git a/configs/fedora/generic/CONFIG_NET_ACT_GATE b/configs/fedora/generic/CONFIG_NET_ACT_GATE
new file mode 100644
index 000000000..7458b23d0
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_NET_ACT_GATE
@@ -0,0 +1,24 @@
+# CONFIG_NET_ACT_GATE:
+#
+# Say Y here to allow to control the ingress flow to be passed at
+# specific time slot and be dropped at other specific time slot by
+# the gate entry list.
+#
+# If unsure, say N.
+# To compile this code as a module, choose M here: the
+# module will be called act_gate.
+#
+# Symbol: NET_ACT_GATE [=n]
+# Type : tristate
+# Defined at net/sched/Kconfig:984
+# Prompt: Frame gate entry list control tc action
+# Depends on: NET [=y] && NET_SCHED [=y] && NET_CLS_ACT [=y]
+# Location:
+# -> Networking support (NET [=y])
+# -> Networking options
+# -> QoS and/or fair queueing (NET_SCHED [=y])
+# -> Actions (NET_CLS_ACT [=y])
+#
+#
+#
+CONFIG_NET_ACT_GATE=m
diff --git a/configs/fedora/generic/CONFIG_NET_SCH_ETS b/configs/fedora/generic/CONFIG_NET_SCH_ETS
index 95ea61e43..40ac4251e 100644
--- a/configs/fedora/generic/CONFIG_NET_SCH_ETS
+++ b/configs/fedora/generic/CONFIG_NET_SCH_ETS
@@ -1 +1 @@
-# CONFIG_NET_SCH_ETS is not set
+CONFIG_NET_SCH_ETS=m
diff --git a/configs/fedora/generic/powerpc/CONFIG_OPAL_CORE b/configs/fedora/generic/CONFIG_OPAL_CORE
index 48e23bed6..48e23bed6 100644
--- a/configs/fedora/generic/powerpc/CONFIG_OPAL_CORE
+++ b/configs/fedora/generic/CONFIG_OPAL_CORE
diff --git a/configs/fedora/generic/CONFIG_PAGE_REPORTING b/configs/fedora/generic/CONFIG_PAGE_REPORTING
new file mode 100644
index 000000000..454926ab4
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_PAGE_REPORTING
@@ -0,0 +1 @@
+CONFIG_PAGE_REPORTING=y
diff --git a/configs/fedora/generic/CONFIG_PCIEASPM_DEBUG b/configs/fedora/generic/CONFIG_PCIEASPM_DEBUG
new file mode 100644
index 000000000..f298e0392
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_PCIEASPM_DEBUG
@@ -0,0 +1 @@
+# CONFIG_PCIEASPM_DEBUG is not set
diff --git a/configs/fedora/generic/CONFIG_PCIE_LAYERSCAPE_GEN4 b/configs/fedora/generic/CONFIG_PCIE_LAYERSCAPE_GEN4
new file mode 100644
index 000000000..57ef6cae5
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_PCIE_LAYERSCAPE_GEN4
@@ -0,0 +1 @@
+# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set
diff --git a/configs/fedora/generic/CONFIG_PHY_CADENCE_SALVO b/configs/fedora/generic/CONFIG_PHY_CADENCE_SALVO
new file mode 100644
index 000000000..4df039f62
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_PHY_CADENCE_SALVO
@@ -0,0 +1,19 @@
+# CONFIG_PHY_CADENCE_SALVO:
+#
+# Enable this to support the Cadence SALVO PHY driver,
+# this PHY is a legacy PHY, and only are used for USB3
+# and USB2.
+#
+# Symbol: PHY_CADENCE_SALVO [=n]
+# Type : tristate
+# Defined at drivers/phy/cadence/Kconfig:31
+# Prompt: Cadence Salvo PHY Driver
+# Depends on: OF [=y] && HAS_IOMEM [=y]
+# Location:
+# -> Device Drivers
+# -> PHY Subsystem
+# Selects: GENERIC_PHY [=y]
+#
+#
+#
+CONFIG_PHY_CADENCE_SALVO=m
diff --git a/configs/fedora/generic/CONFIG_PHY_QCOM_IPQ4019_USB b/configs/fedora/generic/CONFIG_PHY_QCOM_IPQ4019_USB
new file mode 100644
index 000000000..feefe01f6
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_PHY_QCOM_IPQ4019_USB
@@ -0,0 +1 @@
+# CONFIG_PHY_QCOM_IPQ4019_USB is not set
diff --git a/configs/fedora/generic/CONFIG_PHY_QCOM_USB_HS_28NM b/configs/fedora/generic/CONFIG_PHY_QCOM_USB_HS_28NM
new file mode 100644
index 000000000..1f67fe251
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_PHY_QCOM_USB_HS_28NM
@@ -0,0 +1 @@
+# CONFIG_PHY_QCOM_USB_HS_28NM is not set
diff --git a/configs/fedora/generic/CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 b/configs/fedora/generic/CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2
new file mode 100644
index 000000000..7f13bc315
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2
@@ -0,0 +1 @@
+# CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 is not set
diff --git a/configs/fedora/generic/CONFIG_PHY_QCOM_USB_SS b/configs/fedora/generic/CONFIG_PHY_QCOM_USB_SS
new file mode 100644
index 000000000..0213a42d7
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_PHY_QCOM_USB_SS
@@ -0,0 +1 @@
+# CONFIG_PHY_QCOM_USB_SS is not set
diff --git a/configs/fedora/generic/CONFIG_PINCTRL_JASPERLAKE b/configs/fedora/generic/CONFIG_PINCTRL_JASPERLAKE
new file mode 100644
index 000000000..59ec9a1e7
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_PINCTRL_JASPERLAKE
@@ -0,0 +1,18 @@
+# CONFIG_PINCTRL_JASPERLAKE:
+#
+# This pinctrl driver provides an interface that allows configuring
+# of Intel Jasper Lake PCH pins and using them as GPIOs.
+#
+# Symbol: PINCTRL_JASPERLAKE [=n]
+# Type : tristate
+# Defined at drivers/pinctrl/intel/Kconfig:114
+# Prompt: Intel Jasper Lake PCH pinctrl and GPIO driver
+# Depends on: PINCTRL [=y] && (X86 [=y] || COMPILE_TEST [=n]) && ACPI [=y]
+# Location:
+# -> Device Drivers
+# -> Pin controllers (PINCTRL [=y])
+# Selects: PINCTRL_INTEL [=m]
+#
+#
+#
+# CONFIG_PINCTRL_JASPERLAKE is not set
diff --git a/configs/fedora/generic/CONFIG_PINCTRL_LYNXPOINT b/configs/fedora/generic/CONFIG_PINCTRL_LYNXPOINT
new file mode 100644
index 000000000..252078559
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_PINCTRL_LYNXPOINT
@@ -0,0 +1 @@
+# CONFIG_PINCTRL_LYNXPOINT is not set
diff --git a/configs/fedora/generic/arm/CONFIG_PINCTRL_MSM8976 b/configs/fedora/generic/CONFIG_PINCTRL_MSM8976
index 05e860247..05e860247 100644
--- a/configs/fedora/generic/arm/CONFIG_PINCTRL_MSM8976
+++ b/configs/fedora/generic/CONFIG_PINCTRL_MSM8976
diff --git a/configs/fedora/generic/CONFIG_PINCTRL_SM8250 b/configs/fedora/generic/CONFIG_PINCTRL_SM8250
new file mode 100644
index 000000000..383eb8bef
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_PINCTRL_SM8250
@@ -0,0 +1,19 @@
+# CONFIG_PINCTRL_SM8250:
+#
+# This is the pinctrl, pinmux, pinconf and gpiolib driver for the
+# Qualcomm Technologies Inc TLMM block found on the Qualcomm
+# Technologies Inc SM8250 platform.
+#
+# Symbol: PINCTRL_SM8250 [=n]
+# Type : tristate
+# Defined at drivers/pinctrl/qcom/Kconfig:219
+# Prompt: Qualcomm Technologies Inc SM8250 pin controller driver
+# Depends on: PINCTRL [=y] && (ARCH_QCOM [=y] || COMPILE_TEST [=n]) && GPIOLIB [=y] && OF [=y]
+# Location:
+# -> Device Drivers
+# -> Pin controllers (PINCTRL [=y])
+# Selects: PINCTRL_MSM [=y]
+#
+#
+#
+# CONFIG_PINCTRL_SM8250 is not set
diff --git a/configs/fedora/generic/CONFIG_PMU_SYSFS b/configs/fedora/generic/CONFIG_PMU_SYSFS
new file mode 100644
index 000000000..1f1a0f6ce
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_PMU_SYSFS
@@ -0,0 +1,14 @@
+# CONFIG_PMU_SYSFS:
+#
+# This option enables sysfs file creation for PMU SPRs like MMCR* and PMC*.
+#
+# Symbol: PMU_SYSFS [=n]
+# Type : bool
+# Defined at arch/powerpc/platforms/Kconfig.cputype:428
+# Prompt: Create PMU SPRs sysfs file
+# Location:
+# -> Processor support
+#
+#
+#
+# CONFIG_PMU_SYSFS is not set
diff --git a/configs/fedora/generic/CONFIG_POWER_RESET_VEXPRESS b/configs/fedora/generic/CONFIG_POWER_RESET_VEXPRESS
new file mode 100644
index 000000000..80e0a957f
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_POWER_RESET_VEXPRESS
@@ -0,0 +1,17 @@
+# CONFIG_POWER_RESET_VEXPRESS:
+#
+# Power off and reset support for the ARM Ltd. Versatile
+# Express boards.
+#
+# Symbol: POWER_RESET_VEXPRESS [=n]
+# Type : bool
+# Defined at drivers/power/reset/Kconfig:184
+# Prompt: ARM Versatile Express power-off and reset driver
+# Depends on: POWER_RESET [=y] && (ARM || ARM64 [=y]) && VEXPRESS_CONFIG [=y]=y
+# Location:
+# -> Device Drivers
+# -> Board level reset or power off (POWER_RESET [=y])
+#
+#
+#
+# CONFIG_POWER_RESET_VEXPRESS is not set
diff --git a/configs/fedora/generic/CONFIG_PRIME_NUMBERS b/configs/fedora/generic/CONFIG_PRIME_NUMBERS
new file mode 100644
index 000000000..86f0c3931
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_PRIME_NUMBERS
@@ -0,0 +1 @@
+# CONFIG_PRIME_NUMBERS is not set
diff --git a/configs/fedora/generic/CONFIG_PSTORE_BLK b/configs/fedora/generic/CONFIG_PSTORE_BLK
new file mode 100644
index 000000000..a70dbf739
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_PSTORE_BLK
@@ -0,0 +1,23 @@
+# CONFIG_PSTORE_BLK:
+#
+# This enables panic and oops message to be logged to a block dev
+# where it can be read back at some later point.
+#
+# For more information, see Documentation/admin-guide/pstore-blk.rst
+#
+# If unsure, say N.
+#
+# Symbol: PSTORE_BLK [=n]
+# Type : tristate
+# Defined at fs/pstore/Kconfig:164
+# Prompt: Log panic/oops to a block device
+# Depends on: MISC_FILESYSTEMS [=y] && PSTORE [=y] && BLOCK [=y]
+# Location:
+# -> File systems
+# -> Miscellaneous filesystems (MISC_FILESYSTEMS [=y])
+# -> Persistent store support (PSTORE [=y])
+# Selects: PSTORE_ZONE [=n]
+#
+#
+#
+CONFIG_PSTORE_BLK=m
diff --git a/configs/fedora/generic/CONFIG_PSTORE_BLK_BLKDEV b/configs/fedora/generic/CONFIG_PSTORE_BLK_BLKDEV
new file mode 100644
index 000000000..01e947530
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_PSTORE_BLK_BLKDEV
@@ -0,0 +1,40 @@
+# CONFIG_PSTORE_BLK_BLKDEV:
+#
+# Which block device should be used for pstore/blk.
+#
+# It accepts the following variants:
+# 1) <hex_major><hex_minor> device number in hexadecimal representation,
+# with no leading 0x, for example b302.
+# 2) /dev/<disk_name> represents the device name of disk
+# 3) /dev/<disk_name><decimal> represents the device name and number
+# of partition - device number of disk plus the partition number
+# 4) /dev/<disk_name>p<decimal> - same as the above, this form is
+# used when disk name of partitioned disk ends with a digit.
+# 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
+# unique id of a partition if the partition table provides it.
+# The UUID may be either an EFI/GPT UUID, or refer to an MSDOS
+# partition using the format SSSSSSSS-PP, where SSSSSSSS is a zero-
+# filled hex representation of the 32-bit "NT disk signature", and PP
+# is a zero-filled hex representation of the 1-based partition number.
+# 6) PARTUUID=<UUID>/PARTNROFF=<int> to select a partition in relation
+# to a partition with a known unique id.
+# 7) <major>:<minor> major and minor number of the device separated by
+# a colon.
+#
+# NOTE that, both Kconfig and module parameters can configure
+# pstore/blk, but module parameters have priority over Kconfig.
+#
+# Symbol: PSTORE_BLK_BLKDEV [=]
+# Type : string
+# Defined at fs/pstore/Kconfig:178
+# Prompt: block device identifier
+# Depends on: MISC_FILESYSTEMS [=y] && PSTORE_BLK [=m]
+# Location:
+# -> File systems
+# -> Miscellaneous filesystems (MISC_FILESYSTEMS [=y])
+# -> Persistent store support (PSTORE [=y])
+# -> Log panic/oops to a block device (PSTORE_BLK [=m])
+#
+#
+#
+CONFIG_PSTORE_BLK_BLKDEV=""
diff --git a/configs/fedora/generic/CONFIG_PSTORE_BLK_KMSG_SIZE b/configs/fedora/generic/CONFIG_PSTORE_BLK_KMSG_SIZE
new file mode 100644
index 000000000..b7de7e902
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_PSTORE_BLK_KMSG_SIZE
@@ -0,0 +1,22 @@
+# CONFIG_PSTORE_BLK_KMSG_SIZE:
+#
+# This just sets size of kmsg dump (oops, panic, etc) log for
+# pstore/blk. The size is in KB and must be a multiple of 4.
+#
+# NOTE that, both Kconfig and module parameters can configure
+# pstore/blk, but module parameters have priority over Kconfig.
+#
+# Symbol: PSTORE_BLK_KMSG_SIZE [=64]
+# Type : integer
+# Defined at fs/pstore/Kconfig:207
+# Prompt: Size in Kbytes of kmsg dump log to store
+# Depends on: MISC_FILESYSTEMS [=y] && PSTORE_BLK [=m]
+# Location:
+# -> File systems
+# -> Miscellaneous filesystems (MISC_FILESYSTEMS [=y])
+# -> Persistent store support (PSTORE [=y])
+# -> Log panic/oops to a block device (PSTORE_BLK [=m])
+#
+#
+#
+CONFIG_PSTORE_BLK_KMSG_SIZE=64
diff --git a/configs/fedora/generic/CONFIG_PSTORE_BLK_MAX_REASON b/configs/fedora/generic/CONFIG_PSTORE_BLK_MAX_REASON
new file mode 100644
index 000000000..294dbd1a4
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_PSTORE_BLK_MAX_REASON
@@ -0,0 +1,23 @@
+# CONFIG_PSTORE_BLK_MAX_REASON:
+#
+# The maximum reason for kmsg dumps to store. The default is
+# 2 (KMSG_DUMP_OOPS), see include/linux/kmsg_dump.h's
+# enum kmsg_dump_reason for more details.
+#
+# NOTE that, both Kconfig and module parameters can configure
+# pstore/blk, but module parameters have priority over Kconfig.
+#
+# Symbol: PSTORE_BLK_MAX_REASON [=2]
+# Type : integer
+# Defined at fs/pstore/Kconfig:218
+# Prompt: Maximum kmsg dump reason to store
+# Depends on: MISC_FILESYSTEMS [=y] && PSTORE_BLK [=m]
+# Location:
+# -> File systems
+# -> Miscellaneous filesystems (MISC_FILESYSTEMS [=y])
+# -> Persistent store support (PSTORE [=y])
+# -> Log panic/oops to a block device (PSTORE_BLK [=m])
+#
+#
+#
+CONFIG_PSTORE_BLK_MAX_REASON=2
diff --git a/configs/fedora/generic/CONFIG_PTP_1588_CLOCK_VMW b/configs/fedora/generic/CONFIG_PTP_1588_CLOCK_VMW
new file mode 100644
index 000000000..4b0c1ae34
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_PTP_1588_CLOCK_VMW
@@ -0,0 +1 @@
+# CONFIG_PTP_1588_CLOCK_VMW is not set
diff --git a/configs/fedora/generic/CONFIG_QCOM_IPCC b/configs/fedora/generic/CONFIG_QCOM_IPCC
new file mode 100644
index 000000000..2ddcde4f3
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_QCOM_IPCC
@@ -0,0 +1,20 @@
+# CONFIG_QCOM_IPCC:
+#
+# Qualcomm Technologies, Inc. Inter-Processor Communication Controller
+# (IPCC) driver for MSM devices. The driver provides mailbox support for
+# sending interrupts to the clients. On the other hand, the driver also
+# acts as an interrupt controller for receiving interrupts from clients.
+# Say Y here if you want to build this driver.
+#
+# Symbol: QCOM_IPCC [=n]
+# Type : bool
+# Defined at drivers/mailbox/Kconfig:247
+# Prompt: Qualcomm Technologies, Inc. IPCC driver
+# Depends on: MAILBOX [=y] && (ARCH_QCOM [=y] || COMPILE_TEST [=n])
+# Location:
+# -> Device Drivers
+# -> Mailbox Hardware Support (MAILBOX [=y])
+#
+#
+#
+# CONFIG_QCOM_IPCC is not set
diff --git a/configs/fedora/generic/CONFIG_QCOM_OCMEM b/configs/fedora/generic/CONFIG_QCOM_OCMEM
new file mode 100644
index 000000000..e4a4d8bc7
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_QCOM_OCMEM
@@ -0,0 +1,21 @@
+# CONFIG_QCOM_OCMEM:
+#
+# The On Chip Memory (OCMEM) allocator allows various clients to
+# allocate memory from OCMEM based on performance, latency and power
+# requirements. This is typically used by the GPU, camera/video, and
+# audio components on some Snapdragon SoCs.
+#
+# Symbol: QCOM_OCMEM [=n]
+# Type : tristate
+# Prompt: Qualcomm On Chip Memory (OCMEM) driver
+# Location:
+# -> Device Drivers
+# -> SOC (System On Chip) specific Drivers
+# -> Qualcomm SoC drivers
+# Defined at drivers/soc/qcom/Kconfig:69
+# Depends on: ARCH_QCOM [=y]
+# Selects: QCOM_SCM [=n]
+#
+#
+#
+# CONFIG_QCOM_OCMEM is not set
diff --git a/configs/fedora/generic/CONFIG_QRTR b/configs/fedora/generic/CONFIG_QRTR
new file mode 100644
index 000000000..19f911ca5
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_QRTR
@@ -0,0 +1 @@
+# CONFIG_QRTR is not set
diff --git a/configs/fedora/generic/CONFIG_QRTR_MHI b/configs/fedora/generic/CONFIG_QRTR_MHI
new file mode 100644
index 000000000..05dd502bd
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_QRTR_MHI
@@ -0,0 +1,18 @@
+# CONFIG_QRTR_MHI:
+#
+# Say Y here to support MHI based ipcrouter channels. MHI is the
+# transport used for communicating to external modems.
+#
+# Symbol: QRTR_MHI [=n]
+# Type : tristate
+# Defined at net/qrtr/Kconfig:31
+# Prompt: MHI IPC Router channels
+# Depends on: NET [=y] && QRTR [=m] && MHI_BUS [=m]
+# Location:
+# -> Networking support (NET [=y])
+# -> Networking options
+# -> Qualcomm IPC Router support (QRTR [=m])
+#
+#
+#
+CONFIG_QRTR_MHI=m
diff --git a/configs/fedora/generic/arm/CONFIG_QUICC_ENGINE b/configs/fedora/generic/CONFIG_QUICC_ENGINE
index b340a0279..b340a0279 100644
--- a/configs/fedora/generic/arm/CONFIG_QUICC_ENGINE
+++ b/configs/fedora/generic/CONFIG_QUICC_ENGINE
diff --git a/configs/fedora/generic/CONFIG_REFCOUNT_FULL b/configs/fedora/generic/CONFIG_REFCOUNT_FULL
new file mode 100644
index 000000000..0789ed3be
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_REFCOUNT_FULL
@@ -0,0 +1 @@
+# CONFIG_REFCOUNT_FULL is not set
diff --git a/configs/fedora/generic/CONFIG_REGULATOR_MAX77826 b/configs/fedora/generic/CONFIG_REGULATOR_MAX77826
new file mode 100644
index 000000000..8803b5a85
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_REGULATOR_MAX77826
@@ -0,0 +1,20 @@
+# CONFIG_REGULATOR_MAX77826:
+#
+# This driver controls a Maxim 77826 regulator via I2C bus.
+# The regulator include 15 LDOs, BUCK and BUCK BOOST regulator.
+# It includes support for control of output voltage. This
+# regulator is found on the Samsung Galaxy S5 (klte) smartphone.
+#
+# Symbol: REGULATOR_MAX77826 [=n]
+# Type : tristate
+# Defined at drivers/regulator/Kconfig:589
+# Prompt: Maxim 77826 regulator
+# Depends on: REGULATOR [=y] && I2C [=y]
+# Location:
+# -> Device Drivers
+# -> Voltage and Current Regulator Support (REGULATOR [=y])
+# Selects: REGMAP_I2C [=y]
+#
+#
+#
+# CONFIG_REGULATOR_MAX77826 is not set
diff --git a/configs/fedora/generic/CONFIG_RTW88_8723DE b/configs/fedora/generic/CONFIG_RTW88_8723DE
new file mode 100644
index 000000000..64f027c61
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_RTW88_8723DE
@@ -0,0 +1,22 @@
+# CONFIG_RTW88_8723DE:
+#
+# Select this option will enable support for 8723DE chipset
+#
+# 802.11n PCIe wireless network adapter
+#
+# Symbol: RTW88_8723DE [=n]
+# Type : tristate
+# Defined at drivers/net/wireless/realtek/rtw88/Kconfig:50
+# Prompt: Realtek 8723DE PCI wireless network adapter
+# Depends on: NETDEVICES [=y] && WLAN [=y] && WLAN_VENDOR_REALTEK [=y] && RTW88 [=m] && PCI [=y]
+# Location:
+# -> Device Drivers
+# -> Network device support (NETDEVICES [=y])
+# -> Wireless LAN (WLAN [=y])
+# -> Realtek devices (WLAN_VENDOR_REALTEK [=y])
+# -> Realtek 802.11ac wireless chips support (RTW88 [=m])
+# Selects: RTW88_CORE [=m] && RTW88_PCI [=m] && RTW88_8723D [=n]
+#
+#
+#
+CONFIG_RTW88_8723DE=m
diff --git a/configs/fedora/generic/CONFIG_RTW88_8822BE b/configs/fedora/generic/CONFIG_RTW88_8822BE
index 9409e72ea..d7170a75d 100644
--- a/configs/fedora/generic/CONFIG_RTW88_8822BE
+++ b/configs/fedora/generic/CONFIG_RTW88_8822BE
@@ -1 +1 @@
-CONFIG_RTW88_8822BE=y
+CONFIG_RTW88_8822BE=m
diff --git a/configs/fedora/generic/CONFIG_RTW88_8822CE b/configs/fedora/generic/CONFIG_RTW88_8822CE
index afea3100f..2cc838e52 100644
--- a/configs/fedora/generic/CONFIG_RTW88_8822CE
+++ b/configs/fedora/generic/CONFIG_RTW88_8822CE
@@ -1 +1 @@
-CONFIG_RTW88_8822CE=y
+CONFIG_RTW88_8822CE=m
diff --git a/configs/fedora/generic/CONFIG_SENSORS_AMD_ENERGY b/configs/fedora/generic/CONFIG_SENSORS_AMD_ENERGY
new file mode 100644
index 000000000..8a4fc5222
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SENSORS_AMD_ENERGY
@@ -0,0 +1 @@
+# CONFIG_SENSORS_AMD_ENERGY is not set
diff --git a/configs/fedora/generic/CONFIG_SENSORS_MAX16601 b/configs/fedora/generic/CONFIG_SENSORS_MAX16601
new file mode 100644
index 000000000..4fa6afb57
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SENSORS_MAX16601
@@ -0,0 +1 @@
+# CONFIG_SENSORS_MAX16601 is not set
diff --git a/configs/fedora/generic/CONFIG_SERIAL_LANTIQ b/configs/fedora/generic/CONFIG_SERIAL_LANTIQ
new file mode 100644
index 000000000..5fc2caf1f
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SERIAL_LANTIQ
@@ -0,0 +1,21 @@
+# CONFIG_SERIAL_LANTIQ:
+#
+# Support for UART on Lantiq and Intel SoCs.
+# To compile this driver as a module, select M here. The
+# module will be called lantiq.
+#
+# Symbol: SERIAL_LANTIQ [=n]
+# Type : tristate
+# Defined at drivers/tty/serial/Kconfig:1036
+# Prompt: Lantiq serial driver
+# Depends on: TTY [=y] && HAS_IOMEM [=y] && (LANTIQ || X86 [=y] || COMPILE_TEST [=n])
+# Location:
+# -> Device Drivers
+# -> Character devices
+# -> Enable TTY (TTY [=y])
+# -> Serial drivers
+# Selects: SERIAL_CORE [=y]
+#
+#
+#
+# CONFIG_SERIAL_LANTIQ is not set
diff --git a/configs/fedora/generic/CONFIG_SND_SOC_AMD_RENOIR b/configs/fedora/generic/CONFIG_SND_SOC_AMD_RENOIR
new file mode 100644
index 000000000..cd2ab9040
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SND_SOC_AMD_RENOIR
@@ -0,0 +1,18 @@
+# CONFIG_SND_SOC_AMD_RENOIR:
+#
+# This option enables ACP support for Renoir platform
+#
+# Symbol: SND_SOC_AMD_RENOIR [=n]
+# Type : tristate
+# Defined at sound/soc/amd/Kconfig:40
+# Prompt: AMD Audio Coprocessor - Renoir support
+# Depends on: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && X86 [=y] && PCI [=y]
+# Location:
+# -> Device Drivers
+# -> Sound card support (SOUND [=m])
+# -> Advanced Linux Sound Architecture (SND [=m])
+# -> ALSA for SoC audio support (SND_SOC [=m])
+#
+#
+#
+# CONFIG_SND_SOC_AMD_RENOIR is not set
diff --git a/configs/fedora/generic/CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH b/configs/fedora/generic/CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH
new file mode 100644
index 000000000..08ec882bb
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH
@@ -0,0 +1 @@
+CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
diff --git a/configs/fedora/generic/CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH b/configs/fedora/generic/CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH
new file mode 100644
index 000000000..bc1e5017d
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH
@@ -0,0 +1,21 @@
+# CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH:
+#
+# This adds support for ASoC machine driver for Elkhart Lake
+# platform with RT5660 I2S audio codec.
+#
+# Symbol: SND_SOC_INTEL_EHL_RT5660_MACH [=n]
+# Type : tristate
+# Defined at sound/soc/intel/boards/Kconfig:545
+# Prompt: EHL with RT5660 in I2S mode
+# Depends on: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_SOC_INTEL_MACH [=y] && SND_SOC_SOF_ELKHARTLAKE [=m] && I2C [=y] && ACPI [=y] && GPIOLIB [=y] && (MFD_INTEL_LPSS [=y] || COMPILE_TEST [=n]) && SND_HDA_CODEC_HDMI [=m] && SND_SOC_SOF_HDA_AUDIO_CODEC [=y]
+# Location:
+# -> Device Drivers
+# -> Sound card support (SOUND [=m])
+# -> Advanced Linux Sound Architecture (SND [=m])
+# -> ALSA for SoC audio support (SND_SOC [=m])
+# -> Intel Machine drivers (SND_SOC_INTEL_MACH [=y])
+# Selects: SND_SOC_RT5660 [=m] && SND_SOC_DMIC [=m]
+#
+#
+#
+# CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH is not set
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH b/configs/fedora/generic/CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH
index fb43c5728..fb43c5728 100644
--- a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH
+++ b/configs/fedora/generic/CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH
diff --git a/configs/fedora/generic/CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH b/configs/fedora/generic/CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH
new file mode 100644
index 000000000..202eaec68
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH
@@ -0,0 +1,23 @@
+# CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH:
+#
+# This adds support for ASoC machine driver for Intel platforms
+# with the Wolfson/Cirrus WM8804 I2S audio codec.
+# Say Y or m if you have such a device. This is a recommended option.
+# If unsure select "N".
+#
+# Symbol: SND_SOC_INTEL_SOF_WM8804_MACH [=n]
+# Type : tristate
+# Defined at sound/soc/intel/boards/Kconfig:329
+# Prompt: SOF with Wolfson/Cirrus WM8804 codec
+# Depends on: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_SOC_INTEL_MACH [=y] && SND_SOC_SOF_APOLLOLAKE [=m] && I2C [=y] && ACPI [=y] && (MFD_INTEL_LPSS [=y] || COMPILE_TEST [=n])
+# Location:
+# -> Device Drivers
+# -> Sound card support (SOUND [=m])
+# -> Advanced Linux Sound Architecture (SND [=m])
+# -> ALSA for SoC audio support (SND_SOC [=m])
+# -> Intel Machine drivers (SND_SOC_INTEL_MACH [=y])
+# Selects: SND_SOC_WM8804_I2C [=n]
+#
+#
+#
+# CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH is not set
diff --git a/configs/fedora/generic/CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES b/configs/fedora/generic/CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES
new file mode 100644
index 000000000..1e007232f
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES
@@ -0,0 +1 @@
+CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
diff --git a/configs/fedora/generic/CONFIG_SND_SOC_MAX98390 b/configs/fedora/generic/CONFIG_SND_SOC_MAX98390
new file mode 100644
index 000000000..170b80f82
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SND_SOC_MAX98390
@@ -0,0 +1 @@
+CONFIG_SND_SOC_MAX98390=m
diff --git a/configs/fedora/generic/CONFIG_SND_SOC_PCM512x_I2C b/configs/fedora/generic/CONFIG_SND_SOC_PCM512x_I2C
index dc0ba2922..4482311b2 100644
--- a/configs/fedora/generic/CONFIG_SND_SOC_PCM512x_I2C
+++ b/configs/fedora/generic/CONFIG_SND_SOC_PCM512x_I2C
@@ -1 +1 @@
-CONFIG_SND_SOC_PCM512x_I2C=m
+# CONFIG_SND_SOC_PCM512x_I2C is not set
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 b/configs/fedora/generic/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1
index 3d5403951..3d5403951 100644
--- a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1
+++ b/configs/fedora/generic/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1
diff --git a/configs/fedora/generic/CONFIG_SND_SOC_ZL38060 b/configs/fedora/generic/CONFIG_SND_SOC_ZL38060
new file mode 100644
index 000000000..aab446602
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SND_SOC_ZL38060
@@ -0,0 +1,24 @@
+# CONFIG_SND_SOC_ZL38060:
+#
+# Support for ZL38060 Connected Home Audio Processor from Microsemi,
+# which consists of a Digital Signal Processor (DSP), several Digital
+# Audio Interfaces (DAIs), analog outputs, and a block of 14 GPIOs.
+#
+# Symbol: SND_SOC_ZL38060 [=n]
+# Type : tristate
+# Defined at sound/soc/codecs/Kconfig:1660
+# Prompt: Microsemi ZL38060 Connected Home Audio Processor
+# Depends on: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SPI_MASTER [=y]
+# Location:
+# -> Device Drivers
+# -> Sound card support (SOUND [=m])
+# -> Advanced Linux Sound Architecture (SND [=m])
+# -> ALSA for SoC audio support (SND_SOC [=m])
+# -> CODEC drivers
+# Selects: GPIOLIB [=y] && REGMAP [=y]
+# Implied by [n]:
+# - SND_SOC_ALL_CODECS [=n] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && COMPILE_TEST [=n]
+#
+#
+#
+CONFIG_SND_SOC_ZL38060=m
diff --git a/configs/fedora/generic/CONFIG_SPI_AMD b/configs/fedora/generic/CONFIG_SPI_AMD
new file mode 100644
index 000000000..ac7ea25e0
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SPI_AMD
@@ -0,0 +1,16 @@
+# CONFIG_SPI_AMD:
+#
+# Enables SPI controller driver for AMD SoC.
+#
+# Symbol: SPI_AMD [=n]
+# Type : tristate
+# Defined at drivers/spi/Kconfig:917
+# Prompt: AMD SPI controller
+# Depends on: SPI [=y] && SPI_MASTER [=y] && (SPI_MASTER [=y] || COMPILE_TEST [=n])
+# Location:
+# -> Device Drivers
+# -> SPI support (SPI [=y])
+#
+#
+#
+# CONFIG_SPI_AMD is not set
diff --git a/configs/fedora/generic/CONFIG_STAGING_EXFAT_FS b/configs/fedora/generic/CONFIG_STAGING_EXFAT_FS
deleted file mode 100644
index ddd3656b3..000000000
--- a/configs/fedora/generic/CONFIG_STAGING_EXFAT_FS
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_STAGING_EXFAT_FS is not set
diff --git a/configs/fedora/generic/CONFIG_SURFACE_3_POWER_OPREGION b/configs/fedora/generic/CONFIG_SURFACE_3_POWER_OPREGION
new file mode 100644
index 000000000..aaa37ad19
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SURFACE_3_POWER_OPREGION
@@ -0,0 +1 @@
+# CONFIG_SURFACE_3_POWER_OPREGION is not set
diff --git a/configs/fedora/generic/CONFIG_SX9310 b/configs/fedora/generic/CONFIG_SX9310
new file mode 100644
index 000000000..910bedc18
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SX9310
@@ -0,0 +1,22 @@
+# CONFIG_SX9310:
+#
+# Say Y here to build a driver for Semtech's SX9310/SX9311 capacitive
+# proximity/button sensor.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called sx9310.
+#
+# Symbol: SX9310 [=n]
+# Type : tristate
+# Defined at drivers/iio/proximity/Kconfig:104
+# Prompt: SX9310/SX9311 Semtech proximity sensor
+# Depends on: IIO [=m] && I2C [=y]
+# Location:
+# -> Device Drivers
+# -> Industrial I/O support (IIO [=m])
+# -> Proximity and distance sensors
+# Selects: IIO_BUFFER [=y] && IIO_TRIGGERED_BUFFER [=m] && REGMAP_I2C [=y]
+#
+#
+#
+CONFIG_SX9310=m
diff --git a/configs/fedora/generic/CONFIG_SYNTH_EVENTS b/configs/fedora/generic/CONFIG_SYNTH_EVENTS
new file mode 100644
index 000000000..57527e3de
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SYNTH_EVENTS
@@ -0,0 +1,28 @@
+# CONFIG_SYNTH_EVENTS:
+#
+# Synthetic events are user-defined trace events that can be
+# used to combine data from other trace events or in fact any
+# data source. Synthetic events can be generated indirectly
+# via the trace() action of histogram triggers or directly
+# by way of an in-kernel API.
+#
+# See Documentation/trace/events.rst or
+# Documentation/trace/histogram.rst for details and examples.
+#
+# If in doubt, say N.
+#
+# Symbol: SYNTH_EVENTS [=n]
+# Type : bool
+# Defined at kernel/trace/Kconfig:608
+# Prompt: Synthetic trace events
+# Depends on: TRACING_SUPPORT [=y] && FTRACE [=y]
+# Location:
+# -> Kernel hacking
+# -> Tracers (FTRACE [=y])
+# Selects: TRACING [=y] && DYNAMIC_EVENTS [=y]
+# Selected by [n]:
+# - HIST_TRIGGERS [=n] && TRACING_SUPPORT [=y] && FTRACE [=y] && ARCH_HAVE_NMI_SAFE_CMPXCHG [=n]
+#
+#
+#
+CONFIG_SYNTH_EVENTS=y
diff --git a/configs/fedora/generic/CONFIG_SYSTEM76_ACPI b/configs/fedora/generic/CONFIG_SYSTEM76_ACPI
new file mode 100644
index 000000000..40471194d
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SYSTEM76_ACPI
@@ -0,0 +1 @@
+# CONFIG_SYSTEM76_ACPI is not set
diff --git a/configs/fedora/generic/CONFIG_NVME_TCP b/configs/fedora/generic/CONFIG_TARGET_TCP
index 738cd8284..738cd8284 100644
--- a/configs/fedora/generic/CONFIG_NVME_TCP
+++ b/configs/fedora/generic/CONFIG_TARGET_TCP
diff --git a/configs/fedora/generic/CONFIG_TEST_BITOPS b/configs/fedora/generic/CONFIG_TEST_BITOPS
new file mode 100644
index 000000000..86e8dea05
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_TEST_BITOPS
@@ -0,0 +1,24 @@
+# CONFIG_TEST_BITOPS:
+#
+# This builds the "test_bitops" module that is much like the
+# TEST_LKM module except that it does a basic exercise of the
+# clear_bit and set_bit macros to make sure there are no compiler
+# warnings from C=1 sparse checker or -Wextra compilations. It has
+# no dependencies and doesn't run or load unless explicitly requested
+# by name. for example: modprobe test_bitops.
+#
+# If unsure, say N.
+#
+# Symbol: TEST_BITOPS [=n]
+# Type : tristate
+# Defined at lib/Kconfig.debug:2025
+# Prompt: Test module for compilation of clear_bit/set_bit operations
+# Depends on: RUNTIME_TESTING_MENU [=y] && m && MODULES [=y]
+# Location:
+# -> Kernel hacking
+# -> Kernel Testing and Coverage
+# -> Runtime Testing (RUNTIME_TESTING_MENU [=y])
+#
+#
+#
+# CONFIG_TEST_BITOPS is not set
diff --git a/configs/fedora/generic/CONFIG_TEST_HMM b/configs/fedora/generic/CONFIG_TEST_HMM
new file mode 100644
index 000000000..5210be0d7
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_TEST_HMM
@@ -0,0 +1 @@
+# CONFIG_TEST_HMM is not set
diff --git a/configs/fedora/generic/x86/CONFIG_TIME_NS b/configs/fedora/generic/CONFIG_TIME_NS
index 4480620f6..4480620f6 100644
--- a/configs/fedora/generic/x86/CONFIG_TIME_NS
+++ b/configs/fedora/generic/CONFIG_TIME_NS
diff --git a/configs/fedora/generic/CONFIG_TOUCHSCREEN_CY8CTMA140 b/configs/fedora/generic/CONFIG_TOUCHSCREEN_CY8CTMA140
new file mode 100644
index 000000000..cf84427b3
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_TOUCHSCREEN_CY8CTMA140
@@ -0,0 +1,24 @@
+# CONFIG_TOUCHSCREEN_CY8CTMA140:
+#
+# Say Y here if you have a Cypress CY8CTMA140 capacitive
+# touchscreen also just known as "TMA140"
+#
+# If unsure, say N.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called cy8ctma140.
+#
+# Symbol: TOUCHSCREEN_CY8CTMA140 [=n]
+# Type : tristate
+# Defined at drivers/input/touchscreen/Kconfig:204
+# Prompt: cy8ctma140 touchscreen
+# Depends on: !UML && INPUT [=y] && INPUT_TOUCHSCREEN [=y] && I2C [=y]
+# Location:
+# -> Device Drivers
+# -> Input device support
+# -> Generic input layer (needed for keyboard, mouse, ...) (INPUT [=y])
+# -> Touchscreens (INPUT_TOUCHSCREEN [=y])
+#
+#
+#
+CONFIG_TOUCHSCREEN_CY8CTMA140=m
diff --git a/configs/fedora/generic/CONFIG_USB4 b/configs/fedora/generic/CONFIG_USB4
new file mode 100644
index 000000000..cda710060
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_USB4
@@ -0,0 +1 @@
+CONFIG_USB4=y
diff --git a/configs/fedora/generic/x86/CONFIG_USB4_NET b/configs/fedora/generic/CONFIG_USB4_NET
index 2d51af31b..2d51af31b 100644
--- a/configs/fedora/generic/x86/CONFIG_USB4_NET
+++ b/configs/fedora/generic/CONFIG_USB4_NET
diff --git a/configs/fedora/generic/CONFIG_USB_XHCI_PCI_RENESAS b/configs/fedora/generic/CONFIG_USB_XHCI_PCI_RENESAS
new file mode 100644
index 000000000..1878a6c74
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_USB_XHCI_PCI_RENESAS
@@ -0,0 +1,20 @@
+# CONFIG_USB_XHCI_PCI_RENESAS:
+#
+# Say 'Y' to enable the support for the Renesas xHCI controller with
+# firwmare. Make sure you have the firwmare for the device and
+# installed on your system for this device to work.
+# If unsure, say 'N'.
+#
+# Symbol: USB_XHCI_PCI_RENESAS [=n]
+# Type : tristate
+# Defined at drivers/usb/host/Kconfig:46
+# Prompt: Support for additional Renesas xHCI controller with firwmare
+# Depends on: USB_SUPPORT [=y] && USB [=y] && USB_XHCI_HCD [=y]
+# Location:
+# -> Device Drivers
+# -> USB support (USB_SUPPORT [=y])
+# -> xHCI HCD (USB 3.0) support (USB_XHCI_HCD [=y])
+#
+#
+#
+CONFIG_USB_XHCI_PCI_RENESAS=m
diff --git a/configs/fedora/generic/CONFIG_VBOXSF_FS b/configs/fedora/generic/CONFIG_VBOXSF_FS
new file mode 100644
index 000000000..7fb11ee4b
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VBOXSF_FS
@@ -0,0 +1 @@
+# CONFIG_VBOXSF_FS is not set
diff --git a/configs/fedora/generic/CONFIG_VCNL3020 b/configs/fedora/generic/CONFIG_VCNL3020
new file mode 100644
index 000000000..156fa15d0
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VCNL3020
@@ -0,0 +1,22 @@
+# CONFIG_VCNL3020:
+#
+# Say Y here if you want to build a driver for the Vishay VCNL3020
+# proximity sensor.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called vcnl3020.
+#
+# Symbol: VCNL3020 [=n]
+# Type : tristate
+# Defined at drivers/iio/proximity/Kconfig:143
+# Prompt: VCNL3020 proximity sensor
+# Depends on: IIO [=m] && I2C [=y]
+# Location:
+# -> Device Drivers
+# -> Industrial I/O support (IIO [=m])
+# -> Proximity and distance sensors
+# Selects: REGMAP_I2C [=y]
+#
+#
+#
+CONFIG_VCNL3020=m
diff --git a/configs/fedora/generic/CONFIG_VEXPRESS_CONFIG b/configs/fedora/generic/CONFIG_VEXPRESS_CONFIG
new file mode 100644
index 000000000..a2c1cb307
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VEXPRESS_CONFIG
@@ -0,0 +1,18 @@
+# CONFIG_VEXPRESS_CONFIG:
+#
+# Platform configuration infrastructure for the ARM Ltd.
+# Versatile Express.
+#
+# Symbol: VEXPRESS_CONFIG [=y]
+# Type : tristate
+# Defined at drivers/bus/Kconfig:224
+# Prompt: Versatile Express configuration bus
+# Depends on: (ARM || ARM64 [=y]) && OF [=y]
+# Location:
+# -> Device Drivers
+# -> Bus devices
+# Selects: REGMAP [=y]
+#
+#
+#
+CONFIG_VEXPRESS_CONFIG=y
diff --git a/configs/fedora/generic/CONFIG_VIDEO_AD5820 b/configs/fedora/generic/CONFIG_VIDEO_AD5820
new file mode 100644
index 000000000..c7c6cdbae
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_AD5820
@@ -0,0 +1,21 @@
+# CONFIG_VIDEO_AD5820:
+#
+# This is a driver for the AD5820 camera lens voice coil.
+# It is used for example in Nokia N900 (RX-51).
+#
+# Symbol: VIDEO_AD5820 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:1226
+# Prompt: AD5820 lens voice coil support
+# Depends on: MEDIA_SUPPORT [=m] && GPIOLIB [=y] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && GPIOLIB [=y] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Lens drivers
+# Selects: MEDIA_CONTROLLER [=y]
+#
+#
+#
+CONFIG_VIDEO_AD5820=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_ADP1653 b/configs/fedora/generic/CONFIG_VIDEO_ADP1653
new file mode 100644
index 000000000..033a028e1
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_ADP1653
@@ -0,0 +1,21 @@
+# CONFIG_VIDEO_ADP1653:
+#
+# This is a driver for the ADP1653 flash controller. It is used for
+# example in Nokia N900.
+#
+# Symbol: VIDEO_ADP1653 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:1272
+# Prompt: ADP1653 flash support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Flash devices
+# Selects: MEDIA_CONTROLLER [=y]
+#
+#
+#
+CONFIG_VIDEO_ADP1653=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_AK7375 b/configs/fedora/generic/CONFIG_VIDEO_AK7375
new file mode 100644
index 000000000..c107cd8af
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_AK7375
@@ -0,0 +1,23 @@
+# CONFIG_VIDEO_AK7375:
+#
+# This is a driver for the AK7375 camera lens voice coil.
+# AK7375 is a 12 bit DAC with 120mA output current sink
+# capability. This is designed for linear control of
+# voice coil motors, controlled via I2C serial interface.
+#
+# Symbol: VIDEO_AK7375 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:1234
+# Prompt: AK7375 lens voice coil support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Lens drivers
+# Selects: MEDIA_CONTROLLER [=y] && VIDEO_V4L2_SUBDEV_API [=y]
+#
+#
+#
+CONFIG_VIDEO_AK7375=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_DW9714 b/configs/fedora/generic/CONFIG_VIDEO_DW9714
new file mode 100644
index 000000000..f22564b89
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_DW9714
@@ -0,0 +1,23 @@
+# CONFIG_VIDEO_DW9714:
+#
+# This is a driver for the DW9714 camera lens voice coil.
+# DW9714 is a 10 bit DAC with 120mA output current sink
+# capability. This is designed for linear control of
+# voice coil motors, controlled via I2C serial interface.
+#
+# Symbol: VIDEO_DW9714 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:1245
+# Prompt: DW9714 lens voice coil support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Lens drivers
+# Selects: MEDIA_CONTROLLER [=y] && VIDEO_V4L2_SUBDEV_API [=y]
+#
+#
+#
+CONFIG_VIDEO_DW9714=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_DW9807_VCM b/configs/fedora/generic/CONFIG_VIDEO_DW9807_VCM
new file mode 100644
index 000000000..a7a8a97c9
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_DW9807_VCM
@@ -0,0 +1,23 @@
+# CONFIG_VIDEO_DW9807_VCM:
+#
+# This is a driver for the DW9807 camera lens voice coil.
+# DW9807 is a 10 bit DAC with 100mA output current sink
+# capability. This is designed for linear control of
+# voice coil motors, controlled via I2C serial interface.
+#
+# Symbol: VIDEO_DW9807_VCM [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:1256
+# Prompt: DW9807 lens voice coil support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Lens drivers
+# Selects: MEDIA_CONTROLLER [=y] && VIDEO_V4L2_SUBDEV_API [=y]
+#
+#
+#
+CONFIG_VIDEO_DW9807_VCM=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_ET8EK8 b/configs/fedora/generic/CONFIG_VIDEO_ET8EK8
new file mode 100644
index 000000000..de9bd2729
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_ET8EK8
@@ -0,0 +1,21 @@
+# CONFIG_VIDEO_ET8EK8:
+#
+# This is a driver for the Toshiba ET8EK8 5 MP camera sensor.
+# It is used for example in Nokia N900 (RX-51).
+#
+# Symbol: VIDEO_ET8EK8 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/et8ek8/Kconfig:2
+# Prompt: ET8EK8 camera sensor support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+# Selects: MEDIA_CONTROLLER [=y] && VIDEO_V4L2_SUBDEV_API [=y] && V4L2_FWNODE [=m]
+#
+#
+#
+CONFIG_VIDEO_ET8EK8=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_HI556 b/configs/fedora/generic/CONFIG_VIDEO_HI556
new file mode 100644
index 000000000..d37b1bd54
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_HI556
@@ -0,0 +1,24 @@
+# CONFIG_VIDEO_HI556:
+#
+# This is a Video4Linux2 sensor driver for the Hynix
+# Hi-556 camera.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called hi556.
+#
+# Symbol: VIDEO_HI556 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:715
+# Prompt: Hynix Hi-556 sensor support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+# Selects: MEDIA_CONTROLLER [=y] && VIDEO_V4L2_SUBDEV_API [=y] && V4L2_FWNODE [=m]
+#
+#
+#
+CONFIG_VIDEO_HI556=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_IMX214 b/configs/fedora/generic/CONFIG_VIDEO_IMX214
new file mode 100644
index 000000000..8e362c641
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_IMX214
@@ -0,0 +1,24 @@
+# CONFIG_VIDEO_IMX214:
+#
+# This is a Video4Linux2 sensor driver for the Sony
+# IMX214 camera.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called imx214.
+#
+# Symbol: VIDEO_IMX214 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:728
+# Prompt: Sony IMX214 sensor support
+# Depends on: MEDIA_SUPPORT [=m] && GPIOLIB [=y] && I2C [=y] && VIDEO_V4L2 [=m] && V4L2_FWNODE [=m]
+# Visible if: MEDIA_SUPPORT [=m] && GPIOLIB [=y] && I2C [=y] && VIDEO_V4L2 [=m] && V4L2_FWNODE [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+# Selects: MEDIA_CONTROLLER [=y] && VIDEO_V4L2_SUBDEV_API [=y] && REGMAP_I2C [=y]
+#
+#
+#
+CONFIG_VIDEO_IMX214=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_IMX219 b/configs/fedora/generic/CONFIG_VIDEO_IMX219
new file mode 100644
index 000000000..c4bdcef59
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_IMX219
@@ -0,0 +1,24 @@
+# CONFIG_VIDEO_IMX219:
+#
+# This is a Video4Linux2 sensor driver for the Sony
+# IMX219 camera.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called imx219.
+#
+# Symbol: VIDEO_IMX219 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:742
+# Prompt: Sony IMX219 sensor support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+# Selects: MEDIA_CONTROLLER [=y] && VIDEO_V4L2_SUBDEV_API [=y] && V4L2_FWNODE [=m]
+#
+#
+#
+CONFIG_VIDEO_IMX219=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_IMX258 b/configs/fedora/generic/CONFIG_VIDEO_IMX258
new file mode 100644
index 000000000..9f21450c5
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_IMX258
@@ -0,0 +1,24 @@
+# CONFIG_VIDEO_IMX258:
+#
+# This is a Video4Linux2 sensor driver for the Sony
+# IMX258 camera.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called imx258.
+#
+# Symbol: VIDEO_IMX258 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:755
+# Prompt: Sony IMX258 sensor support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+# Selects: MEDIA_CONTROLLER [=y] && VIDEO_V4L2_SUBDEV_API [=y]
+#
+#
+#
+CONFIG_VIDEO_IMX258=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_IMX274 b/configs/fedora/generic/CONFIG_VIDEO_IMX274
new file mode 100644
index 000000000..3f89e3512
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_IMX274
@@ -0,0 +1,21 @@
+# CONFIG_VIDEO_IMX274:
+#
+# This is a V4L2 sensor driver for the Sony IMX274
+# CMOS image sensor.
+#
+# Symbol: VIDEO_IMX274 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:767
+# Prompt: Sony IMX274 sensor support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+# Selects: MEDIA_CONTROLLER [=y] && VIDEO_V4L2_SUBDEV_API [=y] && REGMAP_I2C [=y]
+#
+#
+#
+CONFIG_VIDEO_IMX274=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_IMX290 b/configs/fedora/generic/CONFIG_VIDEO_IMX290
new file mode 100644
index 000000000..a39625af6
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_IMX290
@@ -0,0 +1,24 @@
+# CONFIG_VIDEO_IMX290:
+#
+# This is a Video4Linux2 sensor driver for the Sony
+# IMX290 camera sensor.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called imx290.
+#
+# Symbol: VIDEO_IMX290 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:777
+# Prompt: Sony IMX290 sensor support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+# Selects: MEDIA_CONTROLLER [=y] && VIDEO_V4L2_SUBDEV_API [=y] && REGMAP_I2C [=y] && V4L2_FWNODE [=m]
+#
+#
+#
+CONFIG_VIDEO_IMX290=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_IMX319 b/configs/fedora/generic/CONFIG_VIDEO_IMX319
new file mode 100644
index 000000000..0bfeec087
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_IMX319
@@ -0,0 +1,24 @@
+# CONFIG_VIDEO_IMX319:
+#
+# This is a Video4Linux2 sensor driver for the Sony
+# IMX319 camera.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called imx319.
+#
+# Symbol: VIDEO_IMX319 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:791
+# Prompt: Sony IMX319 sensor support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+# Selects: MEDIA_CONTROLLER [=y] && VIDEO_V4L2_SUBDEV_API [=y]
+#
+#
+#
+CONFIG_VIDEO_IMX319=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_IMX355 b/configs/fedora/generic/CONFIG_VIDEO_IMX355
new file mode 100644
index 000000000..5107d2450
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_IMX355
@@ -0,0 +1,24 @@
+# CONFIG_VIDEO_IMX355:
+#
+# This is a Video4Linux2 sensor driver for the Sony
+# IMX355 camera.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called imx355.
+#
+# Symbol: VIDEO_IMX355 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:803
+# Prompt: Sony IMX355 sensor support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+# Selects: MEDIA_CONTROLLER [=y] && VIDEO_V4L2_SUBDEV_API [=y]
+#
+#
+#
+CONFIG_VIDEO_IMX355=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_IPU3_CIO2 b/configs/fedora/generic/CONFIG_VIDEO_IPU3_CIO2
new file mode 100644
index 000000000..54f3191c9
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_IPU3_CIO2
@@ -0,0 +1,25 @@
+# CONFIG_VIDEO_IPU3_CIO2:
+#
+# This is the Intel IPU3 CIO2 CSI-2 receiver unit, found in Intel
+# Skylake and Kaby Lake SoCs and used for capturing images and
+# video from a camera sensor.
+#
+# Say Y or M here if you have a Skylake/Kaby Lake SoC with MIPI CSI-2
+# connected camera.
+# The module will be called ipu3-cio2.
+#
+# Symbol: VIDEO_IPU3_CIO2 [=n]
+# Type : tristate
+# Defined at drivers/media/pci/intel/ipu3/Kconfig:2
+# Prompt: Intel ipu3-cio2 driver
+# Depends on: MEDIA_SUPPORT [=m] && MEDIA_PCI_SUPPORT [=y] && VIDEO_V4L2 [=m] && PCI [=y] && (X86 [=y] && ACPI [=y] || COMPILE_TEST [=n])
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media drivers
+# -> Media PCI Adapters (MEDIA_PCI_SUPPORT [=y])
+# Selects: MEDIA_CONTROLLER [=y] && VIDEO_V4L2_SUBDEV_API [=n] && V4L2_FWNODE [=n] && VIDEOBUF2_DMA_SG [=m]
+#
+#
+#
+# CONFIG_VIDEO_IPU3_CIO2 is not set
diff --git a/configs/fedora/generic/CONFIG_VIDEO_LM3560 b/configs/fedora/generic/CONFIG_VIDEO_LM3560
new file mode 100644
index 000000000..0797bb990
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_LM3560
@@ -0,0 +1,21 @@
+# CONFIG_VIDEO_LM3560:
+#
+# This is a driver for the lm3560 dual flash controllers. It controls
+# flash, torch LEDs.
+#
+# Symbol: VIDEO_LM3560 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:1280
+# Prompt: LM3560 dual flash driver support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Flash devices
+# Selects: MEDIA_CONTROLLER [=y] && REGMAP_I2C [=y]
+#
+#
+#
+CONFIG_VIDEO_LM3560=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_LM3646 b/configs/fedora/generic/CONFIG_VIDEO_LM3646
new file mode 100644
index 000000000..aed3b4276
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_LM3646
@@ -0,0 +1,20 @@
+# CONFIG_VIDEO_LM3646:
+#
+# This is a driver for the lm3646 dual flash controllers. It controls
+# flash, torch LEDs.
+# Symbol: VIDEO_LM3646 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:1289
+# Prompt: LM3646 dual flash driver support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Flash devices
+# Selects: MEDIA_CONTROLLER [=y] && REGMAP_I2C [=y]
+#
+#
+#
+CONFIG_VIDEO_LM3646=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_M5MOLS b/configs/fedora/generic/CONFIG_VIDEO_M5MOLS
new file mode 100644
index 000000000..faf633bbb
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_M5MOLS
@@ -0,0 +1,20 @@
+# CONFIG_VIDEO_M5MOLS:
+#
+# This driver supports Fujitsu M-5MOLS camera sensor with ISP
+#
+# Symbol: VIDEO_M5MOLS [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/m5mols/Kconfig:2
+# Prompt: Fujitsu M-5MOLS 8MP sensor support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+# Selects: MEDIA_CONTROLLER [=y] && VIDEO_V4L2_SUBDEV_API [=y]
+#
+#
+#
+CONFIG_VIDEO_M5MOLS=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_MT9M001 b/configs/fedora/generic/CONFIG_VIDEO_MT9M001
new file mode 100644
index 000000000..12c082119
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_MT9M001
@@ -0,0 +1,21 @@
+# CONFIG_VIDEO_MT9M001:
+#
+# This driver supports MT9M001 cameras from Micron, monochrome
+# and colour models.
+#
+# Symbol: VIDEO_MT9M001 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:1059
+# Prompt: mt9m001 support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+# Selects: MEDIA_CONTROLLER [=y] && VIDEO_V4L2_SUBDEV_API [=y]
+#
+#
+#
+CONFIG_VIDEO_MT9M001=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_MT9M032 b/configs/fedora/generic/CONFIG_VIDEO_MT9M032
new file mode 100644
index 000000000..fd181c4a7
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_MT9M032
@@ -0,0 +1,21 @@
+# CONFIG_VIDEO_MT9M032:
+#
+# This driver supports MT9M032 camera sensors from Aptina, monochrome
+# models only.
+#
+# Symbol: VIDEO_MT9M032 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:1068
+# Prompt: MT9M032 camera sensor support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+# Selects: MEDIA_CONTROLLER [=y] && VIDEO_V4L2_SUBDEV_API [=y] && VIDEO_APTINA_PLL [=n]
+#
+#
+#
+CONFIG_VIDEO_MT9M032=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_MT9M111 b/configs/fedora/generic/CONFIG_VIDEO_MT9M111
new file mode 100644
index 000000000..ba548bbc3
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_MT9M111
@@ -0,0 +1,23 @@
+# CONFIG_VIDEO_MT9M111:
+#
+# This driver supports MT9M111, MT9M112 and MT9M131 cameras from
+# Micron/Aptina
+#
+# Symbol: VIDEO_MT9M111 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:1078
+# Prompt: mt9m111, mt9m112 and mt9m131 support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+# Selects: V4L2_FWNODE [=m]
+# Selected by [n]:
+# - SOC_CAMERA_MT9M111 [=n] && STAGING [=y] && STAGING_MEDIA [=y] && MEDIA_SUPPORT [=m] && SOC_CAMERA [=n] && I2C [=y]
+#
+#
+#
+CONFIG_VIDEO_MT9M111=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_MT9P031 b/configs/fedora/generic/CONFIG_VIDEO_MT9P031
new file mode 100644
index 000000000..fd24ae64a
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_MT9P031
@@ -0,0 +1,21 @@
+# CONFIG_VIDEO_MT9P031:
+#
+# This is a Video4Linux2 sensor driver for the Aptina
+# (Micron) mt9p031 5 Mpixel camera.
+#
+# Symbol: VIDEO_MT9P031 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:1086
+# Prompt: Aptina MT9P031 support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+# Selects: MEDIA_CONTROLLER [=y] && VIDEO_V4L2_SUBDEV_API [=y] && VIDEO_APTINA_PLL [=n]
+#
+#
+#
+CONFIG_VIDEO_MT9P031=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_MT9T001 b/configs/fedora/generic/CONFIG_VIDEO_MT9T001
new file mode 100644
index 000000000..eb16e0893
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_MT9T001
@@ -0,0 +1,21 @@
+# CONFIG_VIDEO_MT9T001:
+#
+# This is a Video4Linux2 sensor driver for the Aptina
+# (Micron) mt0t001 3 Mpixel camera.
+#
+# Symbol: VIDEO_MT9T001 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:1096
+# Prompt: Aptina MT9T001 support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+# Selects: MEDIA_CONTROLLER [=y] && VIDEO_V4L2_SUBDEV_API [=y]
+#
+#
+#
+CONFIG_VIDEO_MT9T001=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_MT9T112 b/configs/fedora/generic/CONFIG_VIDEO_MT9T112
new file mode 100644
index 000000000..4ab531311
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_MT9T112
@@ -0,0 +1,23 @@
+# CONFIG_VIDEO_MT9T112:
+#
+# This is a Video4Linux2 sensor driver for the Aptina
+# (Micron) MT9T111 and MT9T112 3 Mpixel camera.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called mt9t112.
+#
+# Symbol: VIDEO_MT9T112 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:1105
+# Prompt: Aptina MT9T111/MT9T112 support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+#
+#
+#
+CONFIG_VIDEO_MT9T112=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_MT9V011 b/configs/fedora/generic/CONFIG_VIDEO_MT9V011
new file mode 100644
index 000000000..5f18a2f0f
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_MT9V011
@@ -0,0 +1,23 @@
+# CONFIG_VIDEO_MT9V011:
+#
+# This is a Video4Linux2 sensor driver for the Micron
+# mt0v011 1.3 Mpixel camera. It currently only works with the
+# em28xx driver.
+#
+# Symbol: VIDEO_MT9V011 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:1115
+# Prompt: Micron mt9v011 sensor support
+# Depends on: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && I2C [=y] && VIDEO_V4L2 [=m] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+# Selected by [n]: