summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustin M. Forbes <jforbes@fedoraproject.org>2020-09-03 11:45:01 -0500
committerJustin M. Forbes <jforbes@fedoraproject.org>2020-09-03 11:45:01 -0500
commit6681bf218f9556b094e34f5f854b20d42d7e2e84 (patch)
tree144f7d142e6e6337c62d322fe98bbe22df582bcf
parent7e438814446efb0840cb66d40c904594fd0df8f4 (diff)
downloadkernel-6681bf218f9556b094e34f5f854b20d42d7e2e84.tar.gz
kernel-6681bf218f9556b094e34f5f854b20d42d7e2e84.tar.xz
kernel-6681bf218f9556b094e34f5f854b20d42d7e2e84.zip
Linux v5.7.6 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.patch87
-rw-r--r--0001-PCI-brcmstb-Wait-for-Raspberry-Pi-s-firmware-when-pr.patch57
-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-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-drivers-perf-xgene_pmu-Fix-uninitialized-resource-st.patch109
-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.patch14
-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-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-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-platform-x86-thinkpad_acpi-lap-or-desk-mode-interfac.patch202
-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.patch (renamed from selinux_allow_reading_labels_before_policy_is_loaded.patch)11
-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-xfs-fix-boundary-test-in-xfs_attr_shortform_verify.patch49
-rw-r--r--0002-arm64-tegra-Re-order-PCIe-aperture-mappings-to-suppo.patch101
-rw-r--r--0004-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch91
-rw-r--r--arm64-tegra-Use-valid-PWM-period-for-VDD_GPU-on-Tegra210.patch48
-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_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_OVERLAYS18
-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_SERVER1
-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_HDA_INTEL2
-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_FSL_MQS1
-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_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_PCIE_TEGRA194_HOST2
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_PHY_TEGRA194_P2U2
-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_SND_HDA_INTEL1
-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_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_INTEL1
-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--filter-aarch64.sh2
-rw-r--r--filter-aarch64.sh.fedora2
-rwxr-xr-xfilter-modules.sh2
-rwxr-xr-xfilter-modules.sh.fedora2
-rw-r--r--filter-ppc64le.sh2
-rw-r--r--filter-ppc64le.sh.fedora2
-rw-r--r--kernel-aarch64-debug-fedora.config307
-rw-r--r--kernel-aarch64-fedora.config286
-rw-r--r--kernel-armv7hl-debug-fedora.config317
-rw-r--r--kernel-armv7hl-fedora.config296
-rw-r--r--kernel-armv7hl-lpae-debug-fedora.config318
-rw-r--r--kernel-armv7hl-lpae-fedora.config297
-rw-r--r--kernel-i686-debug-fedora.config326
-rw-r--r--kernel-i686-fedora.config306
-rw-r--r--kernel-ppc64le-debug-fedora.config306
-rw-r--r--kernel-ppc64le-fedora.config285
-rw-r--r--kernel-s390x-debug-fedora.config315
-rw-r--r--kernel-s390x-fedora.config294
-rw-r--r--kernel-x86_64-debug-fedora.config324
-rw-r--r--kernel-x86_64-fedora.config304
-rw-r--r--kernel.spec245
-rw-r--r--linux-kernel-test.patch0
-rw-r--r--sources4
563 files changed, 11480 insertions, 3434 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
index 6fc81f845..bf1e48016 100644
--- a/0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch
+++ b/0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch
@@ -1,6 +1,6 @@
-From 92c547f35f4852908f40c2861d9b9d10e0c5099b Mon Sep 17 00:00:00 2001
-From: Peter Robinson <pbrobinson@gmail.com>
-Date: Sun, 28 Jun 2020 16:48:50 +0100
+From 9134295c0515492b1ab7733c0290b2afde336d6b Mon Sep 17 00:00:00 2001
+From: Vidya Sagar <vidyas@nvidia.com>
+Date: Sat, 11 Jan 2020 00:45:00 +0530
Subject: [PATCH] PCI: Add MCFG quirks for Tegra194 host controllers
The PCIe controller in Tegra194 SoC is not completely ECAM-compliant.
@@ -15,25 +15,20 @@ 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
+Acked-by: Thierry Reding <treding@nvidia.com>
+[ Updated by jonathanh@nvidia.com only permit building the Tegra194
+ PCIe driver into the kernel and not as a module ]
+Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
---
drivers/acpi/pci_mcfg.c | 7 ++
+ drivers/pci/controller/dwc/Kconfig | 10 +-
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(-)
+ 5 files changed, 117 insertions(+), 5 deletions(-)
diff --git a/drivers/acpi/pci_mcfg.c b/drivers/acpi/pci_mcfg.c
-index 6b347d9920cc2..7071814081736 100644
+index 54b36b7ad47d9..6573d495d9c1f 100644
--- a/drivers/acpi/pci_mcfg.c
+++ b/drivers/acpi/pci_mcfg.c
@@ -116,6 +116,13 @@ static struct mcfg_fixup mcfg_quirks[] = {
@@ -50,8 +45,44 @@ index 6b347d9920cc2..7071814081736 100644
#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/Kconfig b/drivers/pci/controller/dwc/Kconfig
+index 044a3761c44f2..e4ee4bf9ac64a 100644
+--- a/drivers/pci/controller/dwc/Kconfig
++++ b/drivers/pci/controller/dwc/Kconfig
+@@ -247,25 +247,27 @@ config PCI_MESON
+ implement the driver.
+
+ config PCIE_TEGRA194
+- tristate
++ bool
+
+ config PCIE_TEGRA194_HOST
+- tristate "NVIDIA Tegra194 (and later) PCIe controller - Host Mode"
++ bool "NVIDIA Tegra194 (and later) PCIe controller - Host Mode"
+ depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
+ depends on PCI_MSI_IRQ_DOMAIN
+ select PCIE_DW_HOST
+ select PHY_TEGRA194_P2U
+ select PCIE_TEGRA194
++ default y if ARCH_TEGRA_194_SOC
+ help
+ Enables support for the PCIe controller in the NVIDIA Tegra194 SoC to
+ work in host mode. There are two instances of PCIe controllers in
+ Tegra194. This controller can work either as EP or RC. In order to
+ enable host-specific features PCIE_TEGRA194_HOST must be selected and
+ in order to enable device-specific features PCIE_TEGRA194_EP must be
+- selected. This uses the DesignWare core.
++ selected. This uses the DesignWare core. ACPI platforms with Tegra194
++ don't need to enable this.
+
+ config PCIE_TEGRA194_EP
+- tristate "NVIDIA Tegra194 (and later) PCIe controller - Endpoint Mode"
++ bool "NVIDIA Tegra194 (and later) PCIe controller - Endpoint Mode"
+ depends on ARCH_TEGRA_194_SOC || COMPILE_TEST
+ depends on PCI_ENDPOINT
+ select PCIE_DW_EP
diff --git a/drivers/pci/controller/dwc/Makefile b/drivers/pci/controller/dwc/Makefile
-index 8a637cfcf6e99..76a6c52b8500e 100644
+index a751553fa0dbd..dbb9818765566 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
@@ -60,16 +91,16 @@ index 8a637cfcf6e99..76a6c52b8500e 100644
obj-$(CONFIG_PCI_MESON) += pci-meson.o
-obj-$(CONFIG_PCIE_TEGRA194) += pcie-tegra194.o
obj-$(CONFIG_PCIE_UNIPHIER) += pcie-uniphier.o
+ obj-$(CONFIG_PCIE_UNIPHIER_EP) += pcie-uniphier-ep.o
- # The following drivers are for devices that use the generic ACPI
-@@ -33,4 +32,5 @@ obj-$(CONFIG_PCIE_UNIPHIER) += pcie-uniphier.o
+@@ -34,4 +33,5 @@ obj-$(CONFIG_PCIE_UNIPHIER_EP) += pcie-uniphier-ep.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
+index 92b77f7d83546..7b3d581795197 100644
--- a/drivers/pci/controller/dwc/pcie-tegra194.c
+++ b/drivers/pci/controller/dwc/pcie-tegra194.c
@@ -22,6 +22,8 @@
@@ -169,7 +200,7 @@ index ae30a2fd3716a..571b39c5cac63 100644
+ return (void __iomem *)(pcie->config_base + where);
+}
+
-+struct pci_ecam_ops tegra194_pcie_ops = {
++const struct pci_ecam_ops tegra194_pcie_ops = {
+ .bus_shift = 20,
+ .init = tegra194_acpi_init,
+ .pci_ops = {
@@ -185,7 +216,7 @@ index ae30a2fd3716a..571b39c5cac63 100644
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);
+@@ -2405,3 +2504,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");
@@ -193,17 +224,17 @@ index ae30a2fd3716a..571b39c5cac63 100644
+#endif /* CONFIG_PCIE_TEGRA194 */
+
diff --git a/include/linux/pci-ecam.h b/include/linux/pci-ecam.h
-index a73164c85e78b..6156140dcbb65 100644
+index 1af5cb02ef7f9..3fb16ada505a0 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 */
+@@ -57,6 +57,7 @@ extern const struct pci_ecam_ops pci_thunder_ecam_ops; /* Cavium ThunderX 1.x */
+ extern const struct pci_ecam_ops xgene_v1_pcie_ecam_ops; /* APM X-Gene PCIe v1 */
+ extern const struct pci_ecam_ops xgene_v2_pcie_ecam_ops; /* APM X-Gene PCIe v2.x */
+ extern const struct pci_ecam_ops al_pcie_ops; /* Amazon Annapurna Labs PCIe */
++extern const struct pci_ecam_ops tegra194_pcie_ops; /* Tegra194 PCIe */
#endif
- #ifdef CONFIG_PCI_HOST_COMMON
+ #if IS_ENABLED(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-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-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-drivers-perf-xgene_pmu-Fix-uninitialized-resource-st.patch b/0001-drivers-perf-xgene_pmu-Fix-uninitialized-resource-st.patch
new file mode 100644
index 000000000..ddd1bb26b
--- /dev/null
+++ b/0001-drivers-perf-xgene_pmu-Fix-uninitialized-resource-st.patch
@@ -0,0 +1,109 @@
+From 68912566d659046b12b02e5a316af3760e08eab8 Mon Sep 17 00:00:00 2001
+From: Fedora Kernel Team <kernel-team@fedoraproject.org>
+Date: Tue, 1 Sep 2020 18:44:00 -0400
+Subject: [PATCH] drivers/perf: xgene_pmu: Fix uninitialized resource struct
+
+This splat was reported on newer Fedora kernels booting on certain
+Ampere machines:
+
+ xgene-pmu APMC0D83:00: X-Gene PMU version 3
+ Unable to handle kernel read from unreadable memory at virtual address 0000000000004006
+ Mem abort info:
+ ESR = 0x96000004
+ EC = 0x25: DABT (current EL), IL = 32 bits
+ SET = 0, FnV = 0
+ EA = 0, S1PTW = 0
+ Data abort info:
+ ISV = 0, ISS = 0x00000004
+ CM = 0, WnR = 0
+ [0000000000004006] user address but active_mm is swapper
+ Internal error: Oops: 96000004 [#1] SMP
+ Modules linked in:
+ CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.8.3-300.fc33.aarch64 #1
+ Hardware name: Lenovo HR350A 7X35CTO1WW /HR350A , BIOS HVE104N-1.12 11/29/2019
+ pstate: 00400005 (nzcv daif +PAN -UAO BTYPE=--)
+ pc : string+0x50/0x100
+ lr : vsnprintf+0x160/0x750
+ sp : ffff800012b4b760
+ x29: ffff800012b4b760 x28: 000000000000000c
+ x27: ffff8000113610d5 x26: ffff8000113610d5
+ x25: 0000000000000020 x24: 0000000000000000
+ x23: 00000000ffffffe8 x22: ffff800010f8e628
+ x21: ffff800012b4b8f0 x20: 0000000000000000
+ x19: 0000000000000000 x18: 00000000fffffffc
+ x17: 000000000000002d x16: 0000000000000001
+ x15: 0000000000000020 x14: 0000000000000000
+ x13: 0000000000000000 x12: 071c71c71c71c71c
+ x11: 00000000ffffff76 x10: ffff800012b4b8f0
+ x9 : ffff8000109e97d8 x8 : 00000000ffffffff
+ x7 : 000000000000000b x6 : 0000000000000000
+ x5 : 0000000000000000 x4 : 0000000000000000
+ x3 : ffff0a00ffffff04 x2 : 0000000000004006
+ x1 : ffffffffffffffff x0 : 000000000000000c
+ Call trace:
+ string+0x50/0x100
+ vsnprintf+0x160/0x750
+ devm_kvasprintf+0x5c/0xb4
+ devm_kasprintf+0x54/0x60
+ __devm_ioremap_resource+0xdc/0x1a0
+ devm_ioremap_resource+0x14/0x20
+ acpi_get_pmu_hw_inf.isra.0+0x84/0x15c
+ acpi_pmu_dev_add+0xbc/0x21c
+ acpi_ns_walk_namespace+0x16c/0x1e4
+ acpi_walk_namespace+0xb4/0xfc
+ xgene_pmu_probe_pmu_dev+0x7c/0xe0
+ xgene_pmu_probe.part.0+0x2c0/0x310
+ xgene_pmu_probe+0x54/0x64
+ platform_drv_probe+0x60/0xb4
+ really_probe+0xe8/0x4a0
+ driver_probe_device+0xe4/0x100
+ device_driver_attach+0xcc/0xd4
+ __driver_attach+0xb0/0x17c
+ bus_for_each_dev+0x6c/0xb0
+ driver_attach+0x30/0x40
+ bus_add_driver+0x154/0x250
+ driver_register+0x84/0x140
+ __platform_driver_register+0x54/0x60
+ xgene_pmu_driver_init+0x28/0x34
+ do_one_initcall+0x40/0x204
+ do_initcalls+0x104/0x144
+ kernel_init_freeable+0x198/0x210
+ kernel_init+0x20/0x12c
+ ret_from_fork+0x10/0x18
+ Code: 91000400 110004e1 eb08009f 540000c0 (38646846)
+ ---[ end trace f08c10566496a703 ]---
+ Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
+ SMP: stopping secondary CPUs
+ Kernel Offset: 0x40000 from 0xffff800010000000
+ PHYS_OFFSET: 0x80000000
+ CPU features: 0x240002,20802008
+ Memory Limit: none
+
+This was due to a local struct resource variable in acpi_get_pmu_hw_inf().
+A pointer to that struct makes it's way to __devm_ioremap_resource()
+where the name field is passed to devm_kasprintf() and dereferenced.
+The struct was never initialized, so the name pointer is whatever
+happened to be on the stack. This has been the case since the original
+checkin of xgene_pmu.c, but it was a recent change to which added the
+use of the name field.
+
+Signed-off-by: Mark Salter <msalter@redhat.com>
+---
+ drivers/perf/xgene_pmu.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/perf/xgene_pmu.c b/drivers/perf/xgene_pmu.c
+index edac28c..fdbbd08 100644
+--- a/drivers/perf/xgene_pmu.c
++++ b/drivers/perf/xgene_pmu.c
+@@ -1483,6 +1483,7 @@ xgene_pmu_dev_ctx *acpi_get_pmu_hw_inf(struct xgene_pmu *xgene_pmu,
+ return NULL;
+
+ INIT_LIST_HEAD(&resource_list);
++ memset(&res, 0, sizeof(res));
+ rc = acpi_dev_get_resources(adev, &resource_list,
+ acpi_pmu_dev_add_resource, &res);
+ acpi_dev_free_resource_list(&resource_list);
+--
+2.26.0
+
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
index acd11a206..ff9bcbd19 100644
--- 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
@@ -26,10 +26,10 @@ Signed-off-by: Jeremy Cline <jcline@redhat.com>
create mode 100644 drivers/firmware/efi/secureboot.c
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
-index e39ec0f88d28..08e9f5fc26a8 100644
+index a1b8cb9a2579..28d43754aeb6 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
-@@ -1250,19 +1250,7 @@ void __init setup_arch(char **cmdline_p)
+@@ -1256,19 +1256,7 @@ void __init setup_arch(char **cmdline_p)
/* Allocate bigger log buffer */
setup_log_buf(1);
@@ -107,10 +107,10 @@ index 000000000000..de0a3714a5d4
+ }
+}
diff --git a/include/linux/efi.h b/include/linux/efi.h
-index 51503bf118ab..b35e693f20f3 100644
+index 2e2f9f608f68..6f5b3b019d3e 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
-@@ -778,6 +778,14 @@ extern int __init efi_setup_pcdp_console(char *);
+@@ -781,6 +781,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? */
@@ -125,7 +125,7 @@ index 51503bf118ab..b35e693f20f3 100644
#ifdef CONFIG_EFI
/*
-@@ -789,6 +797,8 @@ static inline bool efi_enabled(int feature)
+@@ -792,6 +800,8 @@ static inline bool efi_enabled(int feature)
}
extern void efi_reboot(enum reboot_mode reboot_mode, const char *__unused);
@@ -134,7 +134,7 @@ index 51503bf118ab..b35e693f20f3 100644
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)
+@@ -818,6 +828,8 @@ efi_capsule_pending(int *reset_type)
return false;
}
@@ -143,7 +143,7 @@ index 51503bf118ab..b35e693f20f3 100644
static inline bool efi_soft_reserve_enabled(void)
{
return false;
-@@ -1086,12 +1098,6 @@ static inline bool efi_runtime_disabled(void) { return true; }
+@@ -1090,12 +1102,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);
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-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-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-platform-x86-thinkpad_acpi-lap-or-desk-mode-interfac.patch b/0001-platform-x86-thinkpad_acpi-lap-or-desk-mode-interfac.patch
new file mode 100644
index 000000000..3a15ae09a
--- /dev/null
+++ b/0001-platform-x86-thinkpad_acpi-lap-or-desk-mode-interfac.patch
@@ -0,0 +1,202 @@
+From acf7f4a59114471c3964f118564fe8e7a6f34bb8 Mon Sep 17 00:00:00 2001
+From: Mark Pearson <markpearson@lenovo.com>
+Date: Thu, 2 Jul 2020 21:23:53 -0400
+Subject: [PATCH] platform/x86: thinkpad_acpi: lap or desk mode interface
+
+Newer Lenovo Thinkpad platforms have support to identify whether the
+system is on-lap or not using an ACPI DYTC event from the firmware.
+
+This patch provides the ability to retrieve the current mode via sysfs
+entrypoints and will be used by userspace for thermal mode and WWAN
+functionality
+
+Co-developed-by: Nitin Joshi <njoshi1@lenovo.com>
+Signed-off-by: Nitin Joshi <njoshi1@lenovo.com>
+Reviewed-by: Sugumaran <slacshiminar@lenovo.com>
+Reviewed-by: Bastien Nocera <bnocera@redhat.com>
+Signed-off-by: Mark Pearson <markpearson@lenovo.com>
+Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+---
+ .../admin-guide/laptops/thinkpad-acpi.rst | 15 +++
+ drivers/platform/x86/thinkpad_acpi.c | 111 +++++++++++++++++-
+ 2 files changed, 124 insertions(+), 2 deletions(-)
+
+diff --git a/Documentation/admin-guide/laptops/thinkpad-acpi.rst b/Documentation/admin-guide/laptops/thinkpad-acpi.rst
+index 822907dcc845..99066aa8d97b 100644
+--- a/Documentation/admin-guide/laptops/thinkpad-acpi.rst
++++ b/Documentation/admin-guide/laptops/thinkpad-acpi.rst
+@@ -50,6 +50,7 @@ detailed description):
+ - WAN enable and disable
+ - UWB enable and disable
+ - LCD Shadow (PrivacyGuard) enable and disable
++ - Lap mode sensor
+
+ A compatibility table by model and feature is maintained on the web
+ site, http://ibm-acpi.sf.net/. I appreciate any success or failure
+@@ -1432,6 +1433,20 @@ The first command ensures the best viewing angle and the latter one turns
+ on the feature, restricting the viewing angles.
+
+
++DYTC Lapmode sensor
++------------------
++
++sysfs: dytc_lapmode
++
++Newer thinkpads and mobile workstations have the ability to determine if
++the device is in deskmode or lapmode. This feature is used by user space
++to decide if WWAN transmission can be increased to maximum power and is
++also useful for understanding the different thermal modes available as
++they differ between desk and lap mode.
++
++The property is read-only. If the platform doesn't have support the sysfs
++class is not created.
++
+ EXPERIMENTAL: UWB
+ -----------------
+
+diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
+index 0f6fceda5fc0..7fee3c1c2418 100644
+--- a/drivers/platform/x86/thinkpad_acpi.c
++++ b/drivers/platform/x86/thinkpad_acpi.c
+@@ -4030,8 +4030,8 @@ static bool hotkey_notify_6xxx(const u32 hkey,
+ return true;
+ case TP_HKEY_EV_THM_CSM_COMPLETED:
+ pr_debug("EC reports: Thermal Control Command set completed (DYTC)\n");
+- /* recommended action: do nothing, we don't have
+- * Lenovo ATM information */
++ /* Thermal event - pass on to event handler */
++ tpacpi_driver_event(hkey);
+ return true;
+ case TP_HKEY_EV_THM_TRANSFM_CHANGED:
+ pr_debug("EC reports: Thermal Transformation changed (GMTS)\n");
+@@ -9803,6 +9803,105 @@ static struct ibm_struct lcdshadow_driver_data = {
+ .write = lcdshadow_write,
+ };
+
++/*************************************************************************
++ * DYTC subdriver, for the Lenovo lapmode feature
++ */
++
++#define DYTC_CMD_GET 2 /* To get current IC function and mode */
++#define DYTC_GET_LAPMODE_BIT 17 /* Set when in lapmode */
++
++static bool dytc_lapmode;
++
++static void dytc_lapmode_notify_change(void)
++{
++ sysfs_notify(&tpacpi_pdev->dev.kobj, NULL, "dytc_lapmode");
++}
++
++static int dytc_command(int command, int *output)
++{
++ acpi_handle dytc_handle;
++
++ if (ACPI_FAILURE(acpi_get_handle(hkey_handle, "DYTC", &dytc_handle))) {
++ /* Platform doesn't support DYTC */
++ return -ENODEV;
++ }
++ if (!acpi_evalf(dytc_handle, output, NULL, "dd", command))
++ return -EIO;
++ return 0;
++}
++
++static int dytc_lapmode_get(bool *state)
++{
++ int output, err;
++
++ err = dytc_command(DYTC_CMD_GET, &output);
++ if (err)
++ return err;
++ *state = output & BIT(DYTC_GET_LAPMODE_BIT) ? true : false;
++ return 0;
++}
++
++static void dytc_lapmode_refresh(void)
++{
++ bool new_state;
++ int err;
++
++ err = dytc_lapmode_get(&new_state);
++ if (err || (new_state == dytc_lapmode))
++ return;
++
++ dytc_lapmode = new_state;
++ dytc_lapmode_notify_change();
++}
++
++/* sysfs lapmode entry */
++static ssize_t dytc_lapmode_show(struct device *dev,
++ struct device_attribute *attr,
++ char *buf)
++{
++ return snprintf(buf, PAGE_SIZE, "%d\n", dytc_lapmode);
++}
++
++static DEVICE_ATTR_RO(dytc_lapmode);
++
++static struct attribute *dytc_attributes[] = {
++ &dev_attr_dytc_lapmode.attr,
++ NULL,
++};
++
++static const struct attribute_group dytc_attr_group = {
++ .attrs = dytc_attributes,
++};
++
++static int tpacpi_dytc_init(struct ibm_init_struct *iibm)
++{
++ int err;
++
++ err = dytc_lapmode_get(&dytc_lapmode);
++ /* If support isn't available (ENODEV) then don't return an error
++ * but just don't create the sysfs group
++ */
++ if (err == -ENODEV)
++ return 0;
++ /* For all other errors we can flag the failure */
++ if (err)
++ return err;
++
++ /* Platform supports this feature - create the group */
++ err = sysfs_create_group(&tpacpi_pdev->dev.kobj, &dytc_attr_group);
++ return err;
++}
++
++static void dytc_exit(void)
++{
++ sysfs_remove_group(&tpacpi_pdev->dev.kobj, &dytc_attr_group);
++}
++
++static struct ibm_struct dytc_driver_data = {
++ .name = "dytc",
++ .exit = dytc_exit,
++};
++
+ /****************************************************************************
+ ****************************************************************************
+ *
+@@ -9850,6 +9949,10 @@ static void tpacpi_driver_event(const unsigned int hkey_event)
+
+ mutex_unlock(&kbdlight_mutex);
+ }
++
++ if (hkey_event == TP_HKEY_EV_THM_CSM_COMPLETED)
++ dytc_lapmode_refresh();
++
+ }
+
+ static void hotkey_driver_event(const unsigned int scancode)
+@@ -10288,6 +10391,10 @@ static struct ibm_init_struct ibms_init[] __initdata = {
+ .init = tpacpi_lcdshadow_init,
+ .data = &lcdshadow_driver_data,
+ },
++ {
++ .init = tpacpi_dytc_init,
++ .data = &dytc_driver_data,
++ },
+ };
+
+ static int __init set_ibm_param(const char *val, const struct kernel_param *kp)
+--
+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/selinux_allow_reading_labels_before_policy_is_loaded.patch b/0001-selinux-allow-reading-labels-before-policy-is-loaded.patch
index 53359159e..5c2384cd6 100644
--- a/selinux_allow_reading_labels_before_policy_is_loaded.patch
+++ b/0001-selinux-allow-reading-labels-before-policy-is-loaded.patch
@@ -1,7 +1,7 @@
-From c8e222616c7e98305bdc861db3ccac520bc29921 Mon Sep 17 00:00:00 2001
+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: selinux: allow reading labels before policy is loaded
+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
@@ -33,7 +33,7 @@ index efa6108b1ce9..ca901025802a 100644
@@ -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
@@ -42,7 +42,8 @@ index efa6108b1ce9..ca901025802a 100644
+ if (!selinux_initialized(&selinux_state) ||
+ strcmp(name, XATTR_SELINUX_SUFFIX))
return -EOPNOTSUPP;
-
+
/*
--
-cgit 1.2.3-1.el7
+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-xfs-fix-boundary-test-in-xfs_attr_shortform_verify.patch b/0001-xfs-fix-boundary-test-in-xfs_attr_shortform_verify.patch
new file mode 100644
index 000000000..771f4396e
--- /dev/null
+++ b/0001-xfs-fix-boundary-test-in-xfs_attr_shortform_verify.patch
@@ -0,0 +1,49 @@
+From f4020438fab05364018c91f7e02ebdd192085933 Mon Sep 17 00:00:00 2001
+From: Eric Sandeen <sandeen@redhat.com>
+Date: Wed, 26 Aug 2020 14:11:58 -0700
+Subject: [PATCH] xfs: fix boundary test in xfs_attr_shortform_verify
+
+The boundary test for the fixed-offset parts of xfs_attr_sf_entry in
+xfs_attr_shortform_verify is off by one, because the variable array
+at the end is defined as nameval[1] not nameval[].
+Hence we need to subtract 1 from the calculation.
+
+This can be shown by:
+
+# touch file
+# setfattr -n root.a file
+
+and verifications will fail when it's written to disk.
+
+This only matters for a last attribute which has a single-byte name
+and no value, otherwise the combination of namelen & valuelen will
+push endp further out and this test won't fail.
+
+Fixes: 1e1bbd8e7ee06 ("xfs: create structure verifier function for shortform xattrs")
+Signed-off-by: Eric Sandeen <sandeen@redhat.com>
+Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
+Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
+Reviewed-by: Christoph Hellwig <hch@lst.de>
+---
+ fs/xfs/libxfs/xfs_attr_leaf.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/fs/xfs/libxfs/xfs_attr_leaf.c b/fs/xfs/libxfs/xfs_attr_leaf.c
+index 8623c815164a..383b08f2ac61 100644
+--- a/fs/xfs/libxfs/xfs_attr_leaf.c
++++ b/fs/xfs/libxfs/xfs_attr_leaf.c
+@@ -1036,8 +1036,10 @@ xfs_attr_shortform_verify(
+ * struct xfs_attr_sf_entry has a variable length.
+ * Check the fixed-offset parts of the structure are
+ * within the data buffer.
++ * xfs_attr_sf_entry is defined with a 1-byte variable
++ * array at the end, so we must subtract that off.
+ */
+- if (((char *)sfep + sizeof(*sfep)) >= endp)
++ if (((char *)sfep + sizeof(*sfep) - 1) >= endp)
+ return __this_address;
+
+ /* Don't allow names with known bad length. */
+--
+2.26.2
+
diff --git a/0002-arm64-tegra-Re-order-PCIe-aperture-mappings-to-suppo.patch b/0002-arm64-tegra-Re-order-PCIe-aperture-mappings-to-suppo.patch
new file mode 100644
index 000000000..d184228ea
--- /dev/null
+++ b/0002-arm64-tegra-Re-order-PCIe-aperture-mappings-to-suppo.patch
@@ -0,0 +1,101 @@
+From 6acf1ba7596a051d6ff4092d22bf9c4ce210d9f5 Mon Sep 17 00:00:00 2001
+From: Vidya Sagar <vidyas@nvidia.com>
+Date: Sat, 11 Jan 2020 00:44:59 +0530
+Subject: [PATCH 2/2] arm64: tegra: Re-order PCIe aperture mappings to support
+ ACPI boot
+
+Re-order Tegra194's PCIe aperture mappings to have IO window moved to
+64-bit aperture and have the entire 32-bit aperture used for accessing
+the configuration space. This makes it to use the entire 32MB of the 32-bit
+aperture for ECAM purpose while booting through ACPI.
+
+Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
+---
+ arch/arm64/boot/dts/nvidia/tegra194.dtsi | 36 ++++++++++++------------
+ 1 file changed, 18 insertions(+), 18 deletions(-)
+
+diff --git a/arch/arm64/boot/dts/nvidia/tegra194.dtsi b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
+index 4bc187a4eacdb..2b378fa06d19e 100644
+--- a/arch/arm64/boot/dts/nvidia/tegra194.dtsi
++++ b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
+@@ -1404,9 +1404,9 @@ pcie@14100000 {
+ nvidia,aspm-l0s-entrance-latency-us = <3>;
+
+ bus-range = <0x0 0xff>;
+- ranges = <0x81000000 0x0 0x30100000 0x0 0x30100000 0x0 0x00100000 /* downstream I/O (1MB) */
+- 0xc3000000 0x12 0x00000000 0x12 0x00000000 0x0 0x30000000 /* prefetchable memory (768MB) */
+- 0x82000000 0x0 0x40000000 0x12 0x30000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */
++ ranges = <0xc3000000 0x12 0x00000000 0x12 0x00000000 0x0 0x30000000 /* prefetchable memory (768MB) */
++ 0x82000000 0x00 0x40000000 0x12 0x30000000 0x0 0x0fff0000 /* non-prefetchable memory (256MB - 64KB) */
++ 0x81000000 0x00 0x00000000 0x12 0x3fff0000 0x0 0x00010000>; /* downstream I/O (64KB) */
+ };
+
+ pcie@14120000 {
+@@ -1449,9 +1449,9 @@ pcie@14120000 {
+ nvidia,aspm-l0s-entrance-latency-us = <3>;
+
+ bus-range = <0x0 0xff>;
+- ranges = <0x81000000 0x0 0x32100000 0x0 0x32100000 0x0 0x00100000 /* downstream I/O (1MB) */
+- 0xc3000000 0x12 0x40000000 0x12 0x40000000 0x0 0x30000000 /* prefetchable memory (768MB) */
+- 0x82000000 0x0 0x40000000 0x12 0x70000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */
++ ranges = <0xc3000000 0x12 0x40000000 0x12 0x40000000 0x0 0x30000000 /* prefetchable memory (768MB) */
++ 0x82000000 0x00 0x40000000 0x12 0x70000000 0x0 0x0fff0000 /* non-prefetchable memory (256MB - 64KB) */
++ 0x81000000 0x00 0x00000000 0x12 0x7fff0000 0x0 0x00010000>; /* downstream I/O (64KB) */
+ };
+
+ pcie@14140000 {
+@@ -1494,9 +1494,9 @@ pcie@14140000 {
+ nvidia,aspm-l0s-entrance-latency-us = <3>;
+
+ bus-range = <0x0 0xff>;
+- ranges = <0x81000000 0x0 0x34100000 0x0 0x34100000 0x0 0x00100000 /* downstream I/O (1MB) */
+- 0xc3000000 0x12 0x80000000 0x12 0x80000000 0x0 0x30000000 /* prefetchable memory (768MB) */
+- 0x82000000 0x0 0x40000000 0x12 0xb0000000 0x0 0x10000000>; /* non-prefetchable memory (256MB) */
++ ranges = <0xc3000000 0x12 0x80000000 0x12 0x80000000 0x0 0x30000000 /* prefetchable memory (768MB) */
++ 0x82000000 0x00 0x40000000 0x12 0xb0000000 0x0 0x0fff0000 /* non-prefetchable memory (256MB - 64KB) */
++ 0x81000000 0x00 0x00000000 0x12 0xbfff0000 0x0 0x00010000>; /* downstream I/O (64KB) */
+ };
+
+ pcie@14160000 {
+@@ -1539,9 +1539,9 @@ pcie@14160000 {
+ nvidia,aspm-l0s-entrance-latency-us = <3>;
+
+ bus-range = <0x0 0xff>;
+- ranges = <0x81000000 0x0 0x36100000 0x0 0x36100000 0x0 0x00100000 /* downstream I/O (1MB) */
+- 0xc3000000 0x14 0x00000000 0x14 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */
+- 0x82000000 0x0 0x40000000 0x17 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */
++ ranges = <0xc3000000 0x14 0x00000000 0x14 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */
++ 0x82000000 0x00 0x40000000 0x17 0x40000000 0x0 0xbfff0000 /* non-prefetchable memory (3GB - 64KB) */
++ 0x81000000 0x00 0x00000000 0x17 0xffff0000 0x0 0x00010000>; /* downstream I/O (64KB) */
+ };
+
+ pcie@14180000 {
+@@ -1584,9 +1584,9 @@ pcie@14180000 {
+ nvidia,aspm-l0s-entrance-latency-us = <3>;
+
+ bus-range = <0x0 0xff>;
+- ranges = <0x81000000 0x0 0x38100000 0x0 0x38100000 0x0 0x00100000 /* downstream I/O (1MB) */
+- 0xc3000000 0x18 0x00000000 0x18 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */
+- 0x82000000 0x0 0x40000000 0x1b 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */
++ ranges = <0xc3000000 0x18 0x00000000 0x18 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */
++ 0x82000000 0x00 0x40000000 0x1b 0x40000000 0x0 0xbfff0000 /* non-prefetchable memory (3GB - 64KB) */
++ 0x81000000 0x00 0x00000000 0x1b 0xffff0000 0x0 0x00010000>; /* downstream I/O (64KB) */
+ };
+
+ pcie@141a0000 {
+@@ -1633,9 +1633,9 @@ pcie@141a0000 {
+ nvidia,aspm-l0s-entrance-latency-us = <3>;
+
+ bus-range = <0x0 0xff>;
+- ranges = <0x81000000 0x0 0x3a100000 0x0 0x3a100000 0x0 0x00100000 /* downstream I/O (1MB) */
+- 0xc3000000 0x1c 0x00000000 0x1c 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */
+- 0x82000000 0x0 0x40000000 0x1f 0x40000000 0x0 0xc0000000>; /* non-prefetchable memory (3GB) */
++ ranges = <0xc3000000 0x1c 0x00000000 0x1c 0x00000000 0x3 0x40000000 /* prefetchable memory (13GB) */
++ 0x82000000 0x00 0x40000000 0x1f 0x40000000 0x0 0xbfff0000 /* non-prefetchable memory (3GB - 64KB) */
++ 0x81000000 0x00 0x00000000 0x1f 0xffff0000 0x0 0x00010000>; /* downstream I/O (64KB) */
+ };
+
+ pcie_ep@14160000 {
+--
+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/arm64-tegra-Use-valid-PWM-period-for-VDD_GPU-on-Tegra210.patch b/arm64-tegra-Use-valid-PWM-period-for-VDD_GPU-on-Tegra210.patch
new file mode 100644
index 000000000..cd37e70a1
--- /dev/null
+++ b/arm64-tegra-Use-valid-PWM-period-for-VDD_GPU-on-Tegra210.patch
@@ -0,0 +1,48 @@
+From a58d581e212b3acbc65e56384e6bc60bb109f29a Mon Sep 17 00:00:00 2001
+From: Peter Robinson <pbrobinson@gmail.com>
+Date: Fri, 7 Aug 2020 15:51:42 +0100
+Subject: [PATCH] arm64: tegra: Use valid PWM period for VDD_GPU on Tegra210
+
+From: Thierry Reding <treding@nvidia.com>
+
+The PWM on Tegra210 can run at a maximum frequency of 48 MHz and cannot
+reach the minimum period is 5334 ns. The currently configured period of
+4880 ns is not within the valid range, so set it to 8000 ns. This value
+was taken from the downstream DTS files and seems to work fine.
+
+Signed-off-by: Thierry Reding <treding@nvidia.com>
+Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
+---
+ arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi | 2 +-
+ arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi
+index cc6ed45a2b485..e2e984a75f601 100644
+--- a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi
++++ b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi
+@@ -346,7 +346,7 @@ regulators {
+ vdd_gpu: regulator@100 {
+ compatible = "pwm-regulator";
+ reg = <100>;
+- pwms = <&pwm 1 4880>;
++ pwms = <&pwm 1 8000>;
+ regulator-name = "VDD_GPU";
+ regulator-min-microvolt = <710000>;
+ regulator-max-microvolt = <1320000>;
+diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts b/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts
+index 9bc52fdb393c8..ebaac57853138 100644
+--- a/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts
++++ b/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts
+@@ -789,7 +789,7 @@ vdd_cpu: regulator@5 {
+ vdd_gpu: regulator@6 {
+ compatible = "pwm-regulator";
+ reg = <6>;
+- pwms = <&pwm 1 4880>;
++ pwms = <&pwm 1 8000>;
+ regulator-name = "VDD_GPU";
+ regulator-min-microvolt = <710000>;
+ regulator-max-microvolt = <1320000>;
+--
+2.26.2
+
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_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
index 7a9c706fb..d96a45178 100644
--- a/configs/fedora/generic/CONFIG_EFI_CUSTOM_SSDT_OVERLAYS
+++ b/configs/fedora/generic/CONFIG_EFI_CUSTOM_SSDT_OVERLAYS
@@ -1 +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..64ed34d9f
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_INFINIBAND_RTRS_SERVER
@@ -0,0 +1 @@
+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_HDA_INTEL b/configs/fedora/generic/CONFIG_SND_HDA_INTEL
index 6f057ecfe..dfe74ea98 100644
--- a/configs/fedora/generic/CONFIG_SND_HDA_INTEL
+++ b/configs/fedora/generic/CONFIG_SND_HDA_INTEL
@@ -1 +1 @@
-# CONFIG_SND_HDA_INTEL is not set
+CONFIG_SND_HDA_INTEL=m
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..a3f9cab62
--- /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=y
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]:
+# - VIDEO_EM28XX_V4L2 [=n] && USB [=y] && MEDIA_SUPPORT [=m] && MEDIA_USB_SUPPORT [=y] && (MEDIA_CAMERA_SUPPORT [=y] || MEDIA_ANALOG_TV_SUPPORT [=y] || MEDIA_DIGITAL_TV_SUPPORT [=y]) && VIDEO_EM28XX [=m] && MEDIA_SUBDRV_AUTOSELECT [=y] && MEDIA_CAMERA_SUPPORT [=y]
+#
+#
+#
+CONFIG_VIDEO_MT9V011=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_MT9V032 b/configs/fedora/generic/CONFIG_VIDEO_MT9V032
new file mode 100644
index 000000000..b68ea6c50
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_MT9V032
@@ -0,0 +1,21 @@
+# CONFIG_VIDEO_MT9V032:
+#
+# This is a Video4Linux2 sensor driver for the Micron
+# MT9V032 752x480 CMOS sensor.
+#
+# Symbol: VIDEO_MT9V032 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:1123
+# Prompt: Micron MT9V032 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_MT9V032=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_MT9V111 b/configs/fedora/generic/CONFIG_VIDEO_MT9V111
new file mode 100644
index 000000000..872dfbc88
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_MT9V111
@@ -0,0 +1,23 @@
+# CONFIG_VIDEO_MT9V111:
+#
+# This is a Video4Linux2 sensor driver for the Aptina/Micron
+# MT9V111 sensor.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called mt9v111.
+#
+# Symbol: VIDEO_MT9V111 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:1134
+# Prompt: Aptina MT9V111 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
+#
+#
+#
+CONFIG_VIDEO_MT9V111=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_NOON010PC30 b/configs/fedora/generic/CONFIG_VIDEO_NOON010PC30
new file mode 100644
index 000000000..f4e4d85ea
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_NOON010PC30
@@ -0,0 +1,20 @@
+# CONFIG_VIDEO_NOON010PC30:
+#
+# This driver supports NOON010PC30 CIF camera from Siliconfile
+#
+# Symbol: VIDEO_NOON010PC30 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:1150
+# Prompt: Siliconfile NOON010PC30 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_NOON010PC30=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_OV13858 b/configs/fedora/generic/CONFIG_VIDEO_OV13858
new file mode 100644
index 000000000..c69a33f84
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_OV13858
@@ -0,0 +1,21 @@
+# CONFIG_VIDEO_OV13858:
+#
+# This is a Video4Linux2 sensor driver for the OmniVision
+# OV13858 camera.
+#
+# Symbol: VIDEO_OV13858 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:1039
+# Prompt: OmniVision OV13858 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_OV13858=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_OV2640 b/configs/fedora/generic/CONFIG_VIDEO_OV2640
new file mode 100644
index 000000000..487d06500
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_OV2640
@@ -0,0 +1,25 @@
+# CONFIG_VIDEO_OV2640:
+#
+# This is a Video4Linux2 sensor driver for the OmniVision
+# OV2640 camera.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called ov2640.
+#
+# Symbol: VIDEO_OV2640 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:815
+# Prompt: OmniVision OV2640 sensor support
+# Depends on: MEDIA_SUPPORT [=m] && VIDEO_V4L2 [=m] && I2C [=y]
+# Visible if: MEDIA_SUPPORT [=m] && VIDEO_V4L2 [=m] && I2C [=y] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+# Selected by [n]:
+# - VIDEO_EM28XX_V4L2 [=n] && USB [=y] && MEDIA_SUPPORT [=m] && MEDIA_USB_SUPPORT [=y] && (MEDIA_CAMERA_SUPPORT [=y] || MEDIA_ANALOG_TV_SUPPORT [=y] || MEDIA_DIGITAL_TV_SUPPORT [=y]) && VIDEO_EM28XX [=m] && MEDIA_SUBDRV_AUTOSELECT [=y] && MEDIA_CAMERA_SUPPORT [=y]
+#
+#
+#
+CONFIG_VIDEO_OV2640=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_OV2659 b/configs/fedora/generic/CONFIG_VIDEO_OV2659
new file mode 100644
index 000000000..29e5afbae
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_OV2659
@@ -0,0 +1,24 @@
+# CONFIG_VIDEO_OV2659:
+#
+# This is a Video4Linux2 sensor driver for the OmniVision
+# OV2659 camera.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called ov2659.
+#
+# Symbol: VIDEO_OV2659 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:825
+# Prompt: OmniVision OV2659 sensor support
+# Depends on: MEDIA_SUPPORT [=m] && VIDEO_V4L2 [=m] && I2C [=y] && GPIOLIB [=y]
+# Visible if: MEDIA_SUPPORT [=m] && VIDEO_V4L2 [=m] && I2C [=y] && GPIOLIB [=y] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+# Selects: V4L2_FWNODE [=m]
+#
+#
+#
+CONFIG_VIDEO_OV2659=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_OV2680 b/configs/fedora/generic/CONFIG_VIDEO_OV2680
new file mode 100644
index 000000000..eaa508b73
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_OV2680
@@ -0,0 +1,24 @@
+# CONFIG_VIDEO_OV2680:
+#
+# This is a Video4Linux2 sensor driver for the OmniVision
+# OV2680 camera.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called ov2680.
+#
+# Symbol: VIDEO_OV2680 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:836
+# Prompt: OmniVision OV2680 sensor support
+# Depends on: MEDIA_SUPPORT [=m] && VIDEO_V4L2 [=m] && I2C [=y]
+# Visible if: MEDIA_SUPPORT [=m] && VIDEO_V4L2 [=m] && I2C [=y] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+# Selects: MEDIA_CONTROLLER [=y] && V4L2_FWNODE [=m]
+#
+#
+#
+CONFIG_VIDEO_OV2680=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_OV2685 b/configs/fedora/generic/CONFIG_VIDEO_OV2685
new file mode 100644
index 000000000..40a3d7757
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_OV2685
@@ -0,0 +1,24 @@
+# CONFIG_VIDEO_OV2685:
+#
+# This is a Video4Linux2 sensor driver for the OmniVision
+# OV2685 camera.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called ov2685.
+#
+# Symbol: VIDEO_OV2685 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:848
+# Prompt: OmniVision OV2685 sensor support
+# Depends on: MEDIA_SUPPORT [=m] && VIDEO_V4L2 [=m] && I2C [=y]
+# Visible if: MEDIA_SUPPORT [=m] && VIDEO_V4L2 [=m] && I2C [=y] && MEDIA_CAMERA_SUPPORT [=y]
+# Location:
+# -> Device Drivers
+# -> Multimedia support (MEDIA_SUPPORT [=m])
+# -> Media ancillary drivers
+# -> Camera sensor devices
+# Selects: MEDIA_CONTROLLER [=y] && V4L2_FWNODE [=m]
+#
+#
+#
+CONFIG_VIDEO_OV2685=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_OV2740 b/configs/fedora/generic/CONFIG_VIDEO_OV2740
new file mode 100644
index 000000000..fc2686903
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_OV2740
@@ -0,0 +1,24 @@
+# CONFIG_VIDEO_OV2740:
+#
+# This is a Video4Linux2 sensor driver for the OmniVision
+# OV2740 camera.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called ov2740.
+#
+# Symbol: VIDEO_OV2740 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:860
+# Prompt: OmniVision OV2740 sensor support
+# Depends on: MEDIA_SUPPORT [=m] && VIDEO_V4L2 [=m] && I2C [=y]
+# Visible if: MEDIA_SUPPORT [=m] && VIDEO_V4L2 [=m] && I2C [=y] && 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_OV2740=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_OV5640 b/configs/fedora/generic/CONFIG_VIDEO_OV5640
new file mode 100644
index 000000000..aa74117f9
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_OV5640
@@ -0,0 +1,21 @@
+# CONFIG_VIDEO_OV5640:
+#
+# This is a Video4Linux2 sensor driver for the Omnivision
+# OV5640 camera sensor with a MIPI CSI-2 interface.
+#
+# Symbol: VIDEO_OV5640 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:873
+# Prompt: OmniVision OV5640 sensor support
+# Depends on: MEDIA_SUPPORT [=m] && OF [=y] && GPIOLIB [=y] && VIDEO_V4L2 [=m] && I2C [=m]
+# Visible if: MEDIA_SUPPORT [=m] && OF [=y] && GPIOLIB [=y] && VIDEO_V4L2 [=m] && I2C [=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_OV5640=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_OV5645 b/configs/fedora/generic/CONFIG_VIDEO_OV5645
new file mode 100644
index 000000000..adeb51af9
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_OV5645
@@ -0,0 +1,24 @@
+# CONFIG_VIDEO_OV5645:
+#
+# This is a Video4Linux2 sensor driver for the OmniVision
+# OV5645 camera.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called ov5645.
+#
+# Symbol: VIDEO_OV5645 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:884
+# Prompt: OmniVision OV5645 sensor support
+# Depends on: MEDIA_SUPPORT [=m] && OF [=y] && I2C [=m] && VIDEO_V4L2 [=m]
+# Visible if: MEDIA_SUPPORT [=m] && OF [=y] && I2C [=m] && 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_OV5645=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_OV5647 b/configs/fedora/generic/CONFIG_VIDEO_OV5647
new file mode 100644
index 000000000..87ceae564
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_OV5647
@@ -0,0 +1,24 @@
+# CONFIG_VIDEO_OV5647:
+#
+# This is a Video4Linux2 sensor driver for the OmniVision
+# OV5647 camera.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called ov5647.
+#
+# Symbol: VIDEO_OV5647 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:898
+# Prompt: OmniVision OV5647 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_OV5647=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_OV5670 b/configs/fedora/generic/CONFIG_VIDEO_OV5670
new file mode 100644
index 000000000..52321be43
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_OV5670
@@ -0,0 +1,24 @@
+# CONFIG_VIDEO_OV5670:
+#
+# This is a Video4Linux2 sensor driver for the OmniVision
+# OV5670 camera.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called ov5670.
+#
+# Symbol: VIDEO_OV5670 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:921
+# Prompt: OmniVision OV5670 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_OV5670=m
diff --git a/configs/fedora/generic/CONFIG_VIDEO_OV5675 b/configs/fedora/generic/CONFIG_VIDEO_OV5675
new file mode 100644
index 000000000..0ef767e79
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIDEO_OV5675
@@ -0,0 +1,24 @@
+# CONFIG_VIDEO_OV5675:
+#
+# This is a Video4Linux2 sensor driver for the OmniVision
+# OV5675 camera.
+#
+# To compile this driver as a module, choose M here: the
+# module will be called ov5675.
+#
+# Symbol: VIDEO_OV5675 [=n]
+# Type : tristate
+# Defined at drivers/media/i2c/Kconfig:934
+# Prompt: OmniVision OV5675 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]