summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan200101 <sentrycraft123@gmail.com>2021-01-15 00:10:49 +0100
committerJan200101 <sentrycraft123@gmail.com>2021-01-15 00:10:49 +0100
commit3814de27892f88d7bee46f434d386ada761fd4ba (patch)
tree0470c6d559ec46201e695664cfaef60ea541f4df
parentd6cbdaa78bfe1ecf6aa6a95e743bcba390a2ae93 (diff)
downloadkernel-fsync-3814de27892f88d7bee46f434d386ada761fd4ba.tar.gz
kernel-fsync-3814de27892f88d7bee46f434d386ada761fd4ba.zip
kernel 5.10.6
-rw-r--r--SOURCES/0001-ALSA-hda-Workaround-for-spurious-wakeups-on-some-Int.patch88
-rw-r--r--SOURCES/0001-ALSA-hda-via-Fix-runtime-PM-for-Clevo-W35xSS.patch86
-rw-r--r--SOURCES/0001-Drop-that-for-now.patch11
-rw-r--r--SOURCES/0001-Input-rmi4-remove-the-need-for-artificial-IRQ-in-cas.patch2
-rw-r--r--SOURCES/0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch22
-rw-r--r--SOURCES/0001-PCI-brcmstb-Wait-for-Raspberry-Pi-s-firmware-when-pr.patch57
-rw-r--r--SOURCES/0001-Revert-arm64-allwinner-dts-a64-add-LCD-related-devic.patch76
-rw-r--r--SOURCES/0001-Revert-drm-panel-add-Xingbangda-XBD599-panel.patch418
-rw-r--r--SOURCES/0001-Revert-drm-sun4i-sun6i_mipi_dsi-fix-horizontal-timin.patch56
-rw-r--r--SOURCES/0001-Revert-dt-bindings-panel-add-binding-for-Xingbangda-.patch71
-rw-r--r--SOURCES/0001-USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch72
-rw-r--r--SOURCES/0001-acr-Use-kmemdup-instead-of-kmalloc-and-memcpy.patch55
-rw-r--r--SOURCES/0001-arm64-allwinner-dts-a64-add-LCD-related-device-nodes.patch81
-rw-r--r--SOURCES/0001-arm64-dts-sun50i-a64-pinephone-Add-touchscreen-suppo.patch46
-rw-r--r--SOURCES/0001-arm64-dts-sun50i-a64-pinephone-Enable-LCD-support-on.patch112
-rw-r--r--SOURCES/0001-core-memory-remove-redundant-assignments-to-variable.patch32
-rw-r--r--SOURCES/0001-device-detect-if-changing-endianness-failed.patch62
-rw-r--r--SOURCES/0001-device-detect-vGPUs.patch59
-rw-r--r--SOURCES/0001-device-rework-mmio-mapping-code-to-get-rid-of-second.patch84
-rw-r--r--SOURCES/0001-device-use-regular-PRI-accessors-in-chipset-detectio.patch113
-rw-r--r--SOURCES/0001-disp-gv100-expose-capabilities-class.patch149
-rw-r--r--SOURCES/0001-disp-hda-gf119-add-HAL-for-programming-device-entry-.patch146
-rw-r--r--SOURCES/0001-disp-hda-gf119-select-HDA-device-entry-based-on-boun.patch49
-rw-r--r--SOURCES/0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch83
-rw-r--r--SOURCES/0001-disp-hda-gv100-NV_PDISP_SF_AUDIO_CNTRL0-register-mov.patch105
-rw-r--r--SOURCES/0001-disp-nv50-increase-timeout-on-pio-channel-free-polli.patch26
-rw-r--r--SOURCES/0001-drivers-perf-xgene_pmu-Fix-uninitialized-resource-st.patch121
-rw-r--r--SOURCES/0001-drm-Use-generic-helper-to-check-_PR3-presence.patch96
-rw-r--r--SOURCES/0001-drm-nouveau-kms-handle-mDP-connectors.patch54
-rw-r--r--SOURCES/0001-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch948
-rw-r--r--SOURCES/0001-drm-panel-st7703-Add-support-for-Xingbangda-XBD599.patch251
-rw-r--r--SOURCES/0001-drm-panel-st7703-Assert-reset-prior-to-powering-down.patch29
-rw-r--r--SOURCES/0001-drm-panel-st7703-Enter-sleep-after-display-off.patch41
-rw-r--r--SOURCES/0001-drm-panel-st7703-Move-code-specific-to-jh057n-closer.patch84
-rw-r--r--SOURCES/0001-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch84
-rw-r--r--SOURCES/0001-drm-panel-st7703-Prepare-for-supporting-multiple-pan.patch128
-rw-r--r--SOURCES/0001-drm-panel-st7703-Rename-functions-from-jh057n-prefix.patch265
-rw-r--r--SOURCES/0001-dt-bindings-panel-Add-compatible-for-Xingbangda-XBD5.patch37
-rw-r--r--SOURCES/0001-dt-bindings-panel-Convert-rocktech-jh057n00900-to-ya.patch119
-rw-r--r--SOURCES/0001-dt-bindings-vendor-prefixes-Add-Xingbangda.patch33
-rw-r--r--SOURCES/0001-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch4
-rw-r--r--SOURCES/0001-firmware-raspberrypi-Introduce-vl805-init-routine.patch110
-rw-r--r--SOURCES/0001-i2c-core-Restore-acpi_walk_dep_device_list-getting-c.patch70
-rw-r--r--SOURCES/0001-ipmi-do-not-configure-ipmi-for-HPE-m400.patch2
-rw-r--r--SOURCES/0001-kms-gv100-Add-support-for-interlaced-modes.patch64
-rw-r--r--SOURCES/0001-kms-nv50-Initialize-core-channel-in-nouveau_display_.patch47
-rw-r--r--SOURCES/0001-kms-nv50-Move-8BPC-limit-for-MST-into-nv50_mstc_get_.patch65
-rw-r--r--SOURCES/0001-kms-nv50-Probe-SOR-and-PIOR-caps-for-DP-interlacing-.patch439
-rw-r--r--SOURCES/0001-kms-nv50-Share-DP-SST-mode_valid-handling-with-MST.patch209
-rw-r--r--SOURCES/0001-mmu-Remove-unneeded-semicolon.patch47
-rw-r--r--SOURCES/0001-perf-cs-etm-Move-defined-of-traceid_list.patch58
-rw-r--r--SOURCES/0001-platform-x86-thinkpad_acpi-Add-support-for-dual-fan-.patch136
-rw-r--r--SOURCES/0001-platform-x86-thinkpad_acpi-lap-or-desk-mode-interfac.patch202
-rw-r--r--SOURCES/0001-revert-ARM64-vdso32-Install-vdso32-from-vdso_install.patch48
-rw-r--r--SOURCES/0001-selinux-allow-reading-labels-before-policy-is-loaded.patch49
-rw-r--r--SOURCES/0001-soc-bcm2835-Sync-xHCI-reset-firmware-property-with-d.patch32
-rw-r--r--SOURCES/0001-update-phy-on-pine64-a64-devices.patch13
-rw-r--r--SOURCES/0001-usb-fusb302-Convert-to-use-GPIO-descriptors.patch162
-rw-r--r--SOURCES/0001-virt-vbox-Add-a-few-new-vmmdev-request-types-to-the-.patch58
-rw-r--r--SOURCES/0001-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch320
-rw-r--r--SOURCES/0001-virt-vbox-Add-vbg_set_host_capabilities-helper-funct.patch130
-rw-r--r--SOURCES/0001-virt-vbox-Fix-VBGL_IOCTL_VMMDEV_REQUEST_BIG-and-_LOG.patch123
-rw-r--r--SOURCES/0001-virt-vbox-Fix-guest-capabilities-mask-check.patch47
-rw-r--r--SOURCES/0001-virt-vbox-Log-unknown-ioctl-requests-as-error.patch30
-rw-r--r--SOURCES/0001-virt-vbox-Rename-guest_caps-struct-members-to-set_gu.patch103
-rw-r--r--SOURCES/0001-xen-events-avoid-removing-an-event-channel-while-han.patch161
-rw-r--r--SOURCES/0001-xfs-fix-boundary-test-in-xfs_attr_shortform_verify.patch49
-rw-r--r--SOURCES/0002-arm64-tegra-Re-order-PCIe-aperture-mappings-to-suppo.patch100
-rw-r--r--SOURCES/0002-dt-bindings-panel-Convert-rocktech-jh057n00900-to-ya.patch120
-rw-r--r--SOURCES/0003-dt-bindings-panel-Add-compatible-for-Xingbangda-XBD5.patch37
-rw-r--r--SOURCES/0004-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch91
-rw-r--r--SOURCES/0005-drm-panel-st7703-Rename-functions-from-jh057n-prefix.patch265
-rw-r--r--SOURCES/0006-drm-panel-st7703-Prepare-for-supporting-multiple-pan.patch129
-rw-r--r--SOURCES/0007-drm-panel-st7703-Move-code-specific-to-jh057n-closer.patch84
-rw-r--r--SOURCES/0008-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch84
-rw-r--r--SOURCES/0009-drm-panel-st7703-Add-support-for-Xingbangda-XBD599.patch251
-rw-r--r--SOURCES/0010-drm-panel-st7703-Enter-sleep-after-display-off.patch41
-rw-r--r--SOURCES/0011-drm-panel-st7703-Assert-reset-prior-to-powering-down.patch29
-rw-r--r--SOURCES/0012-arm64-dts-sun50i-a64-pinephone-Enable-LCD-support-on.patch112
-rw-r--r--SOURCES/0013-arm64-dts-sun50i-a64-pinephone-Add-touchscreen-suppo.patch47
-rw-r--r--SOURCES/ARM-dts-sun7i-pcduino3-nano-enable-RGMII-RX-TX-delay-on-PHY.patch132
-rw-r--r--SOURCES/ARM-dts-sun8i-r40-bananapi-m2-ultra-Fix-ethernet-node.patch122
-rw-r--r--SOURCES/CVE-2020-16119-DCCP-CCID-structure-use-after-free.patch305
-rw-r--r--SOURCES/arm-pandaboard-fix-add-bluetooth.patch64
-rw-r--r--SOURCES/arm-sun8i-realtek-phy-fixes.patch1385
-rw-r--r--SOURCES/arm64-BUG-crypto-arm64-Use-x16-with-indirect-branch-to-bti_c.patch149
-rw-r--r--SOURCES/arm64-dts-allwinner-a64-OrangePi-Win-Fix-ethernet-node.patch122
-rw-r--r--SOURCES/arm64-dts-allwinner-h5-OrangePi-PC2-Fix-ethernet-node.patch122
-rw-r--r--SOURCES/arm64-dts-allwinner-h5-OrangePi-Prime-Fix-ethernet-node.patch145
-rw-r--r--SOURCES/arm64-dts-allwinner-h6-Pine-H64-Fix-ethernet-node.patch125
-rw-r--r--SOURCES/arm64-pwm-rockchip-Keep-enabled-PWMs-running-while-probing.patch141
-rw-r--r--SOURCES/arm64-rockchip-pinebookpro-add-fuel-gauge.patch59
-rw-r--r--SOURCES/arm64-tegra-Use-valid-PWM-period-for-VDD_GPU-on-Tegra210.patch48
-rw-r--r--SOURCES/arm64-tegra-enable-dfll-on-jetson-nano.patch86
-rw-r--r--SOURCES/bluetooth-fix-LL-privacy-BLE-device-fails-to-connect.patch75
-rw-r--r--SOURCES/bluetooth_cves.patch320
-rw-r--r--SOURCES/brcmfmac-BCM4329-Fixes-and-improvement.patch254
-rw-r--r--SOURCES/dma-pool-fixes.patch419
-rw-r--r--SOURCES/futex2.patch6056
-rw-r--r--SOURCES/iommu-tegra-smmu-Fix-TLB-line-for-Tegra210.patch48
-rw-r--r--SOURCES/iwlwifi-make-some-killer-wireless-ac-1550-cards-work-again.patch46
-rw-r--r--SOURCES/kernel-aarch64-debug-fedora.config251
-rw-r--r--SOURCES/kernel-aarch64-fedora.config251
-rw-r--r--SOURCES/kernel-armv7hl-debug-fedora.config215
-rw-r--r--SOURCES/kernel-armv7hl-fedora.config213
-rw-r--r--SOURCES/kernel-armv7hl-lpae-debug-fedora.config213
-rw-r--r--SOURCES/kernel-armv7hl-lpae-fedora.config215
-rw-r--r--SOURCES/kernel-i686-debug-fedora.config168
-rw-r--r--SOURCES/kernel-i686-fedora.config168
-rw-r--r--SOURCES/kernel-ppc64le-debug-fedora.config184
-rw-r--r--SOURCES/kernel-ppc64le-fedora.config184
-rw-r--r--SOURCES/kernel-s390x-debug-fedora.config180
-rw-r--r--SOURCES/kernel-s390x-fedora.config180
-rw-r--r--SOURCES/kernel-x86_64-debug-fedora.config167
-rw-r--r--SOURCES/kernel-x86_64-fedora.config167
-rw-r--r--SOURCES/memory-tegra-Remove-GPU-from-DRM-IOMMU-group.patch113
-rw-r--r--SOURCES/mmc-sdhci-iproc-Enable-eMMC-DDR-3.3V-support-for-bcm2711.patch98
-rw-r--r--SOURCES/net-packet-fix-overflow-in-tpacket_rcv.patch59
-rw-r--r--SOURCES/netfilter-ctnetlink-add-range-check-for-l3-l4-protonum.patch63
-rw-r--r--SOURCES/pdx86-SW_TABLET_MODE-fixes.patch212
-rw-r--r--SOURCES/selinux_allow_reading_labels_before_policy_is_loaded.patch48
-rw-r--r--SOURCES/speakup-do-not-let-the-line-discipline-be-used-several-times.patch76
-rw-r--r--SOURCES/v2-nfs-Fix-security-label-length-not-being-reset.patch150
-rw-r--r--SOURCES/zen.patch91
-rw-r--r--SPECS/kernel.spec46
125 files changed, 3837 insertions, 18717 deletions
diff --git a/SOURCES/0001-ALSA-hda-Workaround-for-spurious-wakeups-on-some-Int.patch b/SOURCES/0001-ALSA-hda-Workaround-for-spurious-wakeups-on-some-Int.patch
deleted file mode 100644
index 1a36632..0000000
--- a/SOURCES/0001-ALSA-hda-Workaround-for-spurious-wakeups-on-some-Int.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From 2b796b34a3b9ade3307304121a726d318641415a Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai@suse.de>
-Date: Mon, 27 Jul 2020 17:19:18 +0200
-Subject: [PATCH] ALSA: hda: Workaround for spurious wakeups on some Intel
- platforms
-
-We've received a regression report on Intel HD-audio controller that
-wakes up immediately after S3 suspend. The bisection leads to the
-commit c4c8dd6ef807 ("ALSA: hda: Skip controller resume if not
-needed"). This commit replaces the system-suspend to use
-pm_runtime_force_suspend() instead of the direct call of
-__azx_runtime_suspend(). However, by some really mysterious reason,
-pm_runtime_force_suspend() causes a spurious wakeup (although it calls
-the same __azx_runtime_suspend() internally).
-
-As an ugly workaround for now, revert the behavior to call
-__azx_runtime_suspend() and __azx_runtime_resume() for those old Intel
-platforms that may exhibit such a problem, while keeping the new
-standard pm_runtime_force_suspend() and pm_runtime_force_resume()
-pair for the remaining chips.
-
-Fixes: c4c8dd6ef807 ("ALSA: hda: Skip controller resume if not needed")
-BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=208649
-Cc: <stable@vger.kernel.org>
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
----
- sound/pci/hda/hda_controller.h | 2 +-
- sound/pci/hda/hda_intel.c | 17 ++++++++++++++---
- 2 files changed, 15 insertions(+), 4 deletions(-)
-
-diff --git a/sound/pci/hda/hda_controller.h b/sound/pci/hda/hda_controller.h
-index fe171685492d..be63ead8161f 100644
---- a/sound/pci/hda/hda_controller.h
-+++ b/sound/pci/hda/hda_controller.h
-@@ -41,7 +41,7 @@
- /* 24 unused */
- #define AZX_DCAPS_COUNT_LPIB_DELAY (1 << 25) /* Take LPIB as delay */
- #define AZX_DCAPS_PM_RUNTIME (1 << 26) /* runtime PM support */
--/* 27 unused */
-+#define AZX_DCAPS_SUSPEND_SPURIOUS_WAKEUP (1 << 27) /* Workaround for spurious wakeups after suspend */
- #define AZX_DCAPS_CORBRP_SELF_CLEAR (1 << 28) /* CORBRP clears itself after reset */
- #define AZX_DCAPS_NO_MSI64 (1 << 29) /* Stick to 32-bit MSIs */
- #define AZX_DCAPS_SEPARATE_STREAM_TAG (1 << 30) /* capture and playback use separate stream tag */
-diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
-index 9ba1fb8f0b7f..fb65450d8de1 100644
---- a/sound/pci/hda/hda_intel.c
-+++ b/sound/pci/hda/hda_intel.c
-@@ -297,7 +297,8 @@ enum {
- /* PCH for HSW/BDW; with runtime PM */
- /* no i915 binding for this as HSW/BDW has another controller for HDMI */
- #define AZX_DCAPS_INTEL_PCH \
-- (AZX_DCAPS_INTEL_PCH_BASE | AZX_DCAPS_PM_RUNTIME)
-+ (AZX_DCAPS_INTEL_PCH_BASE | AZX_DCAPS_PM_RUNTIME |\
-+ AZX_DCAPS_SUSPEND_SPURIOUS_WAKEUP)
-
- /* HSW HDMI */
- #define AZX_DCAPS_INTEL_HASWELL \
-@@ -1026,7 +1027,14 @@ static int azx_suspend(struct device *dev)
- chip = card->private_data;
- bus = azx_bus(chip);
- snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
-- pm_runtime_force_suspend(dev);
-+ /* An ugly workaround: direct call of __azx_runtime_suspend() and
-+ * __azx_runtime_resume() for old Intel platforms that suffer from
-+ * spurious wakeups after S3 suspend
-+ */
-+ if (chip->driver_caps & AZX_DCAPS_SUSPEND_SPURIOUS_WAKEUP)
-+ __azx_runtime_suspend(chip);
-+ else
-+ pm_runtime_force_suspend(dev);
- if (bus->irq >= 0) {
- free_irq(bus->irq, chip);
- bus->irq = -1;
-@@ -1055,7 +1063,10 @@ static int azx_resume(struct device *dev)
- if (azx_acquire_irq(chip, 1) < 0)
- return -EIO;
-
-- pm_runtime_force_resume(dev);
-+ if (chip->driver_caps & AZX_DCAPS_SUSPEND_SPURIOUS_WAKEUP)
-+ __azx_runtime_resume(chip, false);
-+ else
-+ pm_runtime_force_resume(dev);
- snd_power_change_state(card, SNDRV_CTL_POWER_D0);
-
- trace_azx_resume(chip);
---
-2.26.2
-
diff --git a/SOURCES/0001-ALSA-hda-via-Fix-runtime-PM-for-Clevo-W35xSS.patch b/SOURCES/0001-ALSA-hda-via-Fix-runtime-PM-for-Clevo-W35xSS.patch
new file mode 100644
index 0000000..fb9b5f5
--- /dev/null
+++ b/SOURCES/0001-ALSA-hda-via-Fix-runtime-PM-for-Clevo-W35xSS.patch
@@ -0,0 +1,86 @@
+From 4bfd6247fa9164c8e193a55ef9c0ea3ee22f82d8 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Mon, 4 Jan 2021 16:30:46 +0100
+Subject: [PATCH] ALSA: hda/via: Fix runtime PM for Clevo W35xSS
+
+Clevo W35xSS_370SS with VIA codec has had the runtime PM problem that
+looses the power state of some nodes after the runtime resume. This
+was worked around by disabling the default runtime PM via a denylist
+entry. Since 5.10.x made the runtime PM applied (casually) even
+though it's disabled in the denylist, this problem was revisited. The
+result was that disabling power_save_node feature suffices for the
+runtime PM problem.
+
+This patch implements the disablement of power_save_node feature in
+VIA codec for the device. It also drops the former denylist entry,
+too, as the runtime PM should work in the codec side properly now.
+
+Fixes: b529ef2464ad ("ALSA: hda: Add Clevo W35xSS_370SS to the power_save blacklist")
+Reported-by: Christian Labisch <clnetbox@gmail.com>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20210104153046.19993-1-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+---
+ sound/pci/hda/hda_intel.c | 2 --
+ sound/pci/hda/patch_via.c | 13 +++++++++++++
+ 2 files changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
+index 6852668f1bcb..770ad25f1907 100644
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -2220,8 +2220,6 @@ static const struct snd_pci_quirk power_save_denylist[] = {
+ SND_PCI_QUIRK(0x1849, 0x7662, "Asrock H81M-HDS", 0),
+ /* https://bugzilla.redhat.com/show_bug.cgi?id=1525104 */
+ SND_PCI_QUIRK(0x1043, 0x8733, "Asus Prime X370-Pro", 0),
+- /* https://bugzilla.redhat.com/show_bug.cgi?id=1581607 */
+- SND_PCI_QUIRK(0x1558, 0x3501, "Clevo W35xSS_370SS", 0),
+ /* https://bugzilla.redhat.com/show_bug.cgi?id=1525104 */
+ SND_PCI_QUIRK(0x1558, 0x6504, "Clevo W65_67SB", 0),
+ /* https://bugzilla.redhat.com/show_bug.cgi?id=1525104 */
+diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
+index 7ef8f3105cdb..0ab40a8a68fb 100644
+--- a/sound/pci/hda/patch_via.c
++++ b/sound/pci/hda/patch_via.c
+@@ -1002,6 +1002,7 @@ static const struct hda_verb vt1802_init_verbs[] = {
+ enum {
+ VIA_FIXUP_INTMIC_BOOST,
+ VIA_FIXUP_ASUS_G75,
++ VIA_FIXUP_POWER_SAVE,
+ };
+
+ static void via_fixup_intmic_boost(struct hda_codec *codec,
+@@ -1011,6 +1012,13 @@ static void via_fixup_intmic_boost(struct hda_codec *codec,
+ override_mic_boost(codec, 0x30, 0, 2, 40);
+ }
+
++static void via_fixup_power_save(struct hda_codec *codec,
++ const struct hda_fixup *fix, int action)
++{
++ if (action == HDA_FIXUP_ACT_PRE_PROBE)
++ codec->power_save_node = 0;
++}
++
+ static const struct hda_fixup via_fixups[] = {
+ [VIA_FIXUP_INTMIC_BOOST] = {
+ .type = HDA_FIXUP_FUNC,
+@@ -1025,11 +1033,16 @@ static const struct hda_fixup via_fixups[] = {
+ { }
+ }
+ },
++ [VIA_FIXUP_POWER_SAVE] = {
++ .type = HDA_FIXUP_FUNC,
++ .v.func = via_fixup_power_save,
++ },
+ };
+
+ static const struct snd_pci_quirk vt2002p_fixups[] = {
+ SND_PCI_QUIRK(0x1043, 0x1487, "Asus G75", VIA_FIXUP_ASUS_G75),
+ SND_PCI_QUIRK(0x1043, 0x8532, "Asus X202E", VIA_FIXUP_INTMIC_BOOST),
++ SND_PCI_QUIRK(0x1558, 0x3501, "Clevo W35xSS_370SS", VIA_FIXUP_POWER_SAVE),
+ {}
+ };
+
+--
+2.29.2
+
diff --git a/SOURCES/0001-Drop-that-for-now.patch b/SOURCES/0001-Drop-that-for-now.patch
index 8b813bf..5146b2a 100644
--- a/SOURCES/0001-Drop-that-for-now.patch
+++ b/SOURCES/0001-Drop-that-for-now.patch
@@ -4,19 +4,18 @@ Date: Wed, 23 Jan 2019 14:36:37 +0100
Subject: [PATCH] Drop that for now
---
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ Makefile | 1 +
+ 1 file changed, 1 insertion(+)
diff --git a/Makefile b/Makefile
index b70997f7ddf9..680d906eee35 100644
--- a/Makefile
+++ b/Makefile
-@@ -498,7 +498,7 @@ KBUILD_AFLAGS := -D__ASSEMBLY__ -fno-PIE
- KBUILD_CFLAGS := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \
+@@ -496,6 +496,7 @@ 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 \
-- -Wno-format-security \
-+ -Wno-format-security -Wno-address-of-packed-member \
+ -Werror=return-type -Wno-format-security \
++ -Wno-address-of-packed-member \
-std=gnu89
KBUILD_CPPFLAGS := -D__KERNEL__
KBUILD_AFLAGS_KERNEL :=
diff --git a/SOURCES/0001-Input-rmi4-remove-the-need-for-artificial-IRQ-in-cas.patch b/SOURCES/0001-Input-rmi4-remove-the-need-for-artificial-IRQ-in-cas.patch
index 7804610..afdb790 100644
--- a/SOURCES/0001-Input-rmi4-remove-the-need-for-artificial-IRQ-in-cas.patch
+++ b/SOURCES/0001-Input-rmi4-remove-the-need-for-artificial-IRQ-in-cas.patch
@@ -113,7 +113,7 @@ index 8cffa84c9650..6c4e3675601a 100644
- }
-
if (data->device_flags & RMI_DEVICE_HAS_PHYS_BUTTONS)
- rmi_hid_pdata.f30_data.disable = true;
+ rmi_hid_pdata.gpio_data.disable = true;
data->xport.dev = hdev->dev.parent;
data->xport.pdata = rmi_hid_pdata;
diff --git a/SOURCES/0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch b/SOURCES/0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch
index 0303436..eedb0ff 100644
--- a/SOURCES/0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch
+++ b/SOURCES/0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch
@@ -1,6 +1,6 @@
-From dc7294c776b82b0f0feec1536b2f4676806b4b8a Mon Sep 17 00:00:00 2001
+From ec7b5bf1cc1444d9ad13bcef0f0f8d48ff9c0203 Mon Sep 17 00:00:00 2001
From: Peter Robinson <pbrobinson@gmail.com>
-Date: Tue, 3 Nov 2020 14:04:29 +0000
+Date: Sat, 19 Dec 2020 14:10:40 +0000
Subject: [PATCH] PCI: Add MCFG quirks for Tegra194 host controllers
The PCIe controller in Tegra194 SoC is not completely ECAM-compliant.
@@ -29,7 +29,7 @@ Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
5 files changed, 117 insertions(+), 5 deletions(-)
diff --git a/drivers/acpi/pci_mcfg.c b/drivers/acpi/pci_mcfg.c
-index 54b36b7ad47d..6573d495d9c1 100644
+index 95f23acd5b80..53cab975f612 100644
--- a/drivers/acpi/pci_mcfg.c
+++ b/drivers/acpi/pci_mcfg.c
@@ -116,6 +116,13 @@ static struct mcfg_fixup mcfg_quirks[] = {
@@ -47,10 +47,10 @@ index 54b36b7ad47d..6573d495d9c1 100644
{"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 044a3761c44f..e4ee4bf9ac64 100644
+index bc049865f8e0..c5d40951a6ad 100644
--- a/drivers/pci/controller/dwc/Kconfig
+++ b/drivers/pci/controller/dwc/Kconfig
-@@ -247,25 +247,27 @@ config PCI_MESON
+@@ -248,25 +248,27 @@ config PCI_MESON
implement the driver.
config PCIE_TEGRA194
@@ -101,7 +101,7 @@ index a751553fa0db..dbb981876556 100644
+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 70498689d0c0..3db514e1ea7e 100644
+index f920e7efe118..87c7929db727 100644
--- a/drivers/pci/controller/dwc/pcie-tegra194.c
+++ b/drivers/pci/controller/dwc/pcie-tegra194.c
@@ -22,6 +22,8 @@
@@ -113,7 +113,7 @@ index 70498689d0c0..3db514e1ea7e 100644
#include <linux/phy/phy.h>
#include <linux/pinctrl/consumer.h>
#include <linux/platform_device.h>
-@@ -324,6 +326,103 @@ struct tegra_pcie_dw_of_data {
+@@ -311,6 +313,103 @@ struct tegra_pcie_dw_of_data {
enum dw_pcie_device_mode mode;
};
@@ -217,7 +217,7 @@ index 70498689d0c0..3db514e1ea7e 100644
static inline struct tegra_pcie_dw *to_tegra_pcie(struct dw_pcie *pci)
{
return container_of(pci, struct tegra_pcie_dw, pci);
-@@ -2403,3 +2502,6 @@ MODULE_DEVICE_TABLE(of, tegra_pcie_dw_of_match);
+@@ -2339,3 +2438,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");
@@ -225,10 +225,10 @@ index 70498689d0c0..3db514e1ea7e 100644
+#endif /* CONFIG_PCIE_TEGRA194 */
+
diff --git a/include/linux/pci-ecam.h b/include/linux/pci-ecam.h
-index 1af5cb02ef7f..3fb16ada505a 100644
+index 033ce74f02e8..ccbf3c38c6e6 100644
--- a/include/linux/pci-ecam.h
+++ b/include/linux/pci-ecam.h
-@@ -57,6 +57,7 @@ extern const struct pci_ecam_ops pci_thunder_ecam_ops; /* Cavium ThunderX 1.x */
+@@ -58,6 +58,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 */
@@ -237,5 +237,5 @@ index 1af5cb02ef7f..3fb16ada505a 100644
#if IS_ENABLED(CONFIG_PCI_HOST_COMMON)
--
-2.28.0
+2.29.2
diff --git a/SOURCES/0001-PCI-brcmstb-Wait-for-Raspberry-Pi-s-firmware-when-pr.patch b/SOURCES/0001-PCI-brcmstb-Wait-for-Raspberry-Pi-s-firmware-when-pr.patch
deleted file mode 100644
index 07f8b4e..0000000
--- a/SOURCES/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/SOURCES/0001-Revert-arm64-allwinner-dts-a64-add-LCD-related-devic.patch b/SOURCES/0001-Revert-arm64-allwinner-dts-a64-add-LCD-related-devic.patch
deleted file mode 100644
index 0ea8f7d..0000000
--- a/SOURCES/0001-Revert-arm64-allwinner-dts-a64-add-LCD-related-devic.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-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/SOURCES/0001-Revert-drm-panel-add-Xingbangda-XBD599-panel.patch b/SOURCES/0001-Revert-drm-panel-add-Xingbangda-XBD599-panel.patch
deleted file mode 100644
index 2950f8a..0000000
--- a/SOURCES/0001-Revert-drm-panel-add-Xingbangda-XBD599-panel.patch
+++ /dev/null
@@ -1,418 +0,0 @@
-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/SOURCES/0001-Revert-drm-sun4i-sun6i_mipi_dsi-fix-horizontal-timin.patch b/SOURCES/0001-Revert-drm-sun4i-sun6i_mipi_dsi-fix-horizontal-timin.patch
deleted file mode 100644
index c290e7a..0000000
--- a/SOURCES/0001-Revert-drm-sun4i-sun6i_mipi_dsi-fix-horizontal-timin.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-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/SOURCES/0001-Revert-dt-bindings-panel-add-binding-for-Xingbangda-.patch b/SOURCES/0001-Revert-dt-bindings-panel-add-binding-for-Xingbangda-.patch
deleted file mode 100644
index 990e624..0000000
--- a/SOURCES/0001-Revert-dt-bindings-panel-add-binding-for-Xingbangda-.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-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/SOURCES/0001-USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch b/SOURCES/0001-USB-pci-quirks-Add-Raspberry-Pi-4-quirk.patch
deleted file mode 100644
index 7f13ec1..0000000
--- a/SOURCES/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/SOURCES/0001-acr-Use-kmemdup-instead-of-kmalloc-and-memcpy.patch b/SOURCES/0001-acr-Use-kmemdup-instead-of-kmalloc-and-memcpy.patch
deleted file mode 100644
index 9470c46..0000000
--- a/SOURCES/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/SOURCES/0001-arm64-allwinner-dts-a64-add-LCD-related-device-nodes.patch b/SOURCES/0001-arm64-allwinner-dts-a64-add-LCD-related-device-nodes.patch
deleted file mode 100644
index e3b07c2..0000000
--- a/SOURCES/0001-arm64-allwinner-dts-a64-add-LCD-related-device-nodes.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-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/SOURCES/0001-arm64-dts-sun50i-a64-pinephone-Add-touchscreen-suppo.patch b/SOURCES/0001-arm64-dts-sun50i-a64-pinephone-Add-touchscreen-suppo.patch
deleted file mode 100644
index d2511ae..0000000
--- a/SOURCES/0001-arm64-dts-sun50i-a64-pinephone-Add-touchscreen-suppo.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-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] arm64: dts: sun50i-a64-pinephone: Add touchscreen support
-
-Pinephone has a Goodix GT917S capacitive touchscreen controller on
-I2C0 bus. Add support for it.
-
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- .../dts/allwinner/sun50i-a64-pinephone.dtsi | 19 +++++++++++++++++++
- 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 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>;
-+ status = "okay";
-+
-+ touchscreen@5d {
-+ compatible = "goodix,gt917s", "goodix,gt911";
-+ reg = <0x5d>;
-+ interrupt-parent = <&pio>;
-+ interrupts = <7 4 IRQ_TYPE_LEVEL_HIGH>; /* PH4 */
-+ irq-gpios = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
-+ reset-gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */
-+ AVDD28-supply = <&reg_ldo_io0>;
-+ VDDIO-supply = <&reg_ldo_io0>;
-+ touchscreen-size-x = <720>;
-+ touchscreen-size-y = <1440>;
-+ };
-+};
-+
- &i2c1 {
- status = "okay";
-
---
-2.26.2
-
diff --git a/SOURCES/0001-arm64-dts-sun50i-a64-pinephone-Enable-LCD-support-on.patch b/SOURCES/0001-arm64-dts-sun50i-a64-pinephone-Enable-LCD-support-on.patch
deleted file mode 100644
index a38cd72..0000000
--- a/SOURCES/0001-arm64-dts-sun50i-a64-pinephone-Enable-LCD-support-on.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-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] arm64: dts: sun50i-a64-pinephone: Enable LCD support on
- PinePhone
-
-PinePhone uses PWM backlight and a XBD599 LCD panel over DSI for
-display.
-
-Backlight levels curve was optimized by Martijn Braam using a
-lux meter.
-
-Add its device nodes.
-
-Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
-Signed-off-by: Martijn Braam <martijn@brixit.nl>
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- .../allwinner/sun50i-a64-pinephone-1.1.dts | 19 ++++++++++
- .../dts/allwinner/sun50i-a64-pinephone.dtsi | 35 +++++++++++++++++++
- 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 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 @@ / {
- model = "Pine64 PinePhone Braveheart (1.1)";
- compatible = "pine64,pinephone-1.1", "allwinner,sun50i-a64";
- };
-+
-+&backlight {
-+ power-supply = <&reg_ldo_io0>;
-+ /*
-+ * PWM backlight circuit on this PinePhone revision was changed since
-+ * 1.0, and the lowest PWM duty cycle that doesn't lead to backlight
-+ * being off is around 20%. Duty cycle for the lowest brightness level
-+ * also varries quite a bit between individual boards, so the lowest
-+ * value here was chosen as a safe default.
-+ */
-+ brightness-levels = <
-+ 774 793 814 842
-+ 882 935 1003 1088
-+ 1192 1316 1462 1633
-+ 1830 2054 2309 2596
-+ 2916 3271 3664 4096>;
-+ num-interpolated-steps = <50>;
-+ 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 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>;
-+ enable-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */
-+ /* Backlight configuration differs per PinePhone revision. */
-+ };
-+
- chosen {
- stdout-path = "serial0:115200n8";
- };
-@@ -84,6 +91,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 +219,10 @@ &r_pio {
- */
- };
-
-+&r_pwm {
-+ status = "okay";
-+};
-+
- &r_rsb {
- status = "okay";
-
---
-2.26.2
-
diff --git a/SOURCES/0001-core-memory-remove-redundant-assignments-to-variable.patch b/SOURCES/0001-core-memory-remove-redundant-assignments-to-variable.patch
deleted file mode 100644
index d490d68..0000000
--- a/SOURCES/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/SOURCES/0001-device-detect-if-changing-endianness-failed.patch b/SOURCES/0001-device-detect-if-changing-endianness-failed.patch
deleted file mode 100644
index 1089b7e..0000000
--- a/SOURCES/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/SOURCES/0001-device-detect-vGPUs.patch b/SOURCES/0001-device-detect-vGPUs.patch
deleted file mode 100644
index 08f591f..0000000
--- a/SOURCES/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/SOURCES/0001-device-rework-mmio-mapping-code-to-get-rid-of-second.patch b/SOURCES/0001-device-rework-mmio-mapping-code-to-get-rid-of-second.patch
deleted file mode 100644
index bde820b..0000000
--- a/SOURCES/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/SOURCES/0001-device-use-regular-PRI-accessors-in-chipset-detectio.patch b/SOURCES/0001-device-use-regular-PRI-accessors-in-chipset-detectio.patch
deleted file mode 100644
index ec43451..0000000
--- a/SOURCES/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/SOURCES/0001-disp-gv100-expose-capabilities-class.patch b/SOURCES/0001-disp-gv100-expose-capabilities-class.patch
deleted file mode 100644
index 6029379..0000000
--- a/SOURCES/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/SOURCES/0001-disp-hda-gf119-add-HAL-for-programming-device-entry-.patch b/SOURCES/0001-disp-hda-gf119-add-HAL-for-programming-device-entry-.patch
deleted file mode 100644
index cba6699..0000000
--- a/SOURCES/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/SOURCES/0001-disp-hda-gf119-select-HDA-device-entry-based-on-boun.patch b/SOURCES/0001-disp-hda-gf119-select-HDA-device-entry-based-on-boun.patch
deleted file mode 100644
index 714d1a0..0000000
--- a/SOURCES/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/SOURCES/0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch b/SOURCES/0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch
deleted file mode 100644
index 0011e60..0000000
--- a/SOURCES/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/SOURCES/0001-disp-hda-gv100-NV_PDISP_SF_AUDIO_CNTRL0-register-mov.patch b/SOURCES/0001-disp-hda-gv100-NV_PDISP_SF_AUDIO_CNTRL0-register-mov.patch
deleted file mode 100644
index b93c9f1..0000000
--- a/SOURCES/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/SOURCES/0001-disp-nv50-increase-timeout-on-pio-channel-free-polli.patch b/SOURCES/0001-disp-nv50-increase-timeout-on-pio-channel-free-polli.patch
deleted file mode 100644
index d8c1a93..0000000
--- a/SOURCES/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/SOURCES/0001-drivers-perf-xgene_pmu-Fix-uninitialized-resource-st.patch b/SOURCES/0001-drivers-perf-xgene_pmu-Fix-uninitialized-resource-st.patch
deleted file mode 100644
index 00975ae..0000000
--- a/SOURCES/0001-drivers-perf-xgene_pmu-Fix-uninitialized-resource-st.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From b0697932d03bd78bd4db6466939680c0fbdd8589 Mon Sep 17 00:00:00 2001
-From: Mark Salter <msalter@redhat.com>
-Date: Tue, 15 Sep 2020 16:41:09 -0400
-Subject: [PATCH] drivers/perf: xgene_pmu: Fix uninitialized resource struct
-
-This splat was reported on newer Fedora kernels booting on certain
-X-gene based machines:
-
- xgene-pmu APMC0D83:00: X-Gene PMU version 3
- Unable to handle kernel read from unreadable memory at virtual \
- address 0000000000004006
- ...
- 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 ]---
-
-This is due to use of an uninitialized local resource struct in the xgene
-pmu driver. The thunderx2_pmu driver avoids this by using the resource list
-constructed by acpi_dev_get_resources() rather than using a callback from
-that function. The callback in the xgene driver didn't fully initialize
-the resource. So get rid of the callback and search the resource list as
-done by thunderx2.
-
-Fixes: 832c927d119b ("perf: xgene: Add APM X-Gene SoC Performance Monitoring Unit driver")
-Signed-off-by: Mark Salter <msalter@redhat.com>
-Link: https://lore.kernel.org/r/20200915204110.326138-1-msalter@redhat.com
-Signed-off-by: Will Deacon <will@kernel.org>
----
- drivers/perf/xgene_pmu.c | 32 +++++++++++++++++---------------
- 1 file changed, 17 insertions(+), 15 deletions(-)
-
-diff --git a/drivers/perf/xgene_pmu.c b/drivers/perf/xgene_pmu.c
-index edac28cd25dd..633cf07ba672 100644
---- a/drivers/perf/xgene_pmu.c
-+++ b/drivers/perf/xgene_pmu.c
-@@ -1453,17 +1453,6 @@ static char *xgene_pmu_dev_name(struct device *dev, u32 type, int id)
- }
-
- #if defined(CONFIG_ACPI)
--static int acpi_pmu_dev_add_resource(struct acpi_resource *ares, void *data)
--{
-- struct resource *res = data;
--
-- if (ares->type == ACPI_RESOURCE_TYPE_FIXED_MEMORY32)
-- acpi_dev_resource_memory(ares, res);
--
-- /* Always tell the ACPI core to skip this resource */
-- return 1;
--}
--
- static struct
- xgene_pmu_dev_ctx *acpi_get_pmu_hw_inf(struct xgene_pmu *xgene_pmu,
- struct acpi_device *adev, u32 type)
-@@ -1475,6 +1464,7 @@ xgene_pmu_dev_ctx *acpi_get_pmu_hw_inf(struct xgene_pmu *xgene_pmu,
- struct hw_pmu_info *inf;
- void __iomem *dev_csr;
- struct resource res;
-+ struct resource_entry *rentry;
- int enable_bit;
- int rc;
-
-@@ -1483,11 +1473,23 @@ xgene_pmu_dev_ctx *acpi_get_pmu_hw_inf(struct xgene_pmu *xgene_pmu,
- return NULL;
-
- INIT_LIST_HEAD(&resource_list);
-- rc = acpi_dev_get_resources(adev, &resource_list,
-- acpi_pmu_dev_add_resource, &res);
-+ rc = acpi_dev_get_resources(adev, &resource_list, NULL, NULL);
-+ if (rc <= 0) {
-+ dev_err(dev, "PMU type %d: No resources found\n", type);
-+ return NULL;
-+ }
-+
-+ list_for_each_entry(rentry, &resource_list, node) {
-+ if (resource_type(rentry->res) == IORESOURCE_MEM) {
-+ res = *rentry->res;
-+ rentry = NULL;
-+ break;
-+ }
-+ }
- acpi_dev_free_resource_list(&resource_list);
-- if (rc < 0) {
-- dev_err(dev, "PMU type %d: No resource address found\n", type);
-+
-+ if (rentry) {
-+ dev_err(dev, "PMU type %d: No memory resource found\n", type);
- return NULL;
- }
-
---
-2.26.2
-
diff --git a/SOURCES/0001-drm-Use-generic-helper-to-check-_PR3-presence.patch b/SOURCES/0001-drm-Use-generic-helper-to-check-_PR3-presence.patch
deleted file mode 100644
index f0f9e0d..0000000
--- a/SOURCES/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/SOURCES/0001-drm-nouveau-kms-handle-mDP-connectors.patch b/SOURCES/0001-drm-nouveau-kms-handle-mDP-connectors.patch
new file mode 100644
index 0000000..44c150f
--- /dev/null
+++ b/SOURCES/0001-drm-nouveau-kms-handle-mDP-connectors.patch
@@ -0,0 +1,54 @@
+From 54a080fdc2e65b38aea4dd59dde357d6c340fa25 Mon Sep 17 00:00:00 2001
+From: Karol Herbst <kherbst@redhat.com>
+Date: Thu, 26 Nov 2020 14:47:50 +0100
+Subject: [PATCH] drm/nouveau/kms: handle mDP connectors
+
+In some cases we have the handle those explicitly as the fallback
+connector type detection fails and marks those as eDP connectors.
+
+Attempting to use such a connector with mutter leads to a crash of mutter
+as it ends up with two eDP displays.
+
+Information is taken from the official DCB documentation.
+
+Upstream Nouveau commit: 95adf381b74e86a8a34b93c3fab73c15dd2f3f5c
+
+Cc: stable@vger.kernel.org
+Cc: dri-devel@lists.freedesktop.org
+Cc: Ben Skeggs <bskeggs@redhat.com>
+Reported-by: Mark Pearson <markpearson@lenovo.com>
+Tested-by: Mark Pearson <markpearson@lenovo.com>
+Signed-off-by: Karol Herbst <kherbst@redhat.com>
+Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
+---
+ drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/conn.h | 1 +
+ drivers/gpu/drm/nouveau/nouveau_connector.c | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/conn.h b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/conn.h
+index f5f59261ea81..d1beaad0c82b 100644
+--- a/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/conn.h
++++ b/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/conn.h
+@@ -14,6 +14,7 @@ enum dcb_connector_type {
+ DCB_CONNECTOR_LVDS_SPWG = 0x41,
+ DCB_CONNECTOR_DP = 0x46,
+ DCB_CONNECTOR_eDP = 0x47,
++ DCB_CONNECTOR_mDP = 0x48,
+ DCB_CONNECTOR_HDMI_0 = 0x60,
+ DCB_CONNECTOR_HDMI_1 = 0x61,
+ DCB_CONNECTOR_HDMI_C = 0x63,
+diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
+index 8b4b3688c7ae..4c992fd5bd68 100644
+--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
++++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
+@@ -1210,6 +1210,7 @@ drm_conntype_from_dcb(enum dcb_connector_type dcb)
+ case DCB_CONNECTOR_DMS59_DP0:
+ case DCB_CONNECTOR_DMS59_DP1:
+ case DCB_CONNECTOR_DP :
++ case DCB_CONNECTOR_mDP :
+ case DCB_CONNECTOR_USB_C : return DRM_MODE_CONNECTOR_DisplayPort;
+ case DCB_CONNECTOR_eDP : return DRM_MODE_CONNECTOR_eDP;
+ case DCB_CONNECTOR_HDMI_0 :
+--
+2.29.2
+
diff --git a/SOURCES/0001-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch b/SOURCES/0001-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch
deleted file mode 100644
index d78bf56..0000000
--- a/SOURCES/0001-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch
+++ /dev/null
@@ -1,948 +0,0 @@
-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/SOURCES/0001-drm-panel-st7703-Add-support-for-Xingbangda-XBD599.patch b/SOURCES/0001-drm-panel-st7703-Add-support-for-Xingbangda-XBD599.patch
deleted file mode 100644
index 1cc38fc..0000000
--- a/SOURCES/0001-drm-panel-st7703-Add-support-for-Xingbangda-XBD599.patch
+++ /dev/null
@@ -1,251 +0,0 @@
-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] 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.
-
-Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- drivers/gpu/drm/panel/panel-sitronix-st7703.c | 199 +++++++++++++++++-
- 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 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 @@
- #define ST7703_CMD_SETEXTC 0xB9
- #define ST7703_CMD_SETMIPI 0xBA
- #define ST7703_CMD_SETVDC 0xBC
--#define ST7703_CMD_UNKNOWN0 0xBF
-+#define ST7703_CMD_UNKNOWN_BF 0xBF
- #define ST7703_CMD_SETSCR 0xC0
- #define ST7703_CMD_SETPOWER 0xC1
- #define ST7703_CMD_SETPANEL 0xCC
-+#define ST7703_CMD_UNKNOWN_C6 0xC6
- #define ST7703_CMD_SETGAMMA 0xE0
- #define ST7703_CMD_SETEQ 0xE3
- #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);
- dsi_generic_write_seq(dsi, ST7703_CMD_SETGIP1,
- 0x82, 0x10, 0x06, 0x05, 0x9E, 0x0A, 0xA5, 0x12,
- 0x31, 0x23, 0x37, 0x83, 0x04, 0xBC, 0x27, 0x38,
-@@ -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; \
-+ ret = mipi_dsi_dcs_write(dsi, cmd, d, ARRAY_SIZE(d)); \
-+ if (ret < 0) \
-+ return ret; \
-+ } while (0)
-+
-+
-+static int xbd599_init_sequence(struct st7703 *ctx)
-+{
-+ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
-+
-+ /*
-+ * Init sequence was supplied by the panel vendor.
-+ */
-+
-+ /* Magic sequence to unlock user commands below. */
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETEXTC, 0xF1, 0x12, 0x83);
-+
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETMIPI,
-+ 0x33, /* VC_main = 0, Lane_Number = 3 (4 lanes) */
-+ 0x81, /* DSI_LDO_SEL = 1.7V, RTERM = 90 Ohm */
-+ 0x05, /* IHSRX = x6 (Low High Speed driving ability) */
-+ 0xF9, /* TX_CLK_SEL = fDSICLK/16 */
-+ 0x0E, /* HFP_OSC (min. HFP number in DSI mode) */
-+ 0x0E, /* HBP_OSC (min. HBP number in DSI mode) */
-+ /* The rest is undocumented in ST7703 datasheet */
-+ 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, /* PCCS = 2, ECP_DC_DIV = 1/4 HSYNC */
-+ 0x22, /* DT = 15ms XDK_ECP = x2 */
-+ 0x20, /* PFM_DC_DIV = /1 */
-+ 0x03 /* ECP_SYNC_EN = 1, VGX_SYNC_EN = 1 */);
-+
-+ /* RGB I/F porch timing */
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETRGBIF,
-+ 0x10, /* VBP_RGB_GEN */
-+ 0x10, /* VFP_RGB_GEN */
-+ 0x05, /* DE_BP_RGB_GEN */
-+ 0x05, /* DE_FP_RGB_GEN */
-+ /* The rest is undocumented in ST7703 datasheet */
-+ 0x03, 0xFF,
-+ 0x00, 0x00,
-+ 0x00, 0x00);
-+
-+ /* Source driving settings. */
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETSCR,
-+ 0x73, /* N_POPON */
-+ 0x73, /* N_NOPON */
-+ 0x50, /* I_POPON */
-+ 0x50, /* I_NOPON */
-+ 0x00, /* SCR[31,24] */
-+ 0xC0, /* SCR[23,16] */
-+ 0x08, /* SCR[15,8] */
-+ 0x70, /* SCR[7,0] */
-+ 0x00 /* Undocumented */);
-+
-+ /* NVDDD_SEL = -1.8V, VDDD_SEL = out of range (possibly 1.9V?) */
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETVDC, 0x4E);
-+
-+ /*
-+ * SS_PANEL = 1 (reverse scan), GS_PANEL = 0 (normal scan)
-+ * REV_PANEL = 1 (normally black panel), BGR_PANEL = 1 (BGR)
-+ */
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETPANEL, 0x0B);
-+
-+ /* Zig-Zag Type C column inversion. */
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETCYC, 0x80);
-+
-+ /* Set display resolution. */
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETDISP,
-+ 0xF0, /* NL = 240 */
-+ 0x12, /* RES_V_LSB = 0, BLK_CON = VSSD,
-+ * RESO_SEL = 720RGB
-+ */
-+ 0xF0 /* WHITE_GND_EN = 1 (GND),
-+ * WHITE_FRAME_SEL = 7 frames,
-+ * ISC = 0 frames
-+ */);
-+
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETEQ,
-+ 0x00, /* PNOEQ */
-+ 0x00, /* NNOEQ */
-+ 0x0B, /* PEQGND */
-+ 0x0B, /* NEQGND */
-+ 0x10, /* PEQVCI */
-+ 0x10, /* NEQVCI */
-+ 0x00, /* PEQVCI1 */
-+ 0x00, /* NEQVCI1 */
-+ 0x00, /* reserved */
-+ 0x00, /* reserved */
-+ 0xFF, /* reserved */
-+ 0x00, /* reserved */
-+ 0xC0, /* ESD_DET_DATA_WHITE = 1, ESD_WHITE_EN = 1 */
-+ 0x10 /* SLPIN_OPTION = 1 (no need vsync after sleep-in)
-+ * VEDIO_NO_CHECK_EN = 0
-+ * ESD_WHITE_GND_EN = 0
-+ * ESD_DET_TIME_SEL = 0 frames
-+ */);
-+
-+ /* Undocumented command. */
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_UNKNOWN_C6, 0x01, 0x00, 0xFF, 0xFF, 0x00);
-+
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETPOWER,
-+ 0x74, /* VBTHS, VBTLS: VGH = 17V, VBL = -11V */
-+ 0x00, /* FBOFF_VGH = 0, FBOFF_VGL = 0 */
-+ 0x32, /* VRP */
-+ 0x32, /* VRN */
-+ 0x77, /* reserved */
-+ 0xF1, /* APS = 1 (small),
-+ * VGL_DET_EN = 1, VGH_DET_EN = 1,
-+ * VGL_TURBO = 1, VGH_TURBO = 1
-+ */
-+ 0xFF, /* VGH1_L_DIV, VGL1_L_DIV (1.5MHz) */
-+ 0xFF, /* VGH1_R_DIV, VGL1_R_DIV (1.5MHz) */
-+ 0xCC, /* VGH2_L_DIV, VGL2_L_DIV (2.6MHz) */
-+ 0xCC, /* VGH2_R_DIV, VGL2_R_DIV (2.6MHz) */
-+ 0x77, /* VGH3_L_DIV, VGL3_L_DIV (4.5MHz) */
-+ 0x77 /* VGH3_R_DIV, VGL3_R_DIV (4.5MHz) */);
-+
-+ /* Reference voltage. */
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETBGP,
-+ 0x07, /* VREF_SEL = 4.2V */
-+ 0x07 /* NVREF_SEL = 4.2V */);
-+
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETVCOM,
-+ 0x2C, /* VCOMDC_F = -0.67V */
-+ 0x2C /* VCOMDC_B = -0.67V */);
-+
-+ /* Undocumented command. */
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_UNKNOWN_BF, 0x02, 0x11, 0x00);
-+
-+ /* This command is to set forward GIP timing. */
-+ 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);
-+
-+ /* This command is to set backward GIP timing. */
-+ 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);
-+
-+ /* Adjust the gamma characteristics of the panel. */
-+ 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);
-+
-+ return 0;
-+}
-+
-+static const struct drm_display_mode xbd599_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,
-+};
-+
-+static const struct st7703_panel_desc xbd599_desc = {
-+ .mode = &xbd599_mode,
-+ .lanes = 4,
-+ .mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE,
-+ .format = MIPI_DSI_FMT_RGB888,
-+ .init_sequence = xbd599_init_sequence,
-+};
-+
- static int st7703_enable(struct drm_panel *panel)
- {
- 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 },
- { /* sentinel */ }
- };
- MODULE_DEVICE_TABLE(of, st7703_of_match);
---
-2.26.2
-
diff --git a/SOURCES/0001-drm-panel-st7703-Assert-reset-prior-to-powering-down.patch b/SOURCES/0001-drm-panel-st7703-Assert-reset-prior-to-powering-down.patch
deleted file mode 100644
index 045875f..0000000
--- a/SOURCES/0001-drm-panel-st7703-Assert-reset-prior-to-powering-down.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-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] 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.
-
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- drivers/gpu/drm/panel/panel-sitronix-st7703.c | 1 +
- 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 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);
- ctx->prepared = false;
---
-2.26.2
-
diff --git a/SOURCES/0001-drm-panel-st7703-Enter-sleep-after-display-off.patch b/SOURCES/0001-drm-panel-st7703-Enter-sleep-after-display-off.patch
deleted file mode 100644
index 33e52fc..0000000
--- a/SOURCES/0001-drm-panel-st7703-Enter-sleep-after-display-off.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-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] 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.
-
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- drivers/gpu/drm/panel/panel-sitronix-st7703.c | 13 ++++++++++++-
- 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 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)
- {
- struct st7703 *ctx = panel_to_st7703(panel);
- struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
-+ int ret;
-+
-+ ret = mipi_dsi_dcs_set_display_off(dsi);
-+ 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)
-+ DRM_DEV_ERROR(ctx->dev,
-+ "Failed to enter sleep mode: %d\n", ret);
-+
-+ return 0;
- }
-
- static int st7703_unprepare(struct drm_panel *panel)
---
-2.26.2
-
diff --git a/SOURCES/0001-drm-panel-st7703-Move-code-specific-to-jh057n-closer.patch b/SOURCES/0001-drm-panel-st7703-Move-code-specific-to-jh057n-closer.patch
deleted file mode 100644
index c3ab19f..0000000
--- a/SOURCES/0001-drm-panel-st7703-Move-code-specific-to-jh057n-closer.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-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] drm/panel: st7703: Move code specific to jh057n closer
- together
-
-It's better than having it spread around the driver.
-
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- drivers/gpu/drm/panel/panel-sitronix-st7703.c | 50 +++++++++----------
- 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 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,
-+ .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,
-+};
-+
-+struct st7703_panel_desc jh057n00900_panel_desc = {
-+ .mode = &jh057n00900_mode,
-+ .lanes = 4,
-+ .mode_flags = MIPI_DSI_MODE_VIDEO |
-+ MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_VIDEO_SYNC_PULSE,
-+ .format = MIPI_DSI_FMT_RGB888,
-+ .init_sequence = jh057n_init_sequence,
-+};
-+
- static int st7703_enable(struct drm_panel *panel)
- {
- struct st7703 *ctx = panel_to_st7703(panel);
-@@ -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,
-- .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,
--};
--
--struct st7703_panel_desc jh057n00900_panel_desc = {
-- .mode = &jh057n00900_mode,
-- .lanes = 4,
-- .mode_flags = MIPI_DSI_MODE_VIDEO |
-- MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_VIDEO_SYNC_PULSE,
-- .format = MIPI_DSI_FMT_RGB888,
-- .init_sequence = jh057n_init_sequence,
--};
--
- static int st7703_get_modes(struct drm_panel *panel,
- struct drm_connector *connector)
- {
---
-2.26.2
-
diff --git a/SOURCES/0001-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch b/SOURCES/0001-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch
deleted file mode 100644
index 81c6220..0000000
--- a/SOURCES/0001-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-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] 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
-initialization function to the enable callback.
-
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- drivers/gpu/drm/panel/panel-sitronix-st7703.c | 33 ++++++++++---------
- 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 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)
- static int jh057n_init_sequence(struct st7703 *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
-@@ -136,20 +134,7 @@ static int jh057n_init_sequence(struct st7703 *ctx)
- 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;
- }
-
-@@ -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);
-+ if (ret < 0) {
-+ DRM_DEV_ERROR(ctx->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(ctx->dev, "Panel init sequence done\n");
-+
- return 0;
- }
-
---
-2.26.2
-
diff --git a/SOURCES/0001-drm-panel-st7703-Prepare-for-supporting-multiple-pan.patch b/SOURCES/0001-drm-panel-st7703-Prepare-for-supporting-multiple-pan.patch
deleted file mode 100644
index 94b181b..0000000
--- a/SOURCES/0001-drm-panel-st7703-Prepare-for-supporting-multiple-pan.patch
+++ /dev/null
@@ -1,128 +0,0 @@
-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] drm/panel: st7703: Prepare for supporting multiple panels
-
-Parametrize the driver so that it can support more panels based
-on st7703 controller.
-
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- drivers/gpu/drm/panel/panel-sitronix-st7703.c | 43 +++++++++++++------
- 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 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 @@
- #include <linux/media-bus-format.h>
- #include <linux/mod_devicetable.h>
- #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;
-+};
-+
-+struct st7703_panel_desc {
-+ const struct drm_display_mode *mode;
-+ unsigned int lanes;
-+ unsigned long mode_flags;
-+ 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) {
- DRM_DEV_ERROR(ctx->dev, "Panel init sequence failed: %d\n",
- ret);
-@@ -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,
- .hsync_start = 720 + 90,
- .hsync_end = 720 + 90 + 20,
-@@ -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,
-+ .mode_flags = MIPI_DSI_MODE_VIDEO |
-+ MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_VIDEO_SYNC_PULSE,
-+ .format = MIPI_DSI_FMT_RGB888,
-+ .init_sequence = jh057n_init_sequence,
-+};
-+
- static int st7703_get_modes(struct drm_panel *panel,
- struct drm_connector *connector)
- {
- 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) {
- DRM_DEV_ERROR(ctx->dev, "Failed to add mode %ux%u@%u\n",
-- default_mode.hdisplay, default_mode.vdisplay,
-- default_mode.vrefresh);
-+ ctx->desc->mode->hdisplay, ctx->desc->mode->vdisplay,
-+ 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 |
-- MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_VIDEO_SYNC_PULSE;
-+ 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 },
- { /* sentinel */ }
- };
- MODULE_DEVICE_TABLE(of, st7703_of_match);
---
-2.26.2
-
diff --git a/SOURCES/0001-drm-panel-st7703-Rename-functions-from-jh057n-prefix.patch b/SOURCES/0001-drm-panel-st7703-Rename-functions-from-jh057n-prefix.patch
deleted file mode 100644
index 1d17d14..0000000
--- a/SOURCES/0001-drm-panel-st7703-Rename-functions-from-jh057n-prefix.patch
+++ /dev/null
@@ -1,265 +0,0 @@
-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] 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
-to the panel are kept named after the panel.
-
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- drivers/gpu/drm/panel/panel-sitronix-st7703.c | 90 ++++++++++---------
- 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 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 @@
- // SPDX-License-Identifier: GPL-2.0
- /*
-- * Rockteck jh057n00900 5.5" MIPI-DSI panel driver
-+ * Driver for panels based on Sitronix ST7703 controller, souch as:
-+ *
-+ * - Rocktech jh057n00900 5.5" MIPI-DSI panel
- *
- * Copyright (C) Purism SPC 2019
- */
-@@ -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;
- struct drm_panel panel;
- struct gpio_desc *reset_gpio;
-@@ -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)
- {
- struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
- struct device *dev = ctx->dev;
-@@ -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)
- {
-- 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,
-- .prepare = jh057n_prepare,
-- .enable = jh057n_enable,
-- .get_modes = jh057n_get_modes,
-+static const struct drm_panel_funcs st7703_drm_funcs = {
-+ .disable = st7703_disable,
-+ .unprepare = st7703_unprepare,
-+ .prepare = st7703_prepare,
-+ .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)
- {
- struct device *dev = &dsi->dev;
-- 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" },
- { /* sentinel */ }
- };
--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,
-- .shutdown = jh057n_shutdown,
-+static struct mipi_dsi_driver st7703_driver = {
-+ .probe = st7703_probe,
-+ .remove = st7703_remove,
-+ .shutdown = st7703_shutdown,
- .driver = {
- .name = DRV_NAME,
-- .of_match_table = jh057n_of_match,
-+ .of_match_table = st7703_of_match,
- },
- };
--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");
- MODULE_LICENSE("GPL v2");
---
-2.26.2
-
diff --git a/SOURCES/0001-dt-bindings-panel-Add-compatible-for-Xingbangda-XBD5.patch b/SOURCES/0001-dt-bindings-panel-Add-compatible-for-Xingbangda-XBD5.patch
deleted file mode 100644
index 74906d9..0000000
--- a/SOURCES/0001-dt-bindings-panel-Add-compatible-for-Xingbangda-XBD5.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-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] 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
-used in PinePhone.
-
-Add a compatible for it.
-
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- .../bindings/display/panel/rocktech,jh057n00900.yaml | 6 +++++-
- 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 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
-+ enum:
-+ # Rocktech JH057N00900 5.5" 720x1440 TFT LCD panel
-+ - rocktech,jh057n00900
-+ # Xingbangda XBD599 5.99" 720x1440 TFT LCD panel
-+ - xingbangda,xbd599
-
- reg:
- maxItems: 1
---
-2.26.2
-
diff --git a/SOURCES/0001-dt-bindings-panel-Convert-rocktech-jh057n00900-to-ya.patch b/SOURCES/0001-dt-bindings-panel-Convert-rocktech-jh057n00900-to-ya.patch
deleted file mode 100644
index 0aaf4a9..0000000
--- a/SOURCES/0001-dt-bindings-panel-Convert-rocktech-jh057n00900-to-ya.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-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] dt-bindings: panel: Convert rocktech, jh057n00900 to yaml
-
-Convert Rocktech MIPI DSI panel driver from txt to yaml bindings.
-
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- .../display/panel/rocktech,jh057n00900.txt | 23 -------
- .../display/panel/rocktech,jh057n00900.yaml | 66 +++++++++++++++++++
- 2 files changed, 66 insertions(+), 23 deletions(-)
- delete mode 100644 Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.txt
- create mode 100644 Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml
-
-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 a372c5d84695..000000000000
---- a/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.txt
-+++ /dev/null
-@@ -1,23 +0,0 @@
--Rocktech jh057n00900 5.5" 720x1440 TFT LCD panel
--
--Required properties:
--- compatible: should be "rocktech,jh057n00900"
--- reg: DSI virtual channel of the peripheral
--- reset-gpios: panel reset gpio
--- backlight: phandle of the backlight device attached to the panel
--- vcc-supply: phandle of the regulator that provides the vcc supply voltage.
--- iovcc-supply: phandle of the regulator that provides the iovcc supply
-- voltage.
--
--Example:
--
-- &mipi_dsi {
-- panel@0 {
-- compatible = "rocktech,jh057n00900";
-- reg = <0>;
-- backlight = <&backlight>;
-- reset-gpios = <&gpio3 13 GPIO_ACTIVE_LOW>;
-- vcc-supply = <&reg_2v8_p>;
-- iovcc-supply = <&reg_1v8_p>;
-- };
-- };
-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 000000000000..f97c48550741
---- /dev/null
-+++ b/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml
-@@ -0,0 +1,66 @@
-+# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
-+%YAML 1.2
-+---
-+$id: http://devicetree.org/schemas/display/panel/rocktech,jh057n00900.yaml#
-+$schema: http://devicetree.org/meta-schemas/core.yaml#
-+
-+title: Rocktech JH057N00900 5.5" 720x1440 TFT LCD panel
-+
-+maintainers:
-+ - Ondrej Jirman <megi@xff.cz>
-+
-+description: |
-+ Rocktech JH057N00900 is a 720x1440 TFT LCD panel
-+ connected using a MIPI-DSI video interface.
-+
-+allOf:
-+ - $ref: panel-common.yaml#
-+
-+properties:
-+ compatible:
-+ const: rocktech,jh057n00900
-+
-+ reg:
-+ maxItems: 1
-+ description: DSI virtual channel
-+
-+ vcc-supply:
-+ description: Panel power supply
-+
-+ vccio-supply:
-+ description: I/O voltage supply
-+
-+ reset-gpios:
-+ description: GPIO used for the reset pin
-+ maxItems: 1
-+
-+ backlight:
-+ description: Backlight used by the panel
-+ $ref: "/schemas/types.yaml#/definitions/phandle"
-+
-+required:
-+ - compatible
-+ - reg
-+ - vcc-supply
-+ - vccio-supply
-+ - reset-gpios
-+
-+additionalProperties: false
-+
-+examples:
-+ - |
-+ #include <dt-bindings/gpio/gpio.h>
-+
-+ dsi {
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+ panel@0 {
-+ compatible = "rocktech,jh057n00900";
-+ reg = <0>;
-+ vcc-supply = <&reg_2v8_p>;
-+ iovcc-supply = <&reg_1v8_p>;
-+ reset-gpios = <&gpio3 13 GPIO_ACTIVE_LOW>;
-+ backlight = <&backlight>;
-+ };
-+ };
-+...
---
-2.26.2
-
diff --git a/SOURCES/0001-dt-bindings-vendor-prefixes-Add-Xingbangda.patch b/SOURCES/0001-dt-bindings-vendor-prefixes-Add-Xingbangda.patch
deleted file mode 100644
index 65dad5c..0000000
--- a/SOURCES/0001-dt-bindings-vendor-prefixes-Add-Xingbangda.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-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] 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.
-
-Add the vendor prefix of it.
-
-Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
-Signed-off-by: Ondrej Jirman <megous@megous.com>
-Acked-by: Rob Herring <robh@kernel.org>
----
- Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
-index 9aeab66be85f..740b116b179f 100644
---- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
-+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
-@@ -1157,6 +1157,8 @@ patternProperties:
- description: Xiaomi Technology Co., Ltd.
- "^xillybus,.*":
- description: Xillybus Ltd.
-+ "^xingbangda,.*":
-+ description: Shenzhen Xingbangda Display Technology Co., Ltd
- "^xinpeng,.*":
- description: Shenzhen Xinpeng Technology Co., Ltd
- "^xlnx,.*":
---
-2.26.2
-
diff --git a/SOURCES/0001-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch b/SOURCES/0001-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch
index cf58543..0a3099d 100644
--- a/SOURCES/0001-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch
+++ b/SOURCES/0001-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mo.patch
@@ -27,8 +27,8 @@ index c9de4b36ca51..a1a012702915 100644
#include <linux/tboot.h>
+#include <linux/security.h>
#include <linux/usb/xhci-dbgp.h>
-
- #include <uapi/linux/mount.h>
+ #include <linux/static_call.h>
+ #include <linux/swiotlb.h>
@@ -1104,6 +1105,13 @@ void __init setup_arch(char **cmdline_p)
if (efi_enabled(EFI_BOOT))
efi_init();
diff --git a/SOURCES/0001-firmware-raspberrypi-Introduce-vl805-init-routine.patch b/SOURCES/0001-firmware-raspberrypi-Introduce-vl805-init-routine.patch
deleted file mode 100644
index db8a4a1..0000000
--- a/SOURCES/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/SOURCES/0001-i2c-core-Restore-acpi_walk_dep_device_list-getting-c.patch b/SOURCES/0001-i2c-core-Restore-acpi_walk_dep_device_list-getting-c.patch
deleted file mode 100644
index 85c6114..0000000
--- a/SOURCES/0001-i2c-core-Restore-acpi_walk_dep_device_list-getting-c.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From c342deae0807d249020e1edda9920255d76b58a1 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Wed, 14 Oct 2020 13:59:06 +0200
-Subject: [PATCH] i2c: core: Restore acpi_walk_dep_device_list() getting called
- after registering the ACPI i2c devs
-
-Commit 21653a4181ff ("i2c: core: Call i2c_acpi_install_space_handler()
-before i2c_acpi_register_devices()")'s intention was to only move the
-acpi_install_address_space_handler() call to the point before where
-the ACPI declared i2c-children of the adapter where instantiated by
-i2c_acpi_register_devices().
-
-But i2c_acpi_install_space_handler() had a call to
-acpi_walk_dep_device_list() hidden (that is I missed it) at the end
-of it, so as an unwanted side-effect now acpi_walk_dep_device_list()
-was also being called before i2c_acpi_register_devices().
-
-Move the acpi_walk_dep_device_list() call to the end of
-i2c_acpi_register_devices(), so that it is once again called *after*
-the i2c_client-s hanging of the adapter have been created.
-
-This fixes the Microsoft Surface Go 2 hanging at boot.
-
-Fixes: 21653a4181ff ("i2c: core: Call i2c_acpi_install_space_handler() before i2c_acpi_register_devices()")
-Suggested-by: Maximilian Luz <luzmaximilian@gmail.com>
-Reported-and-tested-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/i2c/i2c-core-acpi.c | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c
-index 2ade99b..bbf8dd4 100644
---- a/drivers/i2c/i2c-core-acpi.c
-+++ b/drivers/i2c/i2c-core-acpi.c
-@@ -264,6 +264,7 @@ static acpi_status i2c_acpi_add_device(acpi_handle handle, u32 level,
- void i2c_acpi_register_devices(struct i2c_adapter *adap)
- {
- acpi_status status;
-+ acpi_handle handle;
-
- if (!has_acpi_companion(&adap->dev))
- return;
-@@ -274,6 +275,15 @@ void i2c_acpi_register_devices(struct i2c_adapter *adap)
- adap, NULL);
- if (ACPI_FAILURE(status))
- dev_warn(&adap->dev, "failed to enumerate I2C slaves\n");
-+
-+ if (!adap->dev.parent)
-+ return;
-+
-+ handle = ACPI_HANDLE(adap->dev.parent);
-+ if (!handle)
-+ return;
-+
-+ acpi_walk_dep_device_list(handle);
- }
-
- const struct acpi_device_id *
-@@ -729,7 +739,6 @@ int i2c_acpi_install_space_handler(struct i2c_adapter *adapter)
- return -ENOMEM;
- }
-
-- acpi_walk_dep_device_list(handle);
- return 0;
- }
-
---
-2.28.0
-
diff --git a/SOURCES/0001-ipmi-do-not-configure-ipmi-for-HPE-m400.patch b/SOURCES/0001-ipmi-do-not-configure-ipmi-for-HPE-m400.patch
index 995be15..9322807 100644
--- a/SOURCES/0001-ipmi-do-not-configure-ipmi-for-HPE-m400.patch
+++ b/SOURCES/0001-ipmi-do-not-configure-ipmi-for-HPE-m400.patch
@@ -88,9 +88,9 @@ index 737c0b6b24ea..7901e780323b 100644
--- a/drivers/char/ipmi/ipmi_msghandler.c
+++ b/drivers/char/ipmi/ipmi_msghandler.c
@@ -34,6 +34,7 @@
- #include <linux/uuid.h>
#include <linux/nospec.h>
#include <linux/vmalloc.h>
+ #include <linux/delay.h>
+#include <linux/dmi.h>
#define IPMI_DRIVER_VERSION "39.2"
diff --git a/SOURCES/0001-kms-gv100-Add-support-for-interlaced-modes.patch b/SOURCES/0001-kms-gv100-Add-support-for-interlaced-modes.patch
deleted file mode 100644
index c50c826..0000000
--- a/SOURCES/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/SOURCES/0001-kms-nv50-Initialize-core-channel-in-nouveau_display_.patch b/SOURCES/0001-kms-nv50-Initialize-core-channel-in-nouveau_display_.patch
deleted file mode 100644
index b590bb0..0000000
--- a/SOURCES/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/SOURCES/0001-kms-nv50-Move-8BPC-limit-for-MST-into-nv50_mstc_get_.patch b/SOURCES/0001-kms-nv50-Move-8BPC-limit-for-MST-into-nv50_mstc_get_.patch
deleted file mode 100644
index 0a6a4cf..0000000
--- a/SOURCES/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/SOURCES/0001-kms-nv50-Probe-SOR-and-PIOR-caps-for-DP-interlacing-.patch b/SOURCES/0001-kms-nv50-Probe-SOR-and-PIOR-caps-for-DP-interlacing-.patch
deleted file mode 100644
index e74501b..0000000
--- a/SOURCES/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/SOURCES/0001-kms-nv50-Share-DP-SST-mode_valid-handling-with-MST.patch b/SOURCES/0001-kms-nv50-Share-DP-SST-mode_valid-handling-with-MST.patch
deleted file mode 100644
index c14aed7..0000000
--- a/SOURCES/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/SOURCES/0001-mmu-Remove-unneeded-semicolon.patch b/SOURCES/0001-mmu-Remove-unneeded-semicolon.patch
deleted file mode 100644
index 3931ff5..0000000
--- a/SOURCES/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/SOURCES/0001-perf-cs-etm-Move-defined-of-traceid_list.patch b/SOURCES/0001-perf-cs-etm-Move-defined-of-traceid_list.patch
deleted file mode 100644
index 63cbefa..0000000
--- a/SOURCES/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/SOURCES/0001-platform-x86-thinkpad_acpi-Add-support-for-dual-fan-.patch b/SOURCES/0001-platform-x86-thinkpad_acpi-Add-support-for-dual-fan-.patch
deleted file mode 100644
index 4ba0393..0000000
--- a/SOURCES/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/SOURCES/0001-platform-x86-thinkpad_acpi-lap-or-desk-mode-interfac.patch b/SOURCES/0001-platform-x86-thinkpad_acpi-lap-or-desk-mode-interfac.patch
deleted file mode 100644
index 3a15ae0..0000000
--- a/SOURCES/0001-platform-x86-thinkpad_acpi-lap-or-desk-mode-interfac.patch
+++ /dev/null
@@ -1,202 +0,0 @@
-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/SOURCES/0001-revert-ARM64-vdso32-Install-vdso32-from-vdso_install.patch b/SOURCES/0001-revert-ARM64-vdso32-Install-vdso32-from-vdso_install.patch
deleted file mode 100644
index b399551..0000000
--- a/SOURCES/0001-revert-ARM64-vdso32-Install-vdso32-from-vdso_install.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 8d75785a814241587802655cc33e384230744f0c Mon Sep 17 00:00:00 2001
-From: Stephen Boyd <swboyd@chromium.org>
-Date: Mon, 17 Aug 2020 18:49:50 -0700
-Subject: Revert [PATCH] ARM64: vdso32: Install vdso32 from vdso_install
-
-Add the 32-bit vdso Makefile to the vdso_install rule so that 'make
-vdso_install' installs the 32-bit compat vdso when it is compiled.
-
-Fixes: a7f71a2c8903 ("arm64: compat: Add vDSO")
-Signed-off-by: Stephen Boyd <swboyd@chromium.org>
-Reviewed-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
-Acked-by: Will Deacon <will@kernel.org>
-Cc: Vincenzo Frascino <vincenzo.frascino@arm.com>
-Link: https://lore.kernel.org/r/20200818014950.42492-1-swboyd@chromium.org
-Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
----
- arch/arm64/Makefile | 1 -
- arch/arm64/kernel/vdso32/Makefile | 2 +-
- 2 files changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
-index 55bc8546d9c7..b45f0124cc16 100644
---- a/arch/arm64/Makefile
-+++ b/arch/arm64/Makefile
-@@ -165,7 +165,6 @@ zinstall install:
- PHONY += vdso_install
- vdso_install:
- $(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso $@
-- $(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso32 $@
-
- # We use MRPROPER_FILES and CLEAN_FILES now
- archclean:
-diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile
-index 5139a5f19256..d6adb4677c25 100644
---- a/arch/arm64/kernel/vdso32/Makefile
-+++ b/arch/arm64/kernel/vdso32/Makefile
-@@ -208,7 +208,7 @@ quiet_cmd_vdsosym = VDSOSYM $@
- cmd_vdsosym = $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@
-
- # Install commands for the unstripped file
--quiet_cmd_vdso_install = INSTALL32 $@
-+quiet_cmd_vdso_install = INSTALL $@
- cmd_vdso_install = cp $(obj)/$@.dbg $(MODLIB)/vdso/vdso32.so
-
- vdso.so: $(obj)/vdso.so.dbg
---
-2.26.2
-
diff --git a/SOURCES/0001-selinux-allow-reading-labels-before-policy-is-loaded.patch b/SOURCES/0001-selinux-allow-reading-labels-before-policy-is-loaded.patch
deleted file mode 100644
index 5c2384c..0000000
--- a/SOURCES/0001-selinux-allow-reading-labels-before-policy-is-loaded.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Jonathan Lebon <jlebon@redhat.com>
-Date: Thu, 28 May 2020 10:39:40 -0400
-Subject: [PATCH] selinux: allow reading labels before policy is loaded
-
-This patch does for `getxattr` what commit 3e3e24b42043 ("selinux: allow
-labeling before policy is loaded") did for `setxattr`; it allows
-querying the current SELinux label on disk before the policy is loaded.
-
-One of the motivations described in that commit message also drives this
-patch: for Fedora CoreOS (and eventually RHEL CoreOS), we want to be
-able to move the root filesystem for example, from xfs to ext4 on RAID,
-on first boot, at initrd time.[1]
-
-Because such an operation works at the filesystem level, we need to be
-able to read the SELinux labels first from the original root, and apply
-them to the files of the new root. The previous commit enabled the
-second part of this process; this commit enables the first part.
-
-[1] https://github.com/coreos/fedora-coreos-tracker/issues/94
-
-Acked-by: Stephen Smalley <stephen.smalley.work@gmail.com>
-Signed-off-by: Jonathan Lebon <jlebon@redhat.com>
-Signed-off-by: Paul Moore <paul@paul-moore.com>
----
- security/selinux/hooks.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
-index efa6108b1ce9..ca901025802a 100644
---- a/security/selinux/hooks.c
-+++ b/security/selinux/hooks.c
-@@ -3332,7 +3332,12 @@ static int selinux_inode_getsecurity(struct inode *inode, const char *name, void
- char *context = NULL;
- struct inode_security_struct *isec;
-
-- if (strcmp(name, XATTR_SELINUX_SUFFIX))
-+ /*
-+ * If we're not initialized yet, then we can't validate contexts, so
-+ * just let vfs_getxattr fall back to using the on-disk xattr.
-+ */
-+ if (!selinux_initialized(&selinux_state) ||
-+ strcmp(name, XATTR_SELINUX_SUFFIX))
- return -EOPNOTSUPP;
-
- /*
---
-2.26.2
-
diff --git a/SOURCES/0001-soc-bcm2835-Sync-xHCI-reset-firmware-property-with-d.patch b/SOURCES/0001-soc-bcm2835-Sync-xHCI-reset-firmware-property-with-d.patch
deleted file mode 100644
index 3dd66b1..0000000
--- a/SOURCES/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/SOURCES/0001-update-phy-on-pine64-a64-devices.patch b/SOURCES/0001-update-phy-on-pine64-a64-devices.patch
index 0a1f4dc..e3da87c 100644
--- a/SOURCES/0001-update-phy-on-pine64-a64-devices.patch
+++ b/SOURCES/0001-update-phy-on-pine64-a64-devices.patch
@@ -21,19 +21,6 @@ index 2165f238af13..9741fb5caa6f 100644
phy-handle = <&ext_rmii_phy1>;
phy-supply = <&reg_dc1sw>;
status = "okay";
-diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
-index 2f6ea9f3f6a2..079b10641ccd 100644
---- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
-+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
-@@ -79,7 +79,7 @@ &ehci1 {
- &emac {
- pinctrl-names = "default";
- pinctrl-0 = <&rgmii_pins>;
-- phy-mode = "rgmii";
-+ phy-mode = "rgmii-id";
- phy-handle = <&ext_rgmii_phy>;
- phy-supply = <&reg_dc1sw>;
- status = "okay";
--
2.28.0
diff --git a/SOURCES/0001-usb-fusb302-Convert-to-use-GPIO-descriptors.patch b/SOURCES/0001-usb-fusb302-Convert-to-use-GPIO-descriptors.patch
deleted file mode 100644
index 4073234..0000000
--- a/SOURCES/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/SOURCES/0001-virt-vbox-Add-a-few-new-vmmdev-request-types-to-the-.patch b/SOURCES/0001-virt-vbox-Add-a-few-new-vmmdev-request-types-to-the-.patch
deleted file mode 100644
index 92c93e8..0000000
--- a/SOURCES/0001-virt-vbox-Add-a-few-new-vmmdev-request-types-to-the-.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Tue, 19 May 2020 11:05:40 +0200
-Subject: [PATCH] virt: vbox: Add a few new vmmdev request types to the
- userspace whitelist
-
-Upstream VirtualBox has defined and is using a few new request types for
-vmmdev requests passed through /dev/vboxguest to the hypervisor.
-
-Add the defines for these to vbox_vmmdev_types.h and add add them to the
-whitelists of vmmdev requests which userspace is allowed to make.
-
-BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1789545
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Upstream Status: https://lore.kernel.org/lkml/20200520195440.38759-1-hdegoede@redhat.com/
----
- drivers/virt/vboxguest/vboxguest_core.c | 2 ++
- include/uapi/linux/vbox_vmmdev_types.h | 3 +++
- 2 files changed, 5 insertions(+)
-
-diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c
-index 4f1addaa3f6f..ffd76b949276 100644
---- a/drivers/virt/vboxguest/vboxguest_core.c
-+++ b/drivers/virt/vboxguest/vboxguest_core.c
-@@ -1299,7 +1299,9 @@ static int vbg_req_allowed(struct vbg_dev *gdev, struct vbg_session *session,
- case VMMDEVREQ_VIDEO_ACCEL_ENABLE:
- case VMMDEVREQ_VIDEO_ACCEL_FLUSH:
- case VMMDEVREQ_VIDEO_SET_VISIBLE_REGION:
-+ case VMMDEVREQ_VIDEO_UPDATE_MONITOR_POSITIONS:
- case VMMDEVREQ_GET_DISPLAY_CHANGE_REQEX:
-+ case VMMDEVREQ_GET_DISPLAY_CHANGE_REQ_MULTI:
- case VMMDEVREQ_GET_SEAMLESS_CHANGE_REQ:
- case VMMDEVREQ_GET_VRDPCHANGE_REQ:
- case VMMDEVREQ_LOG_STRING:
-diff --git a/include/uapi/linux/vbox_vmmdev_types.h b/include/uapi/linux/vbox_vmmdev_types.h
-index c27289fd619a..f8a8d6b3c521 100644
---- a/include/uapi/linux/vbox_vmmdev_types.h
-+++ b/include/uapi/linux/vbox_vmmdev_types.h
-@@ -63,6 +63,7 @@ enum vmmdev_request_type {
- VMMDEVREQ_SET_GUEST_CAPABILITIES = 56,
- VMMDEVREQ_VIDEMODE_SUPPORTED2 = 57, /* since version 3.2.0 */
- VMMDEVREQ_GET_DISPLAY_CHANGE_REQEX = 80, /* since version 4.2.4 */
-+ VMMDEVREQ_GET_DISPLAY_CHANGE_REQ_MULTI = 81,
- VMMDEVREQ_HGCM_CONNECT = 60,
- VMMDEVREQ_HGCM_DISCONNECT = 61,
- VMMDEVREQ_HGCM_CALL32 = 62,
-@@ -92,6 +93,8 @@ enum vmmdev_request_type {
- VMMDEVREQ_WRITE_COREDUMP = 218,
- VMMDEVREQ_GUEST_HEARTBEAT = 219,
- VMMDEVREQ_HEARTBEAT_CONFIGURE = 220,
-+ VMMDEVREQ_NT_BUG_CHECK = 221,
-+ VMMDEVREQ_VIDEO_UPDATE_MONITOR_POSITIONS = 222,
- /* Ensure the enum is a 32 bit data-type */
- VMMDEVREQ_SIZEHACK = 0x7fffffff
- };
---
-2.26.2
-
diff --git a/SOURCES/0001-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch b/SOURCES/0001-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch
deleted file mode 100644
index c001fe5..0000000
--- a/SOURCES/0001-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch
+++ /dev/null
@@ -1,320 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Tue, 19 May 2020 18:04:30 +0200
-Subject: [PATCH] virt: vbox: Add support for the new
- VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl
-
-Add support for the new VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl, this
-is necessary for automatic resizing of the guest resolution to match the
-VM-window size to work with the new VMSVGA virtual GPU which is now the
-new default in VirtualBox.
-
-BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1789545
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Upstream Status: https://lore.kernel.org/lkml/20200520195440.38759-1-hdegoede@redhat.com/
----
- drivers/virt/vboxguest/vboxguest_core.c | 163 +++++++++++++++++++++++-
- drivers/virt/vboxguest/vboxguest_core.h | 14 ++
- include/uapi/linux/vboxguest.h | 24 ++++
- 3 files changed, 200 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c
-index 15b3cb618c6e..4f1addaa3f6f 100644
---- a/drivers/virt/vboxguest/vboxguest_core.c
-+++ b/drivers/virt/vboxguest/vboxguest_core.c
-@@ -679,7 +679,7 @@ static int vbg_set_host_capabilities(struct vbg_dev *gdev,
-
- WARN_ON(!mutex_is_locked(&gdev->session_mutex));
-
-- caps = gdev->set_guest_caps_tracker.mask;
-+ caps = gdev->acquired_guest_caps | gdev->set_guest_caps_tracker.mask;
-
- if (gdev->guest_caps_host == caps)
- return 0;
-@@ -703,6 +703,113 @@ static int vbg_set_host_capabilities(struct vbg_dev *gdev,
- return vbg_status_code_to_errno(rc);
- }
-
-+/**
-+ * Acquire (get exclusive access) guest capabilities for a session.
-+ * Takes the session mutex.
-+ * Return: 0 or negative errno value.
-+ * @gdev: The Guest extension device.
-+ * @session: The session.
-+ * @flags: Flags (VBGL_IOC_AGC_FLAGS_XXX).
-+ * @or_mask: The capabilities to add.
-+ * @not_mask: The capabilities to remove.
-+ * @session_termination: Set if we're called by the session cleanup code.
-+ * This tweaks the error handling so we perform
-+ * proper session cleanup even if the host
-+ * misbehaves.
-+ */
-+static int vbg_acquire_session_capabilities(struct vbg_dev *gdev,
-+ struct vbg_session *session,
-+ u32 or_mask, u32 not_mask,
-+ u32 flags, bool session_termination)
-+{
-+ unsigned long irqflags;
-+ bool wakeup = false;
-+ int ret = 0;
-+
-+ mutex_lock(&gdev->session_mutex);
-+
-+ if (gdev->set_guest_caps_tracker.mask & or_mask) {
-+ vbg_err("%s error: cannot acquire caps which are currently set\n",
-+ __func__);
-+ ret = -EINVAL;
-+ goto out;
-+ }
-+
-+ /*
-+ * Mark any caps in the or_mask as now being in acquire-mode. Note
-+ * once caps are in acquire_mode they always stay in this mode.
-+ * This impacts event handling, so we take the event-lock.
-+ */
-+ spin_lock_irqsave(&gdev->event_spinlock, irqflags);
-+ gdev->acquire_mode_guest_caps |= or_mask;
-+ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags);
-+
-+ /* If we only have to switch the caps to acquire mode, we're done. */
-+ if (flags & VBGL_IOC_AGC_FLAGS_CONFIG_ACQUIRE_MODE)
-+ goto out;
-+
-+ not_mask &= ~or_mask; /* or_mask takes priority over not_mask */
-+ not_mask &= session->acquired_guest_caps;
-+ or_mask &= ~session->acquired_guest_caps;
-+
-+ if (or_mask == 0 && not_mask == 0)
-+ goto out;
-+
-+ if (gdev->acquired_guest_caps & or_mask) {
-+ ret = -EBUSY;
-+ goto out;
-+ }
-+
-+ gdev->acquired_guest_caps |= or_mask;
-+ gdev->acquired_guest_caps &= ~not_mask;
-+ /* session->acquired_guest_caps impacts event handling, take the lock */
-+ spin_lock_irqsave(&gdev->event_spinlock, irqflags);
-+ session->acquired_guest_caps |= or_mask;
-+ session->acquired_guest_caps &= ~not_mask;
-+ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags);
-+
-+ ret = vbg_set_host_capabilities(gdev, session, session_termination);
-+ /* Roll back on failure, unless it's session termination time. */
-+ if (ret < 0 && !session_termination) {
-+ gdev->acquired_guest_caps &= ~or_mask;
-+ gdev->acquired_guest_caps |= not_mask;
-+ spin_lock_irqsave(&gdev->event_spinlock, irqflags);
-+ session->acquired_guest_caps &= ~or_mask;
-+ session->acquired_guest_caps |= not_mask;
-+ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags);
-+ }
-+
-+ /*
-+ * If we added a capability, check if that means some other thread in
-+ * our session should be unblocked because there are events pending
-+ * (the result of vbg_get_allowed_event_mask_for_session() may change).
-+ *
-+ * HACK ALERT! When the seamless support capability is added we generate
-+ * a seamless change event so that the ring-3 client can sync with
-+ * the seamless state.
-+ */
-+ if (ret == 0 && or_mask != 0) {
-+ spin_lock_irqsave(&gdev->event_spinlock, irqflags);
-+
-+ if (or_mask & VMMDEV_GUEST_SUPPORTS_SEAMLESS)
-+ gdev->pending_events |=
-+ VMMDEV_EVENT_SEAMLESS_MODE_CHANGE_REQUEST;
-+
-+ if (gdev->pending_events)
-+ wakeup = true;
-+
-+ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags);
-+
-+ if (wakeup)
-+ wake_up(&gdev->event_wq);
-+ }
-+
-+out:
-+ mutex_unlock(&gdev->session_mutex);
-+
-+ return ret;
-+}
-+
- /**
- * Sets the guest capabilities for a session. Takes the session spinlock.
- * Return: 0 or negative errno value.
-@@ -725,6 +832,13 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev,
-
- mutex_lock(&gdev->session_mutex);
-
-+ if (gdev->acquire_mode_guest_caps & or_mask) {
-+ vbg_err("%s error: cannot set caps which are in acquire_mode\n",
-+ __func__);
-+ ret = -EBUSY;
-+ goto out;
-+ }
-+
- /* Apply the changes to the session mask. */
- previous = session->set_guest_caps;
- session->set_guest_caps |= or_mask;
-@@ -962,6 +1076,7 @@ void vbg_core_close_session(struct vbg_session *session)
- struct vbg_dev *gdev = session->gdev;
- int i, rc;
-
-+ vbg_acquire_session_capabilities(gdev, session, 0, U32_MAX, 0, true);
- vbg_set_session_capabilities(gdev, session, 0, U32_MAX, true);
- vbg_set_session_event_filter(gdev, session, 0, U32_MAX, true);
-
-@@ -1019,6 +1134,25 @@ static int vbg_ioctl_driver_version_info(
- return 0;
- }
-
-+/* Must be called with the event_lock held */
-+static u32 vbg_get_allowed_event_mask_for_session(struct vbg_dev *gdev,
-+ struct vbg_session *session)
-+{
-+ u32 acquire_mode_caps = gdev->acquire_mode_guest_caps;
-+ u32 session_acquired_caps = session->acquired_guest_caps;
-+ u32 allowed_events = VMMDEV_EVENT_VALID_EVENT_MASK;
-+
-+ if ((acquire_mode_caps & VMMDEV_GUEST_SUPPORTS_GRAPHICS) &&
-+ !(session_acquired_caps & VMMDEV_GUEST_SUPPORTS_GRAPHICS))
-+ allowed_events &= ~VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST;
-+
-+ if ((acquire_mode_caps & VMMDEV_GUEST_SUPPORTS_SEAMLESS) &&
-+ !(session_acquired_caps & VMMDEV_GUEST_SUPPORTS_SEAMLESS))
-+ allowed_events &= ~VMMDEV_EVENT_SEAMLESS_MODE_CHANGE_REQUEST;
-+
-+ return allowed_events;
-+}
-+
- static bool vbg_wait_event_cond(struct vbg_dev *gdev,
- struct vbg_session *session,
- u32 event_mask)
-@@ -1030,6 +1164,7 @@ static bool vbg_wait_event_cond(struct vbg_dev *gdev,
- spin_lock_irqsave(&gdev->event_spinlock, flags);
-
- events = gdev->pending_events & event_mask;
-+ events &= vbg_get_allowed_event_mask_for_session(gdev, session);
- wakeup = events || session->cancel_waiters;
-
- spin_unlock_irqrestore(&gdev->event_spinlock, flags);
-@@ -1044,6 +1179,7 @@ static u32 vbg_consume_events_locked(struct vbg_dev *gdev,
- {
- u32 events = gdev->pending_events & event_mask;
-
-+ events &= vbg_get_allowed_event_mask_for_session(gdev, session);
- gdev->pending_events &= ~events;
- return events;
- }
-@@ -1445,6 +1581,29 @@ static int vbg_ioctl_change_filter_mask(struct vbg_dev *gdev,
- false);
- }
-
-+static int vbg_ioctl_acquire_guest_capabilities(struct vbg_dev *gdev,
-+ struct vbg_session *session,
-+ struct vbg_ioctl_acquire_guest_caps *caps)
-+{
-+ u32 flags, or_mask, not_mask;
-+
-+ if (vbg_ioctl_chk(&caps->hdr, sizeof(caps->u.in), 0))
-+ return -EINVAL;
-+
-+ flags = caps->u.in.flags;
-+ or_mask = caps->u.in.or_mask;
-+ not_mask = caps->u.in.not_mask;
-+
-+ if (flags & ~VBGL_IOC_AGC_FLAGS_VALID_MASK)
-+ return -EINVAL;
-+
-+ if ((or_mask | not_mask) & ~VMMDEV_GUEST_CAPABILITIES_MASK)
-+ return -EINVAL;
-+
-+ return vbg_acquire_session_capabilities(gdev, session, or_mask,
-+ not_mask, flags, false);
-+}
-+
- static int vbg_ioctl_change_guest_capabilities(struct vbg_dev *gdev,
- struct vbg_session *session, struct vbg_ioctl_set_guest_caps *caps)
- {
-@@ -1554,6 +1713,8 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data)
- return vbg_ioctl_interrupt_all_wait_events(gdev, session, data);
- case VBG_IOCTL_CHANGE_FILTER_MASK:
- return vbg_ioctl_change_filter_mask(gdev, session, data);
-+ case VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES:
-+ return vbg_ioctl_acquire_guest_capabilities(gdev, session, data);
- case VBG_IOCTL_CHANGE_GUEST_CAPABILITIES:
- return vbg_ioctl_change_guest_capabilities(gdev, session, data);
- case VBG_IOCTL_CHECK_BALLOON:
-diff --git a/drivers/virt/vboxguest/vboxguest_core.h b/drivers/virt/vboxguest/vboxguest_core.h
-index dc745a033164..ab4bf64e2cec 100644
---- a/drivers/virt/vboxguest/vboxguest_core.h
-+++ b/drivers/virt/vboxguest/vboxguest_core.h
-@@ -117,6 +117,15 @@ struct vbg_dev {
- */
- u32 event_filter_host;
-
-+ /**
-+ * Guest capabilities which have been switched to acquire_mode.
-+ */
-+ u32 acquire_mode_guest_caps;
-+ /**
-+ * Guest capabilities acquired by vbg_acquire_session_capabilities().
-+ * Only one session can acquire a capability at a time.
-+ */
-+ u32 acquired_guest_caps;
- /**
- * Usage counters for guest capabilities requested through
- * vbg_set_session_capabilities(). Indexed by capability bit
-@@ -164,6 +173,11 @@ struct vbg_session {
- * host filter. Protected by vbg_gdev.session_mutex.
- */
- u32 event_filter;
-+ /**
-+ * Guest capabilities acquired by vbg_acquire_session_capabilities().
-+ * Only one session can acquire a capability at a time.
-+ */
-+ u32 acquired_guest_caps;
- /**
- * Guest capabilities set through vbg_set_session_capabilities().
- * A capability claimed by any guest session will be reported to the
-diff --git a/include/uapi/linux/vboxguest.h b/include/uapi/linux/vboxguest.h
-index f79d7abe27db..15125f6ec60d 100644
---- a/include/uapi/linux/vboxguest.h
-+++ b/include/uapi/linux/vboxguest.h
-@@ -257,6 +257,30 @@ VMMDEV_ASSERT_SIZE(vbg_ioctl_change_filter, 24 + 8);
- _IOWR('V', 12, struct vbg_ioctl_change_filter)
-
-
-+/** VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES data structure. */
-+struct vbg_ioctl_acquire_guest_caps {
-+ /** The header. */
-+ struct vbg_ioctl_hdr hdr;
-+ union {
-+ struct {
-+ /** Flags (VBGL_IOC_AGC_FLAGS_XXX). */
-+ __u32 flags;
-+ /** Capabilities to set (VMMDEV_GUEST_SUPPORTS_XXX). */
-+ __u32 or_mask;
-+ /** Capabilities to drop (VMMDEV_GUEST_SUPPORTS_XXX). */
-+ __u32 not_mask;
-+ } in;
-+ } u;
-+};
-+VMMDEV_ASSERT_SIZE(vbg_ioctl_acquire_guest_caps, 24 + 12);
-+
-+#define VBGL_IOC_AGC_FLAGS_CONFIG_ACQUIRE_MODE 0x00000001
-+#define VBGL_IOC_AGC_FLAGS_VALID_MASK 0x00000001
-+
-+#define VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES \
-+ _IOWR('V', 13, struct vbg_ioctl_acquire_guest_caps)
-+
-+
- /** VBG_IOCTL_CHANGE_GUEST_CAPABILITIES data structure. */
- struct vbg_ioctl_set_guest_caps {
- /** The header. */
---
-2.26.2
-
diff --git a/SOURCES/0001-virt-vbox-Add-vbg_set_host_capabilities-helper-funct.patch b/SOURCES/0001-virt-vbox-Add-vbg_set_host_capabilities-helper-funct.patch
deleted file mode 100644
index 3362ead..0000000
--- a/SOURCES/0001-virt-vbox-Add-vbg_set_host_capabilities-helper-funct.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Tue, 19 May 2020 15:30:29 +0200
-Subject: [PATCH] virt: vbox: Add vbg_set_host_capabilities() helper function
-
-Add vbg_set_host_capabilities() helper function, this is a preparation
-patch for adding support for the VBGL_IOCTL_GUEST_CAPS_ACQUIRE ioctl.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Upstream Status: https://lore.kernel.org/lkml/20200520195440.38759-1-hdegoede@redhat.com/
----
- drivers/virt/vboxguest/vboxguest_core.c | 79 ++++++++++++++-----------
- 1 file changed, 46 insertions(+), 33 deletions(-)
-
-diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c
-index aee5eff229f2..15b3cb618c6e 100644
---- a/drivers/virt/vboxguest/vboxguest_core.c
-+++ b/drivers/virt/vboxguest/vboxguest_core.c
-@@ -661,6 +661,48 @@ static int vbg_reset_host_capabilities(struct vbg_dev *gdev)
- return vbg_status_code_to_errno(rc);
- }
-
-+/**
-+ * Set guest capabilities on the host.
-+ * Must be called with gdev->session_mutex hold.
-+ * Return: 0 or negative errno value.
-+ * @gdev: The Guest extension device.
-+ * @session: The session.
-+ * @session_termination: Set if we're called by the session cleanup code.
-+ */
-+static int vbg_set_host_capabilities(struct vbg_dev *gdev,
-+ struct vbg_session *session,
-+ bool session_termination)
-+{
-+ struct vmmdev_mask *req;
-+ u32 caps;
-+ int rc;
-+
-+ WARN_ON(!mutex_is_locked(&gdev->session_mutex));
-+
-+ caps = gdev->set_guest_caps_tracker.mask;
-+
-+ if (gdev->guest_caps_host == caps)
-+ return 0;
-+
-+ /* On termination the requestor is the kernel, as we're cleaning up. */
-+ req = vbg_req_alloc(sizeof(*req), VMMDEVREQ_SET_GUEST_CAPABILITIES,
-+ session_termination ? VBG_KERNEL_REQUEST :
-+ session->requestor);
-+ if (!req) {
-+ gdev->guest_caps_host = U32_MAX;
-+ return -ENOMEM;
-+ }
-+
-+ req->or_mask = caps;
-+ req->not_mask = ~caps;
-+ rc = vbg_req_perform(gdev, req);
-+ vbg_req_free(req, sizeof(*req));
-+
-+ gdev->guest_caps_host = (rc >= 0) ? caps : U32_MAX;
-+
-+ return vbg_status_code_to_errno(rc);
-+}
-+
- /**
- * Sets the guest capabilities for a session. Takes the session spinlock.
- * Return: 0 or negative errno value.
-@@ -678,23 +720,8 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev,
- u32 or_mask, u32 not_mask,
- bool session_termination)
- {
-- struct vmmdev_mask *req;
- u32 changed, previous;
-- int rc, ret = 0;
--
-- /*
-- * Allocate a request buffer before taking the spinlock, when
-- * the session is being terminated the requestor is the kernel,
-- * as we're cleaning up.
-- */
-- req = vbg_req_alloc(sizeof(*req), VMMDEVREQ_SET_GUEST_CAPABILITIES,
-- session_termination ? VBG_KERNEL_REQUEST :
-- session->requestor);
-- if (!req) {
-- if (!session_termination)
-- return -ENOMEM;
-- /* Ignore allocation failure, we must do session cleanup. */
-- }
-+ int ret = 0;
-
- mutex_lock(&gdev->session_mutex);
-
-@@ -709,23 +736,10 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev,
- goto out;
-
- vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed, previous);
-- or_mask = gdev->set_guest_caps_tracker.mask;
--
-- if (gdev->guest_caps_host == or_mask || !req)
-- goto out;
--
-- gdev->guest_caps_host = or_mask;
-- req->or_mask = or_mask;
-- req->not_mask = ~or_mask;
-- rc = vbg_req_perform(gdev, req);
-- if (rc < 0) {
-- ret = vbg_status_code_to_errno(rc);
--
-- /* Failed, roll back (unless it's session termination time). */
-- gdev->guest_caps_host = U32_MAX;
-- if (session_termination)
-- goto out;
-
-+ ret = vbg_set_host_capabilities(gdev, session, session_termination);
-+ /* Roll back on failure, unless it's session termination time. */
-+ if (ret < 0 && !session_termination) {
- vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed,
- session->set_guest_caps);
- session->set_guest_caps = previous;
-@@ -733,7 +747,6 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev,
-
- out:
- mutex_unlock(&gdev->session_mutex);
-- vbg_req_free(req, sizeof(*req));
-
- return ret;
- }
---
-2.26.2
-
diff --git a/SOURCES/0001-virt-vbox-Fix-VBGL_IOCTL_VMMDEV_REQUEST_BIG-and-_LOG.patch b/SOURCES/0001-virt-vbox-Fix-VBGL_IOCTL_VMMDEV_REQUEST_BIG-and-_LOG.patch
deleted file mode 100644
index daf372e..0000000
--- a/SOURCES/0001-virt-vbox-Fix-VBGL_IOCTL_VMMDEV_REQUEST_BIG-and-_LOG.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Tue, 19 May 2020 12:21:30 +0200
-Subject: [PATCH] virt: vbox: Fix VBGL_IOCTL_VMMDEV_REQUEST_BIG and _LOG req
- numbers to match upstream
-
-Until this commit the mainline kernel version (this version) of the
-vboxguest module contained a bug where it defined
-VBGL_IOCTL_VMMDEV_REQUEST_BIG and VBGL_IOCTL_LOG using
-_IOC(_IOC_READ | _IOC_WRITE, 'V', ...) instead of
-_IO(V, ...) as the out of tree VirtualBox upstream version does.
-
-Since the VirtualBox userspace bits are always built against VirtualBox
-upstream's headers, this means that so far the mainline kernel version
-of the vboxguest module has been failing these 2 ioctls with -ENOTTY.
-I guess that VBGL_IOCTL_VMMDEV_REQUEST_BIG is never used causing us to
-not hit that one and sofar the vboxguest driver has failed to actually
-log any log messages passed it through VBGL_IOCTL_LOG.
-
-This commit changes the VBGL_IOCTL_VMMDEV_REQUEST_BIG and VBGL_IOCTL_LOG
-defines to match the out of tree VirtualBox upstream vboxguest version,
-while keeping compatibility with the old wrong request defines so as
-to not break the kernel ABI in case someone has been using the old
-request defines.
-
-Fixes: f6ddd094f579 ("virt: Add vboxguest driver for Virtual Box Guest integration UAPI")
-Cc: stable@vger.kernel.org
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Upstream Status: https://lore.kernel.org/lkml/20200520195440.38759-1-hdegoede@redhat.com/
----
- drivers/virt/vboxguest/vboxguest_core.c | 4 +++-
- drivers/virt/vboxguest/vboxguest_core.h | 15 +++++++++++++++
- drivers/virt/vboxguest/vboxguest_linux.c | 3 ++-
- include/uapi/linux/vboxguest.h | 4 ++--
- 4 files changed, 22 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c
-index b690a8a4bf9e..8fab04e76c14 100644
---- a/drivers/virt/vboxguest/vboxguest_core.c
-+++ b/drivers/virt/vboxguest/vboxguest_core.c
-@@ -1520,7 +1520,8 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data)
-
- /* For VMMDEV_REQUEST hdr->type != VBG_IOCTL_HDR_TYPE_DEFAULT */
- if (req_no_size == VBG_IOCTL_VMMDEV_REQUEST(0) ||
-- req == VBG_IOCTL_VMMDEV_REQUEST_BIG)
-+ req == VBG_IOCTL_VMMDEV_REQUEST_BIG ||
-+ req == VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT)
- return vbg_ioctl_vmmrequest(gdev, session, data);
-
- if (hdr->type != VBG_IOCTL_HDR_TYPE_DEFAULT)
-@@ -1558,6 +1559,7 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data)
- case VBG_IOCTL_HGCM_CALL(0):
- return vbg_ioctl_hgcm_call(gdev, session, f32bit, data);
- case VBG_IOCTL_LOG(0):
-+ case VBG_IOCTL_LOG_ALT(0):
- return vbg_ioctl_log(data);
- }
-
-diff --git a/drivers/virt/vboxguest/vboxguest_core.h b/drivers/virt/vboxguest/vboxguest_core.h
-index 4188c12b839f..77c3a9c8255d 100644
---- a/drivers/virt/vboxguest/vboxguest_core.h
-+++ b/drivers/virt/vboxguest/vboxguest_core.h
-@@ -15,6 +15,21 @@
- #include <linux/vboxguest.h>
- #include "vmmdev.h"
-
-+/*
-+ * The mainline kernel version (this version) of the vboxguest module
-+ * contained a bug where it defined VBGL_IOCTL_VMMDEV_REQUEST_BIG and
-+ * VBGL_IOCTL_LOG using _IOC(_IOC_READ | _IOC_WRITE, 'V', ...) instead
-+ * of _IO(V, ...) as the out of tree VirtualBox upstream version does.
-+ *
-+ * These _ALT definitions keep compatibility with the wrong defines the
-+ * mainline kernel version used for a while.
-+ * Note the VirtualBox userspace bits have always been built against
-+ * VirtualBox upstream's headers, so this is likely not necessary. But
-+ * we must never break our ABI so we keep these around to be 100% sure.
-+ */
-+#define VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT _IOC(_IOC_READ | _IOC_WRITE, 'V', 3, 0)
-+#define VBG_IOCTL_LOG_ALT(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 9, s)
-+
- struct vbg_session;
-
- /** VBox guest memory balloon. */
-diff --git a/drivers/virt/vboxguest/vboxguest_linux.c b/drivers/virt/vboxguest/vboxguest_linux.c
-index 6e8c0f1c1056..32c2c52f7e84 100644
---- a/drivers/virt/vboxguest/vboxguest_linux.c
-+++ b/drivers/virt/vboxguest/vboxguest_linux.c
-@@ -131,7 +131,8 @@ static long vbg_misc_device_ioctl(struct file *filp, unsigned int req,
- * the need for a bounce-buffer and another copy later on.
- */
- is_vmmdev_req = (req & ~IOCSIZE_MASK) == VBG_IOCTL_VMMDEV_REQUEST(0) ||
-- req == VBG_IOCTL_VMMDEV_REQUEST_BIG;
-+ req == VBG_IOCTL_VMMDEV_REQUEST_BIG ||
-+ req == VBG_IOCTL_VMMDEV_REQUEST_BIG_ALT;
-
- if (is_vmmdev_req)
- buf = vbg_req_alloc(size, VBG_IOCTL_HDR_TYPE_DEFAULT,
-diff --git a/include/uapi/linux/vboxguest.h b/include/uapi/linux/vboxguest.h
-index 9cec58a6a5ea..f79d7abe27db 100644
---- a/include/uapi/linux/vboxguest.h
-+++ b/include/uapi/linux/vboxguest.h
-@@ -103,7 +103,7 @@ VMMDEV_ASSERT_SIZE(vbg_ioctl_driver_version_info, 24 + 20);
-
-
- /* IOCTL to perform a VMM Device request larger then 1KB. */
--#define VBG_IOCTL_VMMDEV_REQUEST_BIG _IOC(_IOC_READ | _IOC_WRITE, 'V', 3, 0)
-+#define VBG_IOCTL_VMMDEV_REQUEST_BIG _IO('V', 3)
-
-
- /** VBG_IOCTL_HGCM_CONNECT data structure. */
-@@ -198,7 +198,7 @@ struct vbg_ioctl_log {
- } u;
- };
-
--#define VBG_IOCTL_LOG(s) _IOC(_IOC_READ | _IOC_WRITE, 'V', 9, s)
-+#define VBG_IOCTL_LOG(s) _IO('V', 9)
-
-
- /** VBG_IOCTL_WAIT_FOR_EVENTS data structure. */
---
-2.26.2
-
diff --git a/SOURCES/0001-virt-vbox-Fix-guest-capabilities-mask-check.patch b/SOURCES/0001-virt-vbox-Fix-guest-capabilities-mask-check.patch
deleted file mode 100644
index 77dbde8..0000000
--- a/SOURCES/0001-virt-vbox-Fix-guest-capabilities-mask-check.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Tue, 19 May 2020 13:23:06 +0200
-Subject: [PATCH] virt: vbox: Fix guest capabilities mask check
-
-Check the passed in capabilities against VMMDEV_GUEST_CAPABILITIES_MASK
-instead of against VMMDEV_EVENT_VALID_EVENT_MASK.
-This tightens the allowed mask from 0x7ff to 0x7.
-
-Fixes: 0ba002bc4393 ("virt: Add vboxguest driver for Virtual Box Guest integration")
-Cc: stable@vger.kernel.org
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Upstream Status: https://lore.kernel.org/lkml/20200520195440.38759-1-hdegoede@redhat.com/
----
- drivers/virt/vboxguest/vboxguest_core.c | 2 +-
- drivers/virt/vboxguest/vmmdev.h | 2 ++
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c
-index 8fab04e76c14..18ebd7a6af98 100644
---- a/drivers/virt/vboxguest/vboxguest_core.c
-+++ b/drivers/virt/vboxguest/vboxguest_core.c
-@@ -1444,7 +1444,7 @@ static int vbg_ioctl_change_guest_capabilities(struct vbg_dev *gdev,
- or_mask = caps->u.in.or_mask;
- not_mask = caps->u.in.not_mask;
-
-- if ((or_mask | not_mask) & ~VMMDEV_EVENT_VALID_EVENT_MASK)
-+ if ((or_mask | not_mask) & ~VMMDEV_GUEST_CAPABILITIES_MASK)
- return -EINVAL;
-
- ret = vbg_set_session_capabilities(gdev, session, or_mask, not_mask,
-diff --git a/drivers/virt/vboxguest/vmmdev.h b/drivers/virt/vboxguest/vmmdev.h
-index 6337b8d75d96..21f408120e3f 100644
---- a/drivers/virt/vboxguest/vmmdev.h
-+++ b/drivers/virt/vboxguest/vmmdev.h
-@@ -206,6 +206,8 @@ VMMDEV_ASSERT_SIZE(vmmdev_mask, 24 + 8);
- * not.
- */
- #define VMMDEV_GUEST_SUPPORTS_GRAPHICS BIT(2)
-+/* The mask of valid capabilities, for sanity checking. */
-+#define VMMDEV_GUEST_CAPABILITIES_MASK 0x00000007U
-
- /** struct vmmdev_hypervisorinfo - Hypervisor info structure. */
- struct vmmdev_hypervisorinfo {
---
-2.26.2
-
diff --git a/SOURCES/0001-virt-vbox-Log-unknown-ioctl-requests-as-error.patch b/SOURCES/0001-virt-vbox-Log-unknown-ioctl-requests-as-error.patch
deleted file mode 100644
index b9a90c4..0000000
--- a/SOURCES/0001-virt-vbox-Log-unknown-ioctl-requests-as-error.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Tue, 19 May 2020 11:24:43 +0200
-Subject: [PATCH] virt: vbox: Log unknown ioctl requests as error
-
-Every now and then upstream adds new ioctls without notifying us,
-log unknown ioctl requests as an error to catch these.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Upstream Status: https://lore.kernel.org/lkml/20200520195440.38759-1-hdegoede@redhat.com/
----
- drivers/virt/vboxguest/vboxguest_core.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c
-index ffd76b949276..e0e343d0ba93 100644
---- a/drivers/virt/vboxguest/vboxguest_core.c
-+++ b/drivers/virt/vboxguest/vboxguest_core.c
-@@ -1739,7 +1739,7 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data)
- return vbg_ioctl_log(data);
- }
-
-- vbg_debug("VGDrvCommonIoCtl: Unknown req %#08x\n", req);
-+ vbg_err("Userspace made an unknown ioctl req %#08x\n", req);
- return -ENOTTY;
- }
-
---
-2.26.2
-
diff --git a/SOURCES/0001-virt-vbox-Rename-guest_caps-struct-members-to-set_gu.patch b/SOURCES/0001-virt-vbox-Rename-guest_caps-struct-members-to-set_gu.patch
deleted file mode 100644
index e92eac0..0000000
--- a/SOURCES/0001-virt-vbox-Rename-guest_caps-struct-members-to-set_gu.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Tue, 19 May 2020 14:33:13 +0200
-Subject: [PATCH] virt: vbox: Rename guest_caps struct members to
- set_guest_caps
-
-Rename guest_caps[_tracker] struct members to set_guest_caps[_tracker]
-this is a preparation patch for adding support for the
-VBGL_IOCTL_GUEST_CAPS_ACQUIRE ioctl.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Upstream Status: https://lore.kernel.org/lkml/20200520195440.38759-1-hdegoede@redhat.com/
----
- drivers/virt/vboxguest/vboxguest_core.c | 20 ++++++++++----------
- drivers/virt/vboxguest/vboxguest_core.h | 9 +++++----
- 2 files changed, 15 insertions(+), 14 deletions(-)
-
-diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c
-index 18ebd7a6af98..aee5eff229f2 100644
---- a/drivers/virt/vboxguest/vboxguest_core.c
-+++ b/drivers/virt/vboxguest/vboxguest_core.c
-@@ -699,17 +699,17 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev,
- mutex_lock(&gdev->session_mutex);
-
- /* Apply the changes to the session mask. */
-- previous = session->guest_caps;
-- session->guest_caps |= or_mask;
-- session->guest_caps &= ~not_mask;
-+ previous = session->set_guest_caps;
-+ session->set_guest_caps |= or_mask;
-+ session->set_guest_caps &= ~not_mask;
-
- /* If anything actually changed, update the global usage counters. */
-- changed = previous ^ session->guest_caps;
-+ changed = previous ^ session->set_guest_caps;
- if (!changed)
- goto out;
-
-- vbg_track_bit_usage(&gdev->guest_caps_tracker, changed, previous);
-- or_mask = gdev->guest_caps_tracker.mask;
-+ vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed, previous);
-+ or_mask = gdev->set_guest_caps_tracker.mask;
-
- if (gdev->guest_caps_host == or_mask || !req)
- goto out;
-@@ -726,9 +726,9 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev,
- if (session_termination)
- goto out;
-
-- vbg_track_bit_usage(&gdev->guest_caps_tracker, changed,
-- session->guest_caps);
-- session->guest_caps = previous;
-+ vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed,
-+ session->set_guest_caps);
-+ session->set_guest_caps = previous;
- }
-
- out:
-@@ -1452,7 +1452,7 @@ static int vbg_ioctl_change_guest_capabilities(struct vbg_dev *gdev,
- if (ret)
- return ret;
-
-- caps->u.out.session_caps = session->guest_caps;
-+ caps->u.out.session_caps = session->set_guest_caps;
- caps->u.out.global_caps = gdev->guest_caps_host;
-
- return 0;
-diff --git a/drivers/virt/vboxguest/vboxguest_core.h b/drivers/virt/vboxguest/vboxguest_core.h
-index 77c3a9c8255d..dc745a033164 100644
---- a/drivers/virt/vboxguest/vboxguest_core.h
-+++ b/drivers/virt/vboxguest/vboxguest_core.h
-@@ -118,11 +118,12 @@ struct vbg_dev {
- u32 event_filter_host;
-
- /**
-- * Usage counters for guest capabilities. Indexed by capability bit
-+ * Usage counters for guest capabilities requested through
-+ * vbg_set_session_capabilities(). Indexed by capability bit
- * number, one count per session using a capability.
- * Protected by session_mutex.
- */
-- struct vbg_bit_usage_tracker guest_caps_tracker;
-+ struct vbg_bit_usage_tracker set_guest_caps_tracker;
- /**
- * The guest capabilities last reported to the host (or UINT32_MAX).
- * Protected by session_mutex.
-@@ -164,11 +165,11 @@ struct vbg_session {
- */
- u32 event_filter;
- /**
-- * Guest capabilities for this session.
-+ * Guest capabilities set through vbg_set_session_capabilities().
- * A capability claimed by any guest session will be reported to the
- * host. Protected by vbg_gdev.session_mutex.
- */
-- u32 guest_caps;
-+ u32 set_guest_caps;
- /** VMMDEV_REQUESTOR_* flags */
- u32 requestor;
- /** Set on CANCEL_ALL_WAITEVENTS, protected by vbg_devevent_spinlock. */
---
-2.26.2
-
diff --git a/SOURCES/0001-xen-events-avoid-removing-an-event-channel-while-han.patch b/SOURCES/0001-xen-events-avoid-removing-an-event-channel-while-han.patch
deleted file mode 100644
index cd4ac3d..0000000
--- a/SOURCES/0001-xen-events-avoid-removing-an-event-channel-while-han.patch
+++ /dev/null
@@ -1,161 +0,0 @@
-From 073d0552ead5bfc7a3a9c01de590e924f11b5dd2 Mon Sep 17 00:00:00 2001
-From: Juergen Gross <jgross@suse.com>
-Date: Mon, 7 Sep 2020 15:47:27 +0200
-Subject: [PATCH] xen/events: avoid removing an event channel while handling it
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Today it can happen that an event channel is being removed from the
-system while the event handling loop is active. This can lead to a
-race resulting in crashes or WARN() splats when trying to access the
-irq_info structure related to the event channel.
-
-Fix this problem by using a rwlock taken as reader in the event
-handling loop and as writer when deallocating the irq_info structure.
-
-As the observed problem was a NULL dereference in evtchn_from_irq()
-make this function more robust against races by testing the irq_info
-pointer to be not NULL before dereferencing it.
-
-And finally make all accesses to evtchn_to_irq[row][col] atomic ones
-in order to avoid seeing partial updates of an array element in irq
-handling. Note that irq handling can be entered only for event channels
-which have been valid before, so any not populated row isn't a problem
-in this regard, as rows are only ever added and never removed.
-
-This is XSA-331.
-
-Cc: stable@vger.kernel.org
-Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
-Reported-by: Jinoh Kang <luke1337@theori.io>
-Signed-off-by: Juergen Gross <jgross@suse.com>
-Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
-Reviewed-by: Wei Liu <wl@xen.org>
----
- drivers/xen/events/events_base.c | 41 ++++++++++++++++++++++++++++----
- 1 file changed, 36 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
-index 6f02c18fa65c..407741ece084 100644
---- a/drivers/xen/events/events_base.c
-+++ b/drivers/xen/events/events_base.c
-@@ -33,6 +33,7 @@
- #include <linux/slab.h>
- #include <linux/irqnr.h>
- #include <linux/pci.h>
-+#include <linux/spinlock.h>
-
- #ifdef CONFIG_X86
- #include <asm/desc.h>
-@@ -71,6 +72,23 @@ const struct evtchn_ops *evtchn_ops;
- */
- static DEFINE_MUTEX(irq_mapping_update_lock);
-
-+/*
-+ * Lock protecting event handling loop against removing event channels.
-+ * Adding of event channels is no issue as the associated IRQ becomes active
-+ * only after everything is setup (before request_[threaded_]irq() the handler
-+ * can't be entered for an event, as the event channel will be unmasked only
-+ * then).
-+ */
-+static DEFINE_RWLOCK(evtchn_rwlock);
-+
-+/*
-+ * Lock hierarchy:
-+ *
-+ * irq_mapping_update_lock
-+ * evtchn_rwlock
-+ * IRQ-desc lock
-+ */
-+
- static LIST_HEAD(xen_irq_list_head);
-
- /* IRQ <-> VIRQ mapping. */
-@@ -105,7 +123,7 @@ static void clear_evtchn_to_irq_row(unsigned row)
- unsigned col;
-
- for (col = 0; col < EVTCHN_PER_ROW; col++)
-- evtchn_to_irq[row][col] = -1;
-+ WRITE_ONCE(evtchn_to_irq[row][col], -1);
- }
-
- static void clear_evtchn_to_irq_all(void)
-@@ -142,7 +160,7 @@ static int set_evtchn_to_irq(evtchn_port_t evtchn, unsigned int irq)
- clear_evtchn_to_irq_row(row);
- }
-
-- evtchn_to_irq[row][col] = irq;
-+ WRITE_ONCE(evtchn_to_irq[row][col], irq);
- return 0;
- }
-
-@@ -152,7 +170,7 @@ int get_evtchn_to_irq(evtchn_port_t evtchn)
- return -1;
- if (evtchn_to_irq[EVTCHN_ROW(evtchn)] == NULL)
- return -1;
-- return evtchn_to_irq[EVTCHN_ROW(evtchn)][EVTCHN_COL(evtchn)];
-+ return READ_ONCE(evtchn_to_irq[EVTCHN_ROW(evtchn)][EVTCHN_COL(evtchn)]);
- }
-
- /* Get info for IRQ */
-@@ -261,10 +279,14 @@ static void xen_irq_info_cleanup(struct irq_info *info)
- */
- evtchn_port_t evtchn_from_irq(unsigned irq)
- {
-- if (WARN(irq >= nr_irqs, "Invalid irq %d!\n", irq))
-+ const struct irq_info *info = NULL;
-+
-+ if (likely(irq < nr_irqs))
-+ info = info_for_irq(irq);
-+ if (!info)
- return 0;
-
-- return info_for_irq(irq)->evtchn;
-+ return info->evtchn;
- }
-
- unsigned int irq_from_evtchn(evtchn_port_t evtchn)
-@@ -440,16 +462,21 @@ static int __must_check xen_allocate_irq_gsi(unsigned gsi)
- static void xen_free_irq(unsigned irq)
- {
- struct irq_info *info = info_for_irq(irq);
-+ unsigned long flags;
-
- if (WARN_ON(!info))
- return;
-
-+ write_lock_irqsave(&evtchn_rwlock, flags);
-+
- list_del(&info->list);
-
- set_info_for_irq(irq, NULL);
-
- WARN_ON(info->refcnt > 0);
-
-+ write_unlock_irqrestore(&evtchn_rwlock, flags);
-+
- kfree(info);
-
- /* Legacy IRQ descriptors are managed by the arch. */
-@@ -1233,6 +1260,8 @@ static void __xen_evtchn_do_upcall(void)
- struct vcpu_info *vcpu_info = __this_cpu_read(xen_vcpu);
- int cpu = smp_processor_id();
-
-+ read_lock(&evtchn_rwlock);
-+
- do {
- vcpu_info->evtchn_upcall_pending = 0;
-
-@@ -1243,6 +1272,8 @@ static void __xen_evtchn_do_upcall(void)
- virt_rmb(); /* Hypervisor can set upcall pending. */
-
- } while (vcpu_info->evtchn_upcall_pending);
-+
-+ read_unlock(&evtchn_rwlock);
- }
-
- void xen_evtchn_do_upcall(struct pt_regs *regs)
---
-2.28.0
-
diff --git a/SOURCES/0001-xfs-fix-boundary-test-in-xfs_attr_shortform_verify.patch b/SOURCES/0001-xfs-fix-boundary-test-in-xfs_attr_shortform_verify.patch
deleted file mode 100644
index 771f439..0000000
--- a/SOURCES/0001-xfs-fix-boundary-test-in-xfs_attr_shortform_verify.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-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/SOURCES/0002-arm64-tegra-Re-order-PCIe-aperture-mappings-to-suppo.patch b/SOURCES/0002-arm64-tegra-Re-order-PCIe-aperture-mappings-to-suppo.patch
deleted file mode 100644
index 9646334..0000000
--- a/SOURCES/0002-arm64-tegra-Re-order-PCIe-aperture-mappings-to-suppo.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-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/SOURCES/0002-dt-bindings-panel-Convert-rocktech-jh057n00900-to-ya.patch b/SOURCES/0002-dt-bindings-panel-Convert-rocktech-jh057n00900-to-ya.patch
deleted file mode 100644
index 0d05e02..0000000
--- a/SOURCES/0002-dt-bindings-panel-Convert-rocktech-jh057n00900-to-ya.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-From 789d3f52a1cf675ba68c3578fe2b259bc44caba2 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
-
-Convert Rocktech MIPI DSI panel driver from txt to yaml bindings.
-
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- .../display/panel/rocktech,jh057n00900.txt | 23 -------
- .../display/panel/rocktech,jh057n00900.yaml | 66 +++++++++++++++++++
- 2 files changed, 66 insertions(+), 23 deletions(-)
- delete mode 100644 Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.txt
- create mode 100644 Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml
-
-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
---- a/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.txt
-+++ /dev/null
-@@ -1,23 +0,0 @@
--Rocktech jh057n00900 5.5" 720x1440 TFT LCD panel
--
--Required properties:
--- compatible: should be "rocktech,jh057n00900"
--- reg: DSI virtual channel of the peripheral
--- reset-gpios: panel reset gpio
--- backlight: phandle of the backlight device attached to the panel
--- vcc-supply: phandle of the regulator that provides the vcc supply voltage.
--- iovcc-supply: phandle of the regulator that provides the iovcc supply
-- voltage.
--
--Example:
--
-- &mipi_dsi {
-- panel@0 {
-- compatible = "rocktech,jh057n00900";
-- reg = <0>;
-- backlight = <&backlight>;
-- reset-gpios = <&gpio3 13 GPIO_ACTIVE_LOW>;
-- vcc-supply = <&reg_2v8_p>;
-- iovcc-supply = <&reg_1v8_p>;
-- };
-- };
-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
---- /dev/null
-+++ b/Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.yaml
-@@ -0,0 +1,66 @@
-+# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
-+%YAML 1.2
-+---
-+$id: http://devicetree.org/schemas/display/panel/rocktech,jh057n00900.yaml#
-+$schema: http://devicetree.org/meta-schemas/core.yaml#
-+
-+title: Rocktech JH057N00900 5.5" 720x1440 TFT LCD panel
-+
-+maintainers:
-+ - Ondrej Jirman <megi@xff.cz>
-+
-+description: |
-+ Rocktech JH057N00900 is a 720x1440 TFT LCD panel
-+ connected using a MIPI-DSI video interface.
-+
-+allOf:
-+ - $ref: panel-common.yaml#
-+
-+properties:
-+ compatible:
-+ const: rocktech,jh057n00900
-+
-+ reg:
-+ maxItems: 1
-+ description: DSI virtual channel
-+
-+ vcc-supply:
-+ description: Panel power supply
-+
-+ vccio-supply:
-+ description: I/O voltage supply
-+
-+ reset-gpios:
-+ description: GPIO used for the reset pin
-+ maxItems: 1
-+
-+ backlight:
-+ description: Backlight used by the panel
-+ $ref: "/schemas/types.yaml#/definitions/phandle"
-+
-+required:
-+ - compatible
-+ - reg
-+ - vcc-supply
-+ - vccio-supply
-+ - reset-gpios
-+
-+additionalProperties: false
-+
-+examples:
-+ - |
-+ #include <dt-bindings/gpio/gpio.h>
-+
-+ dsi {
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+ panel@0 {
-+ compatible = "rocktech,jh057n00900";
-+ reg = <0>;
-+ vcc-supply = <&reg_2v8_p>;
-+ iovcc-supply = <&reg_1v8_p>;
-+ reset-gpios = <&gpio3 13 GPIO_ACTIVE_LOW>;
-+ backlight = <&backlight>;
-+ };
-+ };
-+...
---
-2.26.2
-
diff --git a/SOURCES/0003-dt-bindings-panel-Add-compatible-for-Xingbangda-XBD5.patch b/SOURCES/0003-dt-bindings-panel-Add-compatible-for-Xingbangda-XBD5.patch
deleted file mode 100644
index a7099de..0000000
--- a/SOURCES/0003-dt-bindings-panel-Add-compatible-for-Xingbangda-XBD5.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 12146093602e0dedb7ee431224fc4a58d40697f8 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
-
-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
-used in PinePhone.
-
-Add a compatible for it.
-
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- .../bindings/display/panel/rocktech,jh057n00900.yaml | 6 +++++-
- 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
---- 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
-+ enum:
-+ # Rocktech JH057N00900 5.5" 720x1440 TFT LCD panel
-+ - rocktech,jh057n00900
-+ # Xingbangda XBD599 5.99" 720x1440 TFT LCD panel
-+ - xingbangda,xbd599
-
- reg:
- maxItems: 1
---
-2.26.2
-
diff --git a/SOURCES/0004-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch b/SOURCES/0004-drm-panel-rocktech-jh057n00900-Rename-the-driver-to-.patch
deleted file mode 100644
index c4c9476..0000000
--- a/SOURCES/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/SOURCES/0005-drm-panel-st7703-Rename-functions-from-jh057n-prefix.patch b/SOURCES/0005-drm-panel-st7703-Rename-functions-from-jh057n-prefix.patch
deleted file mode 100644
index 5432e1b..0000000
--- a/SOURCES/0005-drm-panel-st7703-Rename-functions-from-jh057n-prefix.patch
+++ /dev/null
@@ -1,265 +0,0 @@
-From 6fad8493b27ade51f37d88acc7ce6fd7dbc9da69 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
-
-This is done so that code that's not specific to a particular
-jh057n panel is named after the controller. Functions specific
-to the panel are kept named after the panel.
-
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- drivers/gpu/drm/panel/panel-sitronix-st7703.c | 90 ++++++++++---------
- 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
---- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c
-+++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
-@@ -1,6 +1,8 @@
- // SPDX-License-Identifier: GPL-2.0
- /*
-- * Rockteck jh057n00900 5.5" MIPI-DSI panel driver
-+ * Driver for panels based on Sitronix ST7703 controller, souch as:
-+ *
-+ * - Rocktech jh057n00900 5.5" MIPI-DSI panel
- *
- * Copyright (C) Purism SPC 2019
- */
-@@ -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;
- struct drm_panel panel;
- struct gpio_desc *reset_gpio;
-@@ -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)
- {
- struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
- struct device *dev = ctx->dev;
-@@ -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)
- {
-- 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,
-- .prepare = jh057n_prepare,
-- .enable = jh057n_enable,
-- .get_modes = jh057n_get_modes,
-+static const struct drm_panel_funcs st7703_drm_funcs = {
-+ .disable = st7703_disable,
-+ .unprepare = st7703_unprepare,
-+ .prepare = st7703_prepare,
-+ .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)
- {
- struct device *dev = &dsi->dev;
-- 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" },
- { /* sentinel */ }
- };
--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,
-- .shutdown = jh057n_shutdown,
-+static struct mipi_dsi_driver st7703_driver = {
-+ .probe = st7703_probe,
-+ .remove = st7703_remove,
-+ .shutdown = st7703_shutdown,
- .driver = {
- .name = DRV_NAME,
-- .of_match_table = jh057n_of_match,
-+ .of_match_table = st7703_of_match,
- },
- };
--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");
- MODULE_LICENSE("GPL v2");
---
-2.26.2
-
diff --git a/SOURCES/0006-drm-panel-st7703-Prepare-for-supporting-multiple-pan.patch b/SOURCES/0006-drm-panel-st7703-Prepare-for-supporting-multiple-pan.patch
deleted file mode 100644
index 8436ea3..0000000
--- a/SOURCES/0006-drm-panel-st7703-Prepare-for-supporting-multiple-pan.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From 19802e031428f7cf967259fdf8794a971164a44a 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
-
-Parametrize the driver so that it can support more panels based
-on st7703 controller.
-
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- drivers/gpu/drm/panel/panel-sitronix-st7703.c | 43 +++++++++++++------
- 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
---- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c
-+++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
-@@ -13,6 +13,7 @@
- #include <linux/media-bus-format.h>
- #include <linux/mod_devicetable.h>
- #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;
-+};
-+
-+struct st7703_panel_desc {
-+ const struct drm_display_mode *mode;
-+ unsigned int lanes;
-+ unsigned long mode_flags;
-+ 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) {
- DRM_DEV_ERROR(ctx->dev, "Panel init sequence failed: %d\n",
- ret);
-@@ -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,
- .hsync_start = 720 + 90,
- .hsync_end = 720 + 90 + 20,
-@@ -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,
-+ .mode_flags = MIPI_DSI_MODE_VIDEO |
-+ MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_VIDEO_SYNC_PULSE,
-+ .format = MIPI_DSI_FMT_RGB888,
-+ .init_sequence = jh057n_init_sequence,
-+};
-+
- static int st7703_get_modes(struct drm_panel *panel,
- struct drm_connector *connector)
- {
- 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) {
- DRM_DEV_ERROR(ctx->dev, "Failed to add mode %ux%u@%u\n",
-- default_mode.hdisplay, default_mode.vdisplay,
-- default_mode.vrefresh);
-+ ctx->desc->mode->hdisplay, ctx->desc->mode->vdisplay,
-+ 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 |
-- MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_VIDEO_SYNC_PULSE;
-+ 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 },
- { /* sentinel */ }
- };
- MODULE_DEVICE_TABLE(of, st7703_of_match);
---
-2.26.2
-
diff --git a/SOURCES/0007-drm-panel-st7703-Move-code-specific-to-jh057n-closer.patch b/SOURCES/0007-drm-panel-st7703-Move-code-specific-to-jh057n-closer.patch
deleted file mode 100644
index fcdf048..0000000
--- a/SOURCES/0007-drm-panel-st7703-Move-code-specific-to-jh057n-closer.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From b93e129534a0556a03a343f95e622ae9c3893854 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
- together
-
-It's better than having it spread around the driver.
-
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- drivers/gpu/drm/panel/panel-sitronix-st7703.c | 50 +++++++++----------
- 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
---- 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,
-+ .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,
-+};
-+
-+struct st7703_panel_desc jh057n00900_panel_desc = {
-+ .mode = &jh057n00900_mode,
-+ .lanes = 4,
-+ .mode_flags = MIPI_DSI_MODE_VIDEO |
-+ MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_VIDEO_SYNC_PULSE,
-+ .format = MIPI_DSI_FMT_RGB888,
-+ .init_sequence = jh057n_init_sequence,
-+};
-+
- static int st7703_enable(struct drm_panel *panel)
- {
- struct st7703 *ctx = panel_to_st7703(panel);
-@@ -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,
-- .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,
--};
--
--struct st7703_panel_desc jh057n00900_panel_desc = {
-- .mode = &jh057n00900_mode,
-- .lanes = 4,
-- .mode_flags = MIPI_DSI_MODE_VIDEO |
-- MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_VIDEO_SYNC_PULSE,
-- .format = MIPI_DSI_FMT_RGB888,
-- .init_sequence = jh057n_init_sequence,
--};
--
- static int st7703_get_modes(struct drm_panel *panel,
- struct drm_connector *connector)
- {
---
-2.26.2
-
diff --git a/SOURCES/0008-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch b/SOURCES/0008-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch
deleted file mode 100644
index bae4424..0000000
--- a/SOURCES/0008-drm-panel-st7703-Move-generic-part-of-init-sequence-.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 5e9a6f49f8056963a4b8d2408f0c0f211cdab799 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
-
-Calling sleep out and display on is a controller specific part
-of the initialization process. Move it out of the panel specific
-initialization function to the enable callback.
-
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- drivers/gpu/drm/panel/panel-sitronix-st7703.c | 33 ++++++++++---------
- 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
---- 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)
- static int jh057n_init_sequence(struct st7703 *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
-@@ -136,20 +134,7 @@ static int jh057n_init_sequence(struct st7703 *ctx)
- 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;
- }
-
-@@ -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);
-+ if (ret < 0) {
-+ DRM_DEV_ERROR(ctx->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(ctx->dev, "Panel init sequence done\n");
-+
- return 0;
- }
-
---
-2.26.2
-
diff --git a/SOURCES/0009-drm-panel-st7703-Add-support-for-Xingbangda-XBD599.patch b/SOURCES/0009-drm-panel-st7703-Add-support-for-Xingbangda-XBD599.patch
deleted file mode 100644
index 5ac4e6e..0000000
--- a/SOURCES/0009-drm-panel-st7703-Add-support-for-Xingbangda-XBD599.patch
+++ /dev/null
@@ -1,251 +0,0 @@
-From d2fb5b980f071d542ca912dac5a0e27c49de7e2d 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
-
-Xingbangda XBD599 is a 5.99" 720x1440 MIPI-DSI LCD panel used in
-PinePhone. Add support for it.
-
-Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- drivers/gpu/drm/panel/panel-sitronix-st7703.c | 199 +++++++++++++++++-
- 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
---- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c
-+++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c
-@@ -39,10 +39,11 @@
- #define ST7703_CMD_SETEXTC 0xB9
- #define ST7703_CMD_SETMIPI 0xBA
- #define ST7703_CMD_SETVDC 0xBC
--#define ST7703_CMD_UNKNOWN0 0xBF
-+#define ST7703_CMD_UNKNOWN_BF 0xBF
- #define ST7703_CMD_SETSCR 0xC0
- #define ST7703_CMD_SETPOWER 0xC1
- #define ST7703_CMD_SETPANEL 0xCC
-+#define ST7703_CMD_UNKNOWN_C6 0xC6
- #define ST7703_CMD_SETGAMMA 0xE0
- #define ST7703_CMD_SETEQ 0xE3
- #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);
- dsi_generic_write_seq(dsi, ST7703_CMD_SETGIP1,
- 0x82, 0x10, 0x06, 0x05, 0x9E, 0x0A, 0xA5, 0x12,
- 0x31, 0x23, 0x37, 0x83, 0x04, 0xBC, 0x27, 0x38,
-@@ -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; \
-+ ret = mipi_dsi_dcs_write(dsi, cmd, d, ARRAY_SIZE(d)); \
-+ if (ret < 0) \
-+ return ret; \
-+ } while (0)
-+
-+
-+static int xbd599_init_sequence(struct st7703 *ctx)
-+{
-+ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
-+
-+ /*
-+ * Init sequence was supplied by the panel vendor.
-+ */
-+
-+ /* Magic sequence to unlock user commands below. */
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETEXTC, 0xF1, 0x12, 0x83);
-+
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETMIPI,
-+ 0x33, /* VC_main = 0, Lane_Number = 3 (4 lanes) */
-+ 0x81, /* DSI_LDO_SEL = 1.7V, RTERM = 90 Ohm */
-+ 0x05, /* IHSRX = x6 (Low High Speed driving ability) */
-+ 0xF9, /* TX_CLK_SEL = fDSICLK/16 */
-+ 0x0E, /* HFP_OSC (min. HFP number in DSI mode) */
-+ 0x0E, /* HBP_OSC (min. HBP number in DSI mode) */
-+ /* The rest is undocumented in ST7703 datasheet */
-+ 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, /* PCCS = 2, ECP_DC_DIV = 1/4 HSYNC */
-+ 0x22, /* DT = 15ms XDK_ECP = x2 */
-+ 0x20, /* PFM_DC_DIV = /1 */
-+ 0x03 /* ECP_SYNC_EN = 1, VGX_SYNC_EN = 1 */);
-+
-+ /* RGB I/F porch timing */
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETRGBIF,
-+ 0x10, /* VBP_RGB_GEN */
-+ 0x10, /* VFP_RGB_GEN */
-+ 0x05, /* DE_BP_RGB_GEN */
-+ 0x05, /* DE_FP_RGB_GEN */
-+ /* The rest is undocumented in ST7703 datasheet */
-+ 0x03, 0xFF,
-+ 0x00, 0x00,
-+ 0x00, 0x00);
-+
-+ /* Source driving settings. */
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETSCR,
-+ 0x73, /* N_POPON */
-+ 0x73, /* N_NOPON */
-+ 0x50, /* I_POPON */
-+ 0x50, /* I_NOPON */
-+ 0x00, /* SCR[31,24] */
-+ 0xC0, /* SCR[23,16] */
-+ 0x08, /* SCR[15,8] */
-+ 0x70, /* SCR[7,0] */
-+ 0x00 /* Undocumented */);
-+
-+ /* NVDDD_SEL = -1.8V, VDDD_SEL = out of range (possibly 1.9V?) */
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETVDC, 0x4E);
-+
-+ /*
-+ * SS_PANEL = 1 (reverse scan), GS_PANEL = 0 (normal scan)
-+ * REV_PANEL = 1 (normally black panel), BGR_PANEL = 1 (BGR)
-+ */
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETPANEL, 0x0B);
-+
-+ /* Zig-Zag Type C column inversion. */
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETCYC, 0x80);
-+
-+ /* Set display resolution. */
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETDISP,
-+ 0xF0, /* NL = 240 */
-+ 0x12, /* RES_V_LSB = 0, BLK_CON = VSSD,
-+ * RESO_SEL = 720RGB
-+ */
-+ 0xF0 /* WHITE_GND_EN = 1 (GND),
-+ * WHITE_FRAME_SEL = 7 frames,
-+ * ISC = 0 frames
-+ */);
-+
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETEQ,
-+ 0x00, /* PNOEQ */
-+ 0x00, /* NNOEQ */
-+ 0x0B, /* PEQGND */
-+ 0x0B, /* NEQGND */
-+ 0x10, /* PEQVCI */
-+ 0x10, /* NEQVCI */
-+ 0x00, /* PEQVCI1 */
-+ 0x00, /* NEQVCI1 */
-+ 0x00, /* reserved */
-+ 0x00, /* reserved */
-+ 0xFF, /* reserved */
-+ 0x00, /* reserved */
-+ 0xC0, /* ESD_DET_DATA_WHITE = 1, ESD_WHITE_EN = 1 */
-+ 0x10 /* SLPIN_OPTION = 1 (no need vsync after sleep-in)
-+ * VEDIO_NO_CHECK_EN = 0
-+ * ESD_WHITE_GND_EN = 0
-+ * ESD_DET_TIME_SEL = 0 frames
-+ */);
-+
-+ /* Undocumented command. */
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_UNKNOWN_C6, 0x01, 0x00, 0xFF, 0xFF, 0x00);
-+
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETPOWER,
-+ 0x74, /* VBTHS, VBTLS: VGH = 17V, VBL = -11V */
-+ 0x00, /* FBOFF_VGH = 0, FBOFF_VGL = 0 */
-+ 0x32, /* VRP */
-+ 0x32, /* VRN */
-+ 0x77, /* reserved */
-+ 0xF1, /* APS = 1 (small),
-+ * VGL_DET_EN = 1, VGH_DET_EN = 1,
-+ * VGL_TURBO = 1, VGH_TURBO = 1
-+ */
-+ 0xFF, /* VGH1_L_DIV, VGL1_L_DIV (1.5MHz) */
-+ 0xFF, /* VGH1_R_DIV, VGL1_R_DIV (1.5MHz) */
-+ 0xCC, /* VGH2_L_DIV, VGL2_L_DIV (2.6MHz) */
-+ 0xCC, /* VGH2_R_DIV, VGL2_R_DIV (2.6MHz) */
-+ 0x77, /* VGH3_L_DIV, VGL3_L_DIV (4.5MHz) */
-+ 0x77 /* VGH3_R_DIV, VGL3_R_DIV (4.5MHz) */);
-+
-+ /* Reference voltage. */
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETBGP,
-+ 0x07, /* VREF_SEL = 4.2V */
-+ 0x07 /* NVREF_SEL = 4.2V */);
-+
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_SETVCOM,
-+ 0x2C, /* VCOMDC_F = -0.67V */
-+ 0x2C /* VCOMDC_B = -0.67V */);
-+
-+ /* Undocumented command. */
-+ dsi_dcs_write_seq(dsi, ST7703_CMD_UNKNOWN_BF, 0x02, 0x11, 0x00);
-+
-+ /* This command is to set forward GIP timing. */
-+ 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);
-+
-+ /* This command is to set backward GIP timing. */
-+ 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);
-+
-+ /* Adjust the gamma characteristics of the panel. */
-+ 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);
-+
-+ return 0;
-+}
-+
-+static const struct drm_display_mode xbd599_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,
-+};
-+
-+static const struct st7703_panel_desc xbd599_desc = {
-+ .mode = &xbd599_mode,
-+ .lanes = 4,
-+ .mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE,
-+ .format = MIPI_DSI_FMT_RGB888,
-+ .init_sequence = xbd599_init_sequence,
-+};
-+
- static int st7703_enable(struct drm_panel *panel)
- {
- 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 },
- { /* sentinel */ }
- };
- MODULE_DEVICE_TABLE(of, st7703_of_match);
---
-2.26.2
-
diff --git a/SOURCES/0010-drm-panel-st7703-Enter-sleep-after-display-off.patch b/SOURCES/0010-drm-panel-st7703-Enter-sleep-after-display-off.patch
deleted file mode 100644
index 8679628..0000000
--- a/SOURCES/0010-drm-panel-st7703-Enter-sleep-after-display-off.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 7c9c58114d277e570f667ac670ef28725e51814e 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
-
-The datasheet suggests to issue sleep in after display off
-as a part of the panel's shutdown sequence.
-
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- drivers/gpu/drm/panel/panel-sitronix-st7703.c | 13 ++++++++++++-
- 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
---- 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)
- {
- struct st7703 *ctx = panel_to_st7703(panel);
- struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
-+ int ret;
-+
-+ ret = mipi_dsi_dcs_set_display_off(dsi);
-+ 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)
-+ DRM_DEV_ERROR(ctx->dev,
-+ "Failed to enter sleep mode: %d\n", ret);
-+
-+ return 0;
- }
-
- static int st7703_unprepare(struct drm_panel *panel)
---
-2.26.2
-
diff --git a/SOURCES/0011-drm-panel-st7703-Assert-reset-prior-to-powering-down.patch b/SOURCES/0011-drm-panel-st7703-Assert-reset-prior-to-powering-down.patch
deleted file mode 100644
index f587190..0000000
--- a/SOURCES/0011-drm-panel-st7703-Assert-reset-prior-to-powering-down.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From f290f11b42df0d9d42679b93bb6a488f9e12e00d 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
-
-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.
-
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- drivers/gpu/drm/panel/panel-sitronix-st7703.c | 1 +
- 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
---- 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);
- ctx->prepared = false;
---
-2.26.2
-
diff --git a/SOURCES/0012-arm64-dts-sun50i-a64-pinephone-Enable-LCD-support-on.patch b/SOURCES/0012-arm64-dts-sun50i-a64-pinephone-Enable-LCD-support-on.patch
deleted file mode 100644
index 0c8ca99..0000000
--- a/SOURCES/0012-arm64-dts-sun50i-a64-pinephone-Enable-LCD-support-on.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From 3ac5eb0c8bc2da9e81e04fc6106a79b476ec9219 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
- PinePhone
-
-PinePhone uses PWM backlight and a XBD599 LCD panel over DSI for
-display.
-
-Backlight levels curve was optimized by Martijn Braam using a
-lux meter.
-
-Add its device nodes.
-
-Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
-Signed-off-by: Martijn Braam <martijn@brixit.nl>
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- .../allwinner/sun50i-a64-pinephone-1.1.dts | 19 ++++++++++
- .../dts/allwinner/sun50i-a64-pinephone.dtsi | 35 +++++++++++++++++++
- 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
---- 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 @@ / {
- model = "Pine64 PinePhone Braveheart (1.1)";
- compatible = "pine64,pinephone-1.1", "allwinner,sun50i-a64";
- };
-+
-+&backlight {
-+ power-supply = <&reg_ldo_io0>;
-+ /*
-+ * PWM backlight circuit on this PinePhone revision was changed since
-+ * 1.0, and the lowest PWM duty cycle that doesn't lead to backlight
-+ * being off is around 20%. Duty cycle for the lowest brightness level
-+ * also varries quite a bit between individual boards, so the lowest
-+ * value here was chosen as a safe default.
-+ */
-+ brightness-levels = <
-+ 774 793 814 842
-+ 882 935 1003 1088
-+ 1192 1316 1462 1633
-+ 1830 2054 2309 2596
-+ 2916 3271 3664 4096>;
-+ num-interpolated-steps = <50>;
-+ 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
---- 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>;
-+ enable-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */
-+ /* Backlight configuration differs per PinePhone revision. */
-+ };
-+
- chosen {
- stdout-path = "serial0:115200n8";
- };
-@@ -84,6 +91,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 +219,10 @@ &r_pio {
- */
- };
-
-+&r_pwm {
-+ status = "okay";
-+};
-+
- &r_rsb {
- status = "okay";
-
---
-2.26.2
-
diff --git a/SOURCES/0013-arm64-dts-sun50i-a64-pinephone-Add-touchscreen-suppo.patch b/SOURCES/0013-arm64-dts-sun50i-a64-pinephone-Add-touchscreen-suppo.patch
deleted file mode 100644
index 211eb27..0000000
--- a/SOURCES/0013-arm64-dts-sun50i-a64-pinephone-Add-touchscreen-suppo.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 786358ed986e4788b992d98e1d3b198a4e01a9d5 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
-
-Pinephone has a Goodix GT917S capacitive touchscreen controller on
-I2C0 bus. Add support for it.
-
-Signed-off-by: Ondrej Jirman <megous@megous.com>
----
- .../dts/allwinner/sun50i-a64-pinephone.dtsi | 19 +++++++++++++++++++
- 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
---- 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>;
-+ status = "okay";
-+
-+ touchscreen@5d {
-+ compatible = "goodix,gt917s", "goodix,gt911";
-+ reg = <0x5d>;
-+ interrupt-parent = <&pio>;
-+ interrupts = <7 4 IRQ_TYPE_LEVEL_HIGH>; /* PH4 */
-+ irq-gpios = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
-+ reset-gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */
-+ AVDD28-supply = <&reg_ldo_io0>;
-+ VDDIO-supply = <&reg_ldo_io0>;
-+ touchscreen-size-x = <720>;
-+ touchscreen-size-y = <1440>;
-+ };
-+};
-+
- &i2c1 {
- status = "okay";
-
---
-2.26.2
-
diff --git a/SOURCES/ARM-dts-sun7i-pcduino3-nano-enable-RGMII-RX-TX-delay-on-PHY.patch b/SOURCES/ARM-dts-sun7i-pcduino3-nano-enable-RGMII-RX-TX-delay-on-PHY.patch
deleted file mode 100644
index d3dfe92..0000000
--- a/SOURCES/ARM-dts-sun7i-pcduino3-nano-enable-RGMII-RX-TX-delay-on-PHY.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From patchwork Sun Oct 25 14:01:44 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Adam Sampson <ats@offog.org>
-X-Patchwork-Id: 11855267
-Return-Path:
- <SRS0=8R9C=EA=lists.infradead.org=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-X-Spam-Level:
-X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH,
- DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,
- MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,
- USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0
-Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
- by smtp.lore.kernel.org (Postfix) with ESMTP id D1D99C388F7
- for <linux-arm-kernel@archiver.kernel.org>;
- Sun, 25 Oct 2020 14:04:02 +0000 (UTC)
-Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPS id 539B92225E
- for <linux-arm-kernel@archiver.kernel.org>;
- Sun, 25 Oct 2020 14:04:02 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=lists.infradead.org
- header.i=@lists.infradead.org header.b="pKL4zMU1"
-DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 539B92225E
-Authentication-Results: mail.kernel.org;
- dmarc=fail (p=none dis=none) header.from=offog.org
-Authentication-Results: mail.kernel.org;
- spf=none
- smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding:
- Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive:
- List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From:
- Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender
- :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner;
- bh=Smw7tRUwTAlV9zXVX1uVl3+PN3QebXDyiZrExxBSCPU=; b=pKL4zMU1LMKGyGrnNBuRIJVlPn
- yMf8/tMv8w7BT/mMtZkxY22WUlN4IpqNLAx1mdiIa5VUVbVpdsXYWYdSWaUvJe24nyJi8NycxIoO8
- 168UTytxMlzI5F18yr9bXZ79rSRW+/P0zQbb+OQPMPbJPNb1RusFtve8WGNCkqlOWUOpiVQqPFPJ9
- hGhOsDJhXjep7y7HNpu7+UBYvZInmOOrAS079WoEc1jX4u6zDXt0ox24r0Fcc8wnVpsWpGxPhb0xZ
- uZtguJOo2ItQdeT/6OfafjzV15qXfPGK+148ny4vyOvgHNvJX88R6RBIxqUdvQzoh10GTlb76K45i
- Gfx5ufkA==;
-Received: from localhost ([::1] helo=merlin.infradead.org)
- by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWgb2-0000uB-6w; Sun, 25 Oct 2020 14:02:08 +0000
-Received: from a-painless.mh.aa.net.uk ([2001:8b0:0:30::51]
- helo=alt.a-painless.mh.aa.net.uk)
- by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWgaz-0000tq-Kq
- for linux-arm-kernel@lists.infradead.org; Sun, 25 Oct 2020 14:02:06 +0000
-Received: from cartman.offog.org ([2001:8b0:83b:b53f::a])
- by a-painless.mh.aa.net.uk with esmtps
- (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92)
- (envelope-from <ats@offog.org>)
- id 1kWgay-0001oV-R0; Sun, 25 Oct 2020 14:02:04 +0000
-Received: from ats by cartman.offog.org with local (Exim 4.94)
- (envelope-from <ats@offog.org>)
- id 1kWgao-0007UQ-4s; Sun, 25 Oct 2020 14:01:54 +0000
-From: Adam Sampson <ats@offog.org>
-To: linux-sunxi@googlegroups.com, devicetree@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org
-Subject: [PATCH] ARM: dts: sun7i: pcduino3-nano: enable RGMII RX/TX delay on
- PHY
-Date: Sun, 25 Oct 2020 14:01:44 +0000
-Message-Id: <20201025140144.28693-1-ats@offog.org>
-X-Mailer: git-send-email 2.29.1
-MIME-Version: 1.0
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20201025_100205_812453_7FAF68C8
-X-CRM114-Status: GOOD ( 13.85 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.29
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: Adam Sampson <ats@offog.org>
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-
-The RX/TX delays for the Ethernet PHY on the Linksprite pcDuino 3 Nano
-are configured in hardware, using resistors that are populated to pull
-the RTL8211E's RXDLY/TXDLY pins low or high as needed.
-
-phy-mode should be set to rgmii-id to reflect this. Previously it was
-set to rgmii, which used to work but now results in the delays being
-disabled again as a result of the bugfix in commit bbc4d71d6354 ("net:
-phy: realtek: fix rtl8211e rx/tx delay config").
-
-Tested on two pcDuino 3 Nano boards purchased in 2015. Without this fix,
-Ethernet works unreliably on one board and doesn't work at all on the
-other.
-
-Fixes: 061035d456c9 ("ARM: dts: sun7i: Add dts file for pcDuino 3 Nano board")
-Signed-off-by: Adam Sampson <ats@offog.org>
-Reviewed-by: Andrew Lunn <andrew@lunn.ch>
----
- arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts b/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
-index fce2f7fcd084..bf38c66c1815 100644
---- a/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
-+++ b/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
-@@ -1,5 +1,5 @@
- /*
-- * Copyright 2015 Adam Sampson <ats@offog.org>
-+ * Copyright 2015-2020 Adam Sampson <ats@offog.org>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
-@@ -115,7 +115,7 @@ &gmac {
- pinctrl-names = "default";
- pinctrl-0 = <&gmac_rgmii_pins>;
- phy-handle = <&phy1>;
-- phy-mode = "rgmii";
-+ phy-mode = "rgmii-id";
- status = "okay";
- };
-
diff --git a/SOURCES/ARM-dts-sun8i-r40-bananapi-m2-ultra-Fix-ethernet-node.patch b/SOURCES/ARM-dts-sun8i-r40-bananapi-m2-ultra-Fix-ethernet-node.patch
deleted file mode 100644
index 970b6e3..0000000
--- a/SOURCES/ARM-dts-sun8i-r40-bananapi-m2-ultra-Fix-ethernet-node.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From patchwork Sun Oct 25 08:19:49 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: =?utf-8?q?Jernej_=C5=A0krabec?=
- <jernej.skrabec@siol.net>
-X-Patchwork-Id: 11855181
-Return-Path:
- <SRS0=8R9C=EA=lists.infradead.org=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-X-Spam-Level:
-X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH,
- DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,
- MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,
- USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0
-Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
- by smtp.lore.kernel.org (Postfix) with ESMTP id B6AE3C388F7
- for <linux-arm-kernel@archiver.kernel.org>;
- Sun, 25 Oct 2020 08:16:10 +0000 (UTC)
-Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPS id 4237B22202
- for <linux-arm-kernel@archiver.kernel.org>;
- Sun, 25 Oct 2020 08:16:10 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=lists.infradead.org
- header.i=@lists.infradead.org header.b="aQsCF8Xs"
-DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4237B22202
-Authentication-Results: mail.kernel.org;
- dmarc=fail (p=none dis=none) header.from=siol.net
-Authentication-Results: mail.kernel.org;
- spf=none
- smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding:
- Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive:
- List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From:
- Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender
- :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner;
- bh=OVfJGYUKDO8EDgWuqz0sWx0VmV2S5JECcAK3tuelNEg=; b=aQsCF8XsLEVFht8Uw49dbRkjUb
- l0/cqvHPmMU+u1YDBGKvcHh84au6Ycu0Yj9KpXz1xyyZWpw3J8kumzmmHbIf1PdmBIQgJHKVu2lJB
- DrsvuVRLcfl4PiJk/s26XVtl0otfluZWdH0lyPc9ZbOOeAQOrgVFTWdgOmv3UPOjLS5hT0jFnrRx2
- nMmHSImA04dLm7r0sDICCwVxYte3PcLFdPKOl/InrqErMZfVhNRXg39QBEHPhfjXebMpFYdxi25xP
- AX7Ki+J4I5Tln9McKb/VFPFmfxkImZH3cE+PQSwLSWgOniF2onxFBKZdZvqWM7CtGe4PNF1WMebvy
- 88mZj4WA==;
-Received: from localhost ([::1] helo=merlin.infradead.org)
- by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWbAd-0001fY-U8; Sun, 25 Oct 2020 08:14:31 +0000
-Received: from mailoutvs12.siol.net ([185.57.226.203] helo=mail.siol.net)
- by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWbAW-0001eg-7I
- for linux-arm-kernel@lists.infradead.org; Sun, 25 Oct 2020 08:14:25 +0000
-Received: from localhost (localhost [127.0.0.1])
- by mail.siol.net (Postfix) with ESMTP id 3296D529E39;
- Sun, 25 Oct 2020 09:14:22 +0100 (CET)
-X-Virus-Scanned: amavisd-new at psrvmta09.zcs-production.pri
-Received: from mail.siol.net ([127.0.0.1])
- by localhost (psrvmta09.zcs-production.pri [127.0.0.1]) (amavisd-new,
- port 10032)
- with ESMTP id aIRB7Go1sYw4; Sun, 25 Oct 2020 09:14:22 +0100 (CET)
-Received: from mail.siol.net (localhost [127.0.0.1])
- by mail.siol.net (Postfix) with ESMTPS id E682152A0BE;
- Sun, 25 Oct 2020 09:14:21 +0100 (CET)
-Received: from kista.localdomain (cpe1-5-97.cable.triera.net [213.161.5.97])
- (Authenticated sender: 031275009)
- by mail.siol.net (Postfix) with ESMTPSA id A68F0529E39;
- Sun, 25 Oct 2020 09:14:21 +0100 (CET)
-From: Jernej Skrabec <jernej.skrabec@siol.net>
-To: mripard@kernel.org,
- wens@csie.org
-Subject: [PATCH] ARM: dts: sun8i: r40: bananapi-m2-ultra: Fix ethernet node
-Date: Sun, 25 Oct 2020 09:19:49 +0100
-Message-Id: <20201025081949.783443-1-jernej.skrabec@siol.net>
-X-Mailer: git-send-email 2.29.1
-MIME-Version: 1.0
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20201025_041424_405883_C92DFA93
-X-CRM114-Status: GOOD ( 11.20 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.29
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, linux-sunxi@googlegroups.com,
- robh+dt@kernel.org, linux-kernel@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-
-Ethernet PHY on BananaPi M2 Ultra provides RX and TX delays. Fix
-ethernet node to reflect that fact.
-
-Fixes: c36fd5a48bd2 ("ARM: dts: sun8i: r40: bananapi-m2-ultra: Enable GMAC ethernet controller")
-Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
----
- arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
-index 2fc62ef0cb3e..a6a1087a0c9b 100644
---- a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
-+++ b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
-@@ -129,7 +129,7 @@ &gmac {
- pinctrl-names = "default";
- pinctrl-0 = <&gmac_rgmii_pins>;
- phy-handle = <&phy1>;
-- phy-mode = "rgmii";
-+ phy-mode = "rgmii-id";
- phy-supply = <&reg_dc1sw>;
- status = "okay";
- };
diff --git a/SOURCES/CVE-2020-16119-DCCP-CCID-structure-use-after-free.patch b/SOURCES/CVE-2020-16119-DCCP-CCID-structure-use-after-free.patch
deleted file mode 100644
index 7eb981e..0000000
--- a/SOURCES/CVE-2020-16119-DCCP-CCID-structure-use-after-free.patch
+++ /dev/null
@@ -1,305 +0,0 @@
-From MAILER-DAEMON Wed Oct 14 16:34:37 2020
-From: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
-To: netdev@vger.kernel.org
-Cc: Gerrit Renker <gerrit@erg.abdn.ac.uk>, "David S. Miller" <davem@davemloft.net>, Jakub Kicinski <kuba@kernel.org>, Thadeu Lima de Souza Cascardo <cascardo@canonical.com>, "Gustavo A. R. Silva" <gustavoars@kernel.org>, "Alexander A. Klimov" <grandmaster@al2klimov.de>, Kees Cook <keescook@chromium.org>, Eric Dumazet <edumazet@google.com>, Alexey Kodanev <alexey.kodanev@oracle.com>, dccp@vger.kernel.org, linux-kernel@vger.kernel.org
-Subject: [PATCH 1/2] dccp: ccid: move timers to struct dccp_sock
-Date: Tue, 13 Oct 2020 19:18:48 +0200
-Message-Id: <20201013171849.236025-2-kleber.souza@canonical.com>
-In-Reply-To: <20201013171849.236025-1-kleber.souza@canonical.com>
-References: <20201013171849.236025-1-kleber.souza@canonical.com>
-List-ID: <linux-kernel.vger.kernel.org>
-X-Mailing-List: linux-kernel@vger.kernel.org
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 7bit
-
-From: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
-
-When dccps_hc_tx_ccid is freed, ccid timers may still trigger. The reason
-del_timer_sync can't be used is because this relies on keeping a reference
-to struct sock. But as we keep a pointer to dccps_hc_tx_ccid and free that
-during disconnect, the timer should really belong to struct dccp_sock.
-
-This addresses CVE-2020-16119.
-
-Fixes: 839a6094140a (net: dccp: Convert timers to use timer_setup())
-Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
-Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
-Acked-bd: Richard Sailer <richard_siegfried@systemli.org>
----
- include/linux/dccp.h | 2 ++
- net/dccp/ccids/ccid2.c | 32 +++++++++++++++++++-------------
- net/dccp/ccids/ccid3.c | 30 ++++++++++++++++++++----------
- 3 files changed, 41 insertions(+), 23 deletions(-)
-
-diff --git a/include/linux/dccp.h b/include/linux/dccp.h
-index 07e547c02fd8..504afa1a4be6 100644
---- a/include/linux/dccp.h
-+++ b/include/linux/dccp.h
-@@ -259,6 +259,7 @@ struct dccp_ackvec;
- * @dccps_sync_scheduled - flag which signals "send out-of-band message soon"
- * @dccps_xmitlet - tasklet scheduled by the TX CCID to dequeue data packets
- * @dccps_xmit_timer - used by the TX CCID to delay sending (rate-based pacing)
-+ * @dccps_ccid_timer - used by the CCIDs
- * @dccps_syn_rtt - RTT sample from Request/Response exchange (in usecs)
- */
- struct dccp_sock {
-@@ -303,6 +304,7 @@ struct dccp_sock {
- __u8 dccps_sync_scheduled:1;
- struct tasklet_struct dccps_xmitlet;
- struct timer_list dccps_xmit_timer;
-+ struct timer_list dccps_ccid_timer;
- };
-
- static inline struct dccp_sock *dccp_sk(const struct sock *sk)
-diff --git a/net/dccp/ccids/ccid2.c b/net/dccp/ccids/ccid2.c
-index 3da1f77bd039..dbca1f1e2449 100644
---- a/net/dccp/ccids/ccid2.c
-+++ b/net/dccp/ccids/ccid2.c
-@@ -126,21 +126,26 @@ static void dccp_tasklet_schedule(struct sock *sk)
-
- static void ccid2_hc_tx_rto_expire(struct timer_list *t)
- {
-- struct ccid2_hc_tx_sock *hc = from_timer(hc, t, tx_rtotimer);
-- struct sock *sk = hc->sk;
-- const bool sender_was_blocked = ccid2_cwnd_network_limited(hc);
-+ struct dccp_sock *dp = from_timer(dp, t, dccps_ccid_timer);
-+ struct sock *sk = (struct sock *)dp;
-+ struct ccid2_hc_tx_sock *hc;
-+ bool sender_was_blocked;
-
- bh_lock_sock(sk);
-+
-+ if (inet_sk_state_load(sk) == DCCP_CLOSED)
-+ goto out;
-+
-+ hc = ccid_priv(dp->dccps_hc_tx_ccid);
-+ sender_was_blocked = ccid2_cwnd_network_limited(hc);
-+
- if (sock_owned_by_user(sk)) {
-- sk_reset_timer(sk, &hc->tx_rtotimer, jiffies + HZ / 5);
-+ sk_reset_timer(sk, &dp->dccps_ccid_timer, jiffies + HZ / 5);
- goto out;
- }
-
- ccid2_pr_debug("RTO_EXPIRE\n");
-
-- if (sk->sk_state == DCCP_CLOSED)
-- goto out;
--
- /* back-off timer */
- hc->tx_rto <<= 1;
- if (hc->tx_rto > DCCP_RTO_MAX)
-@@ -166,7 +171,7 @@ static void ccid2_hc_tx_rto_expire(struct timer_list *t)
- if (sender_was_blocked)
- dccp_tasklet_schedule(sk);
- /* restart backed-off timer */
-- sk_reset_timer(sk, &hc->tx_rtotimer, jiffies + hc->tx_rto);
-+ sk_reset_timer(sk, &dp->dccps_ccid_timer, jiffies + hc->tx_rto);
- out:
- bh_unlock_sock(sk);
- sock_put(sk);
-@@ -330,7 +335,7 @@ static void ccid2_hc_tx_packet_sent(struct sock *sk, unsigned int len)
- }
- #endif
-
-- sk_reset_timer(sk, &hc->tx_rtotimer, jiffies + hc->tx_rto);
-+ sk_reset_timer(sk, &dp->dccps_ccid_timer, jiffies + hc->tx_rto);
-
- #ifdef CONFIG_IP_DCCP_CCID2_DEBUG
- do {
-@@ -700,9 +705,9 @@ static void ccid2_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb)
-
- /* restart RTO timer if not all outstanding data has been acked */
- if (hc->tx_pipe == 0)
-- sk_stop_timer(sk, &hc->tx_rtotimer);
-+ sk_stop_timer(sk, &dp->dccps_ccid_timer);
- else
-- sk_reset_timer(sk, &hc->tx_rtotimer, jiffies + hc->tx_rto);
-+ sk_reset_timer(sk, &dp->dccps_ccid_timer, jiffies + hc->tx_rto);
- done:
- /* check if incoming Acks allow pending packets to be sent */
- if (sender_was_blocked && !ccid2_cwnd_network_limited(hc))
-@@ -737,17 +742,18 @@ static int ccid2_hc_tx_init(struct ccid *ccid, struct sock *sk)
- hc->tx_last_cong = hc->tx_lsndtime = hc->tx_cwnd_stamp = ccid2_jiffies32;
- hc->tx_cwnd_used = 0;
- hc->sk = sk;
-- timer_setup(&hc->tx_rtotimer, ccid2_hc_tx_rto_expire, 0);
-+ timer_setup(&dp->dccps_ccid_timer, ccid2_hc_tx_rto_expire, 0);
- INIT_LIST_HEAD(&hc->tx_av_chunks);
- return 0;
- }
-
- static void ccid2_hc_tx_exit(struct sock *sk)
- {
-+ struct dccp_sock *dp = dccp_sk(sk);
- struct ccid2_hc_tx_sock *hc = ccid2_hc_tx_sk(sk);
- int i;
-
-- sk_stop_timer(sk, &hc->tx_rtotimer);
-+ sk_stop_timer(sk, &dp->dccps_ccid_timer);
-
- for (i = 0; i < hc->tx_seqbufc; i++)
- kfree(hc->tx_seqbuf[i]);
-diff --git a/net/dccp/ccids/ccid3.c b/net/dccp/ccids/ccid3.c
-index b9ee1a4a8955..685f4d046c0d 100644
---- a/net/dccp/ccids/ccid3.c
-+++ b/net/dccp/ccids/ccid3.c
-@@ -184,17 +184,24 @@ static inline void ccid3_hc_tx_update_win_count(struct ccid3_hc_tx_sock *hc,
-
- static void ccid3_hc_tx_no_feedback_timer(struct timer_list *t)
- {
-- struct ccid3_hc_tx_sock *hc = from_timer(hc, t, tx_no_feedback_timer);
-- struct sock *sk = hc->sk;
-+ struct dccp_sock *dp = from_timer(dp, t, dccps_ccid_timer);
-+ struct ccid3_hc_tx_sock *hc;
-+ struct sock *sk = (struct sock *)dp;
- unsigned long t_nfb = USEC_PER_SEC / 5;
-
- bh_lock_sock(sk);
-+
-+ if (inet_sk_state_load(sk) == DCCP_CLOSED)
-+ goto out;
-+
- if (sock_owned_by_user(sk)) {
- /* Try again later. */
- /* XXX: set some sensible MIB */
- goto restart_timer;
- }
-
-+ hc = ccid_priv(dp->dccps_hc_tx_ccid);
-+
- ccid3_pr_debug("%s(%p, state=%s) - entry\n", dccp_role(sk), sk,
- ccid3_tx_state_name(hc->tx_state));
-
-@@ -250,8 +257,8 @@ static void ccid3_hc_tx_no_feedback_timer(struct timer_list *t)
- t_nfb = max(hc->tx_t_rto, 2 * hc->tx_t_ipi);
-
- restart_timer:
-- sk_reset_timer(sk, &hc->tx_no_feedback_timer,
-- jiffies + usecs_to_jiffies(t_nfb));
-+ sk_reset_timer(sk, &dp->dccps_ccid_timer,
-+ jiffies + usecs_to_jiffies(t_nfb));
- out:
- bh_unlock_sock(sk);
- sock_put(sk);
-@@ -280,7 +287,7 @@ static int ccid3_hc_tx_send_packet(struct sock *sk, struct sk_buff *skb)
- return -EBADMSG;
-
- if (hc->tx_state == TFRC_SSTATE_NO_SENT) {
-- sk_reset_timer(sk, &hc->tx_no_feedback_timer, (jiffies +
-+ sk_reset_timer(sk, &dp->dccps_ccid_timer, (jiffies +
- usecs_to_jiffies(TFRC_INITIAL_TIMEOUT)));
- hc->tx_last_win_count = 0;
- hc->tx_t_last_win_count = now;
-@@ -354,6 +361,7 @@ static void ccid3_hc_tx_packet_sent(struct sock *sk, unsigned int len)
- static void ccid3_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb)
- {
- struct ccid3_hc_tx_sock *hc = ccid3_hc_tx_sk(sk);
-+ struct dccp_sock *dp = dccp_sk(sk);
- struct tfrc_tx_hist_entry *acked;
- ktime_t now;
- unsigned long t_nfb;
-@@ -420,7 +428,7 @@ static void ccid3_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb)
- (unsigned int)(hc->tx_x >> 6));
-
- /* unschedule no feedback timer */
-- sk_stop_timer(sk, &hc->tx_no_feedback_timer);
-+ sk_stop_timer(sk, &dp->dccps_ccid_timer);
-
- /*
- * As we have calculated new ipi, delta, t_nom it is possible
-@@ -445,8 +453,8 @@ static void ccid3_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb)
- "expire in %lu jiffies (%luus)\n",
- dccp_role(sk), sk, usecs_to_jiffies(t_nfb), t_nfb);
-
-- sk_reset_timer(sk, &hc->tx_no_feedback_timer,
-- jiffies + usecs_to_jiffies(t_nfb));
-+ sk_reset_timer(sk, &dp->dccps_ccid_timer,
-+ jiffies + usecs_to_jiffies(t_nfb));
- }
-
- static int ccid3_hc_tx_parse_options(struct sock *sk, u8 packet_type,
-@@ -488,21 +496,23 @@ static int ccid3_hc_tx_parse_options(struct sock *sk, u8 packet_type,
-
- static int ccid3_hc_tx_init(struct ccid *ccid, struct sock *sk)
- {
-+ struct dccp_sock *dp = dccp_sk(sk);
- struct ccid3_hc_tx_sock *hc = ccid_priv(ccid);
-
- hc->tx_state = TFRC_SSTATE_NO_SENT;
- hc->tx_hist = NULL;
- hc->sk = sk;
-- timer_setup(&hc->tx_no_feedback_timer,
-+ timer_setup(&dp->dccps_ccid_timer,
- ccid3_hc_tx_no_feedback_timer, 0);
- return 0;
- }
-
- static void ccid3_hc_tx_exit(struct sock *sk)
- {
-+ struct dccp_sock *dp = dccp_sk(sk);
- struct ccid3_hc_tx_sock *hc = ccid3_hc_tx_sk(sk);
-
-- sk_stop_timer(sk, &hc->tx_no_feedback_timer);
-+ sk_stop_timer(sk, &dp->dccps_ccid_timer);
- tfrc_tx_hist_purge(&hc->tx_hist);
- }
-
---
-2.25.1
-
-
-From MAILER-DAEMON Wed Oct 14 16:34:37 2020
-From: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
-To: netdev@vger.kernel.org
-Cc: Gerrit Renker <gerrit@erg.abdn.ac.uk>, "David S. Miller" <davem@davemloft.net>, Jakub Kicinski <kuba@kernel.org>, Thadeu Lima de Souza Cascardo <cascardo@canonical.com>, "Gustavo A. R. Silva" <gustavoars@kernel.org>, "Alexander A. Klimov" <grandmaster@al2klimov.de>, Kees Cook <keescook@chromium.org>, Eric Dumazet <edumazet@google.com>, Alexey Kodanev <alexey.kodanev@oracle.com>, dccp@vger.kernel.org, linux-kernel@vger.kernel.org
-Subject: [PATCH 2/2] Revert "dccp: don't free ccid2_hc_tx_sock struct in dccp_disconnect()"
-Date: Tue, 13 Oct 2020 19:18:49 +0200
-Message-Id: <20201013171849.236025-3-kleber.souza@canonical.com>
-In-Reply-To: <20201013171849.236025-1-kleber.souza@canonical.com>
-References: <20201013171849.236025-1-kleber.souza@canonical.com>
-List-ID: <linux-kernel.vger.kernel.org>
-X-Mailing-List: linux-kernel@vger.kernel.org
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 7bit
-
-From: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
-
-This reverts commit 2677d20677314101293e6da0094ede7b5526d2b1.
-
-This fixes an issue that after disconnect, dccps_hc_tx_ccid will still be
-kept, allowing the socket to be reused as a listener socket, and the cloned
-socket will free its dccps_hc_tx_ccid, leading to a later use after free,
-when the listener socket is closed.
-
-This addresses CVE-2020-16119.
-
-Fixes: 2677d2067731 (dccp: don't free ccid2_hc_tx_sock struct in dccp_disconnect())
-Reported-by: Hadar Manor
-Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
-Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
-Acked-by: Richard Sailer <richard_siegfried@systemli.org>
----
- net/dccp/proto.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/net/dccp/proto.c b/net/dccp/proto.c
-index 6d705d90c614..359e848dba6c 100644
---- a/net/dccp/proto.c
-+++ b/net/dccp/proto.c
-@@ -279,7 +279,9 @@ int dccp_disconnect(struct sock *sk, int flags)
-
- dccp_clear_xmit_timers(sk);
- ccid_hc_rx_delete(dp->dccps_hc_rx_ccid, sk);
-+ ccid_hc_tx_delete(dp->dccps_hc_tx_ccid, sk);
- dp->dccps_hc_rx_ccid = NULL;
-+ dp->dccps_hc_tx_ccid = NULL;
-
- __skb_queue_purge(&sk->sk_receive_queue);
- __skb_queue_purge(&sk->sk_write_queue);
---
-2.25.1
-
-
diff --git a/SOURCES/arm-pandaboard-fix-add-bluetooth.patch b/SOURCES/arm-pandaboard-fix-add-bluetooth.patch
new file mode 100644
index 0000000..5ef0ae8
--- /dev/null
+++ b/SOURCES/arm-pandaboard-fix-add-bluetooth.patch
@@ -0,0 +1,64 @@
+From b86516452cfd94321900abe7c8ac843c146a8c53 Mon Sep 17 00:00:00 2001
+From: "H. Nikolaus Schaller" <hns@goldelico.com>
+Date: Sat, 3 Oct 2020 16:10:01 +0200
+Subject: ARM: dts: pandaboard es: add bluetooth uart for HCI
+
+The wl271 bluetooth uart is connected to uart2.
+Setup a serdev uart child and separate bluetooth and uart2 pinmux
+from wl12xx pinmux to better group the pins and muxes.
+
+Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
+Signed-off-by: Tony Lindgren <tony@atomide.com>
+---
+ arch/arm/boot/dts/omap4-panda-es.dts | 32 ++++++++++++++++++++++++++++++++
+ 1 file changed, 32 insertions(+)
+
+diff --git a/arch/arm/boot/dts/omap4-panda-es.dts b/arch/arm/boot/dts/omap4-panda-es.dts
+index 6afa8fd7c412d..7c6886cd738f0 100644
+--- a/arch/arm/boot/dts/omap4-panda-es.dts
++++ b/arch/arm/boot/dts/omap4-panda-es.dts
+@@ -49,6 +49,22 @@
+ OMAP4_IOPAD(0x0fc, PIN_INPUT_PULLUP | MUX_MODE3) /* gpio_113 */
+ >;
+ };
++
++ bt_pins: pinmux_bt_pins {
++ pinctrl-single,pins = <
++ OMAP4_IOPAD(0x06c, PIN_OUTPUT | MUX_MODE3) /* gpmc_a22.gpio_46 - BTEN */
++ OMAP4_IOPAD(0x072, PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_a25.gpio_49 - BTWAKEUP */
++ >;
++ };
++
++ uart2_pins: pinmux_uart2_pins {
++ pinctrl-single,pins = <
++ OMAP4_IOPAD(0x118, PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_cts.uart2_cts - HCI */
++ OMAP4_IOPAD(0x11a, PIN_OUTPUT | MUX_MODE0) /* uart2_rts.uart2_rts */
++ OMAP4_IOPAD(0x11c, PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_rx.uart2_rx */
++ OMAP4_IOPAD(0x11e, PIN_OUTPUT | MUX_MODE0) /* uart2_tx.uart2_tx */
++ >;
++ };
+ };
+
+ &led_wkgpio_pins {
+@@ -80,3 +96,19 @@
+ &gpio1_target {
+ ti,no-reset-on-init;
+ };
++
++&wl12xx_gpio {
++ pinctrl-single,pins = <
++ OMAP4_IOPAD(0x066, PIN_OUTPUT | MUX_MODE3) /* gpmc_a19.gpio_43 */
++ OMAP4_IOPAD(0x070, PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_a24.gpio_48 */
++ >;
++};
++
++&uart2 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&uart2_pins &bt_pins>;
++ bluetooth: tiwi {
++ compatible = "ti,wl1271-st";
++ enable-gpios = <&gpio2 14 GPIO_ACTIVE_HIGH>; /* GPIO_46 */
++ };
++};
+--
+cgit 1.2.3-1.el7
diff --git a/SOURCES/arm-sun8i-realtek-phy-fixes.patch b/SOURCES/arm-sun8i-realtek-phy-fixes.patch
deleted file mode 100644
index 018ed84..0000000
--- a/SOURCES/arm-sun8i-realtek-phy-fixes.patch
+++ /dev/null
@@ -1,1385 +0,0 @@
-From patchwork Sat Oct 24 16:25:06 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Chen-Yu Tsai <wens@kernel.org>
-X-Patchwork-Id: 11854901
-Return-Path:
- <SRS0=xcYM=D7=lists.infradead.org=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-X-Spam-Level:
-X-Spam-Status: No, score=-13.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH,
- DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,
- SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham
- autolearn_force=no version=3.4.0
-Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
- by smtp.lore.kernel.org (Postfix) with ESMTP id CC566C2D0A3
- for <linux-arm-kernel@archiver.kernel.org>;
- Sat, 24 Oct 2020 16:28:07 +0000 (UTC)
-Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPS id 60202207EA
- for <linux-arm-kernel@archiver.kernel.org>;
- Sat, 24 Oct 2020 16:28:07 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=lists.infradead.org
- header.i=@lists.infradead.org header.b="nB+rBlHu";
- dkim=fail reason="signature verification failed" (1024-bit key)
- header.d=kernel.org header.i=@kernel.org header.b="DHlQnsAd"
-DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 60202207EA
-Authentication-Results: mail.kernel.org;
- dmarc=fail (p=none dis=none) header.from=kernel.org
-Authentication-Results: mail.kernel.org;
- spf=none
- smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding:
- Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive:
- List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From:
- Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender
- :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner;
- bh=OQAfXg+dwClMrhJlHGAxvINAVvxnkK3jFnfmXtSe9Ok=; b=nB+rBlHukxcwr0n2UGiFacHpUA
- UkcWGuGDGkscpI4GeCtAhAh/Rbwyj3AsoKs/J+1yV7Q95QzXSxaRxH1mk+E6OR/Hmy9fBR2BHAtZ6
- UwpnmRx6N6bZ/iqTLyUinwUmiCkf18ZQ76vgaDbYnKNOMUKP32sPFUqGkjG0gi0yXqk5g2OuA0i4U
- p+FQpm4mzJjHTVuhXvtrk4P6AWuued/nCBNICGyGzVBI8TaRRpUFy160I+Gc0b1KZMqZXA5CKu6+P
- hokCD0NuXcaUuaQBXBa03+VXCzJJGeJ5GbPdnOcQ3Z9ycUF47oegJoGIHDo/Dkshm2eez/bQGcpMr
- uhbQK3gQ==;
-Received: from localhost ([::1] helo=merlin.infradead.org)
- by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWMN8-0003s2-IR; Sat, 24 Oct 2020 16:26:26 +0000
-Received: from mail.kernel.org ([198.145.29.99])
- by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWMMi-0003hu-PN
- for linux-arm-kernel@lists.infradead.org; Sat, 24 Oct 2020 16:26:03 +0000
-Received: from wens.tw (mirror2.csie.ntu.edu.tw [140.112.30.76])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPSA id 743E920A8B;
- Sat, 24 Oct 2020 16:25:58 +0000 (UTC)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
- s=default; t=1603556758;
- bh=HxvS3g0S2mjIzj0EuHVkbxHyM3oroosXZefPveoKsJc=;
- h=From:To:Cc:Subject:Date:From;
- b=DHlQnsAd/aNkXXgpD0wUoDjGpF5p3QcUqpruafu2PFBaUUkKN3Dj5dSSJTghbSbE+
- XX6T3q/QQGUrqJwV4qNXsspjEgZjp2xfyZglWMF1pK3N8+xqlgXVjx/AYLkT71ZDkk
- bAe3dofHBLaj6wLVvo12QfvzbfqkhYsDE19g3a8w=
-Received: by wens.tw (Postfix, from userid 1000)
- id 859865FDAF; Sun, 25 Oct 2020 00:25:46 +0800 (CST)
-From: Chen-Yu Tsai <wens@kernel.org>
-To: Maxime Ripard <mripard@kernel.org>,
- Jernej Skrabec <jernej.skrabec@siol.net>
-Subject: [PATCH 01/10] Revert "arm: sun8i: orangepi-pc-plus: Set EMAC activity
- LEDs to active high"
-Date: Sun, 25 Oct 2020 00:25:06 +0800
-Message-Id: <20201024162515.30032-1-wens@kernel.org>
-X-Mailer: git-send-email 2.28.0
-MIME-Version: 1.0
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20201024_122601_061577_B4AF79E6
-X-CRM114-Status: GOOD ( 12.90 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.29
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, linux-sunxi@googlegroups.com,
- Chen-Yu Tsai <wens@csie.org>, linux-arm-kernel@lists.infradead.org,
- linux-kernel@vger.kernel.org
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-
-From: Chen-Yu Tsai <wens@csie.org>
-
-This reverts commit 75ee680cbd2e4d0156b94f9fec50076361ab12f2.
-
-Turns out the activity and link LEDs on the RJ45 port are active low,
-just like on the Orange Pi PC.
-
-Revert the commit that says otherwise.
-
-Fixes: 75ee680cbd2e ("arm: sun8i: orangepi-pc-plus: Set EMAC activity LEDs to active high")
-Fixes: 4904337fe34f ("ARM: dts: sunxi: Restore EMAC changes (boards)")
-Signed-off-by: Chen-Yu Tsai <wens@csie.org>
-Tested-by: Jernej Skrabec <jernej.skrabec@siol.net>
-Acked-by: Jernej Skrabec <jernej.skrabec@siol.net>
----
-If you have this board, please help test it.
-
-For me, the correct lighting of the LEDs is both LEDs should be lit
-when connected at 100 Mbps.
----
- arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
-index 71fb73208939..babf4cf1b2f6 100644
---- a/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
-+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
-@@ -53,11 +53,6 @@ aliases {
- };
- };
-
--&emac {
-- /* LEDs changed to active high on the plus */
-- /delete-property/ allwinner,leds-active-low;
--};
--
- &mmc1 {
- vmmc-supply = <&reg_vcc3v3>;
- bus-width = <4>;
-
-From patchwork Sat Oct 24 16:25:07 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Chen-Yu Tsai <wens@kernel.org>
-X-Patchwork-Id: 11854899
-Return-Path:
- <SRS0=xcYM=D7=lists.infradead.org=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-X-Spam-Level:
-X-Spam-Status: No, score=-13.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH,
- DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,
- SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham
- autolearn_force=no version=3.4.0
-Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 7880FC5517A
- for <linux-arm-kernel@archiver.kernel.org>;
- Sat, 24 Oct 2020 16:27:51 +0000 (UTC)
-Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPS id 0CC6720897
- for <linux-arm-kernel@archiver.kernel.org>;
- Sat, 24 Oct 2020 16:27:51 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=lists.infradead.org
- header.i=@lists.infradead.org header.b="ny5+IeDK";
- dkim=fail reason="signature verification failed" (1024-bit key)
- header.d=kernel.org header.i=@kernel.org header.b="ddZn3Cc1"
-DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0CC6720897
-Authentication-Results: mail.kernel.org;
- dmarc=fail (p=none dis=none) header.from=kernel.org
-Authentication-Results: mail.kernel.org;
- spf=none
- smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding:
- Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive:
- List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date:
- Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date:
- Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner;
- bh=4D6Dfow5wnALgQYLllYxetgnALHnOU97zuFS9xb1iOs=; b=ny5+IeDKMWdjtIPAzUsPD7M37
- mPjUKF2zK/VOPw+nVMZx0s9iuzA3tojPYZgIEB+yVH7Z5H3BaOQdbKHV9sYOmdwDaH0GRFVV0tlMp
- uXhSICBXuyWa4EttDdg0JR6oM81MYiJ5W5WgzSI1niNK+Nr0zvucWpKmIbPCy8TG6GqcpQbo11A7F
- ZydcDeEw3QaMFis4VqeNVora5SMrhJWHDkva/1O8c9XTDlsGPq3IzL00U2RB5UwnczvL+KyNPMc+l
- G33npdfCpB2nO+KpLhOQVYyS16Py5XQP9C3uQxBKWs6/GDcO23jFgddWsTTBX9sUxoRrud121nO/T
- qeqOqGkkA==;
-Received: from localhost ([::1] helo=merlin.infradead.org)
- by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWMMv-0003nH-0m; Sat, 24 Oct 2020 16:26:13 +0000
-Received: from mail.kernel.org ([198.145.29.99])
- by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWMMi-0003iC-M1
- for linux-arm-kernel@lists.infradead.org; Sat, 24 Oct 2020 16:26:03 +0000
-Received: from wens.tw (mirror2.csie.ntu.edu.tw [140.112.30.76])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPSA id E8D8D223EA;
- Sat, 24 Oct 2020 16:25:58 +0000 (UTC)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
- s=default; t=1603556759;
- bh=hVhrnyJRoFFRvKhXTPrAWTqNjUzageDDweqJNvHZZ6M=;
- h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
- b=ddZn3Cc1XznkLiE+2H0RbNwkzS3sJKsJTyVAc6MhYYOrqvf3u8Hm4hoBUdnJKRjVs
- hWgQ65oI5yKgcr4o0NXqg3Dk8KIqFgY/VbyFVvFQKcFwqxk1lk2R1j4KJDW3wCoUs3
- vNOAny9fsefBHqk/qp4DPeSOWbn/2zYXDWkUWxOI=
-Received: by wens.tw (Postfix, from userid 1000)
- id 949435F9AC; Sun, 25 Oct 2020 00:25:46 +0800 (CST)
-From: Chen-Yu Tsai <wens@kernel.org>
-To: Maxime Ripard <mripard@kernel.org>,
- Jernej Skrabec <jernej.skrabec@siol.net>
-Subject: [PATCH 02/10] ARM: dts: sun6i: a31-hummingbird: Enable RGMII RX/TX
- delay on Ethernet PHY
-Date: Sun, 25 Oct 2020 00:25:07 +0800
-Message-Id: <20201024162515.30032-2-wens@kernel.org>
-X-Mailer: git-send-email 2.28.0
-In-Reply-To: <20201024162515.30032-1-wens@kernel.org>
-References: <20201024162515.30032-1-wens@kernel.org>
-MIME-Version: 1.0
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20201024_122601_020379_307C7D44
-X-CRM114-Status: GOOD ( 14.88 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.29
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, linux-sunxi@googlegroups.com,
- Chen-Yu Tsai <wens@csie.org>, linux-arm-kernel@lists.infradead.org,
- linux-kernel@vger.kernel.org
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-
-From: Chen-Yu Tsai <wens@csie.org>
-
-The Ethernet PHY on the A31 Hummingbird has the RX and TX delays
-enabled on the PHY, using pull-ups on the RXDLY and TXDLY pins.
-
-Fix the phy-mode description to correct reflect this so that the
-implementation doesn't reconfigure the delays incorrectly. This
-happened with commit bbc4d71d6354 ("net: phy: realtek: fix rtl8211e
-rx/tx delay config").
-
-Fixes: c220aec2bb79 ("ARM: dts: sun6i: Add Merrii A31 Hummingbird support")
-Signed-off-by: Chen-Yu Tsai <wens@csie.org>
-Acked-by: Jernej Skrabec <jernej.skrabec@siol.net>
----
- arch/arm/boot/dts/sun6i-a31-hummingbird.dts | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/boot/dts/sun6i-a31-hummingbird.dts b/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
-index 049e6ab3cf56..73de34ae37fd 100644
---- a/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
-+++ b/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
-@@ -154,7 +154,7 @@ &gmac {
- pinctrl-names = "default";
- pinctrl-0 = <&gmac_rgmii_pins>;
- phy-handle = <&phy1>;
-- phy-mode = "rgmii";
-+ phy-mode = "rgmii-id";
- status = "okay";
- };
-
-
-From patchwork Sat Oct 24 16:25:08 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 8bit
-X-Patchwork-Submitter: Chen-Yu Tsai <wens@kernel.org>
-X-Patchwork-Id: 11854895
-Return-Path:
- <SRS0=xcYM=D7=lists.infradead.org=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-X-Spam-Level:
-X-Spam-Status: No, score=-13.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH,
- DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,
- SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham
- autolearn_force=no version=3.4.0
-Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 28E03C55178
- for <linux-arm-kernel@archiver.kernel.org>;
- Sat, 24 Oct 2020 16:27:41 +0000 (UTC)
-Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPS id 96757207EA
- for <linux-arm-kernel@archiver.kernel.org>;
- Sat, 24 Oct 2020 16:27:40 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=lists.infradead.org
- header.i=@lists.infradead.org header.b="G8j/gn65";
- dkim=fail reason="signature verification failed" (1024-bit key)
- header.d=kernel.org header.i=@kernel.org header.b="nSqkQEip"
-DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 96757207EA
-Authentication-Results: mail.kernel.org;
- dmarc=fail (p=none dis=none) header.from=kernel.org
-Authentication-Results: mail.kernel.org;
- spf=none
- smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding:
- Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive:
- List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date:
- Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date:
- Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner;
- bh=GA1cAMniiTVzjWBLrs6X66M2xH+3uhtbFCU0u9nIlz4=; b=G8j/gn65yJ2ykHAPrqsZwzS/W
- 00AaVkJRK9GiyRFGmwtgtvnp7V3Fb8xGEXE8GyQjYbTUKWH9o8gt5jLya9+OST8ydL+yfjD6mCQPk
- awCn4FKvgfZW4tESJNRayzuaQHKB//0hkdzU8kheIUNvdNp2VwOGknN4dep1S96+7h48XBIph9HDy
- roMRKw8Rn5Ble+U5KCzNXljmh+mUMZgcqri//3IJB5hqN12GV/rXJAUMGfZ3ZUdyEdsDEJEkqHpz3
- /Nk0dI7s8kh5Hh27MUVGVZby6YH6HOK/iipnLp2c5FcXjbFfuwBdnL0hqwkYf4lUGIy+7Yo49moAB
- W3bEvJULQ==;
-Received: from localhost ([::1] helo=merlin.infradead.org)
- by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWMMp-0003ls-Cw; Sat, 24 Oct 2020 16:26:07 +0000
-Received: from mail.kernel.org ([198.145.29.99])
- by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWMMi-0003hx-MO
- for linux-arm-kernel@lists.infradead.org; Sat, 24 Oct 2020 16:26:01 +0000
-Received: from wens.tw (mirror2.csie.ntu.edu.tw [140.112.30.76])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPSA id 81AE522263;
- Sat, 24 Oct 2020 16:25:58 +0000 (UTC)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
- s=default; t=1603556758;
- bh=VaBYEX3er/VQuzqeJ753kJQXjF4NtlJ/dqxScFmrgI8=;
- h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
- b=nSqkQEipNRHBYUCaKyi1QdRNH3oImRYXxF4V59DnQJJbAVpKdBvIN/cHP0Mhr4MnD
- EzYxrmQXpQul2zODplWwdtVbaCQgTAIjGv3CXz+YW0h3Ydjt179EdsGxB8DO6zrAKX
- tA5vNW9YGl9kJGqpNz10FPPtmYwnXzHYSfz9alLs=
-Received: by wens.tw (Postfix, from userid 1000)
- id 9A0245FD7D; Sun, 25 Oct 2020 00:25:46 +0800 (CST)
-From: Chen-Yu Tsai <wens@kernel.org>
-To: Maxime Ripard <mripard@kernel.org>,
- Jernej Skrabec <jernej.skrabec@siol.net>
-Subject: [PATCH 03/10] ARM: dts: sun7i: cubietruck: Enable RGMII RX/TX delay
- on Ethernet PHY
-Date: Sun, 25 Oct 2020 00:25:08 +0800
-Message-Id: <20201024162515.30032-3-wens@kernel.org>
-X-Mailer: git-send-email 2.28.0
-In-Reply-To: <20201024162515.30032-1-wens@kernel.org>
-References: <20201024162515.30032-1-wens@kernel.org>
-MIME-Version: 1.0
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20201024_122600_915809_4031B91A
-X-CRM114-Status: GOOD ( 14.95 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.29
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, linux-sunxi@googlegroups.com,
- Chen-Yu Tsai <wens@csie.org>, linux-arm-kernel@lists.infradead.org,
- linux-kernel@vger.kernel.org
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-
-From: Chen-Yu Tsai <wens@csie.org>
-
-The Ethernet PHY on the Cubietruck has the RX and TX delays
-enabled on the PHY, using pull-ups on the RXDLY and TXDLY pins.
-
-Fix the phy-mode description to correct reflect this so that the
-implementation doesn't reconfigure the delays incorrectly. This
-happened with commit bbc4d71d6354 ("net: phy: realtek: fix rtl8211e
-rx/tx delay config").
-
-Fixes: 67073d97672d ("ARM: dts: sun7i: cubietruck: Enable the GMAC")
-Signed-off-by: Chen-Yu Tsai <wens@csie.org>
-Reviewed-by: Emilio López <emilio@elopez.com.ar>
-Tested-by: Emilio López <emilio@elopez.com.ar>
----
- arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
-index 8c8dee6ea461..9109ca0919ad 100644
---- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
-+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
-@@ -151,7 +151,7 @@ &gmac {
- pinctrl-names = "default";
- pinctrl-0 = <&gmac_rgmii_pins>;
- phy-handle = <&phy1>;
-- phy-mode = "rgmii";
-+ phy-mode = "rgmii-id";
- status = "okay";
- };
-
-
-From patchwork Sat Oct 24 16:25:09 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Chen-Yu Tsai <wens@kernel.org>
-X-Patchwork-Id: 11854897
-Return-Path:
- <SRS0=xcYM=D7=lists.infradead.org=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-X-Spam-Level:
-X-Spam-Status: No, score=-13.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH,
- DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,
- SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham
- autolearn_force=no version=3.4.0
-Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 57C11C2D0A3
- for <linux-arm-kernel@archiver.kernel.org>;
- Sat, 24 Oct 2020 16:27:39 +0000 (UTC)
-Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPS id C18BC20A8B
- for <linux-arm-kernel@archiver.kernel.org>;
- Sat, 24 Oct 2020 16:27:38 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=lists.infradead.org
- header.i=@lists.infradead.org header.b="3OnwXFyN";
- dkim=fail reason="signature verification failed" (1024-bit key)
- header.d=kernel.org header.i=@kernel.org header.b="2oNXXg64"
-DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C18BC20A8B
-Authentication-Results: mail.kernel.org;
- dmarc=fail (p=none dis=none) header.from=kernel.org
-Authentication-Results: mail.kernel.org;
- spf=none
- smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding:
- Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive:
- List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date:
- Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date:
- Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner;
- bh=7B62u+lr7L0EkQ9E3ff8MXQtAGl6+vQWQjv+3Pv/+vQ=; b=3OnwXFyNMN+7PF7BmmHK1Khwy
- gOf7KuO2lZAxtygg8LZd0fXG1vM44OtC7eVAUonS04TUQShXVj1REvVShZ0U1HYQZK3bK4cMBXaTF
- Nx0HDtQ9rvpmzCdzWd6nZAcgqsA4dDry/bW0VmyaxJBuYABQonX6kLkc/qyYCWlzoFAJBPwracI4E
- SqBAKhieae+AnwZlr1VWLOPkQfU8vNZglpuTkYClzAwLcxbbUTgaqBgmgi2O4iUOivxtfkGTxxLv3
- 1PjFYvDtg5m5quRroW6jdykXhNgURY7M8Ac7bQDlCLCUjiLV9yibeJQDfY3+wBRuuHDxEy4BLo6rv
- Kb046lBMQ==;
-Received: from localhost ([::1] helo=merlin.infradead.org)
- by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWMMn-0003lL-FU; Sat, 24 Oct 2020 16:26:05 +0000
-Received: from mail.kernel.org ([198.145.29.99])
- by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWMMi-0003hw-LE
- for linux-arm-kernel@lists.infradead.org; Sat, 24 Oct 2020 16:26:01 +0000
-Received: from wens.tw (mirror2.csie.ntu.edu.tw [140.112.30.76])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPSA id 7AE102225F;
- Sat, 24 Oct 2020 16:25:58 +0000 (UTC)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
- s=default; t=1603556758;
- bh=VGOq5hjYah4TRO7kF3h5ip33hBAACBFqbRqzRWwBjWc=;
- h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
- b=2oNXXg64EVBeQiiD7/lUclSzpODCOwB2mn9gijGF+kW73UQ/jl5VX8dxtzIq6xKY+
- nAe/eGEelBsjtVApQP+485HHPDix5czv6kjhPg5b0dwGIG+q7S8YHags42k4y96KK/
- idTKp3R2Xjdz8qiF8++0npBlIjc+HGMINSLsJ/xQ=
-Received: by wens.tw (Postfix, from userid 1000)
- id A8C0B5FDC0; Sun, 25 Oct 2020 00:25:46 +0800 (CST)
-From: Chen-Yu Tsai <wens@kernel.org>
-To: Maxime Ripard <mripard@kernel.org>,
- Jernej Skrabec <jernej.skrabec@siol.net>
-Subject: [PATCH 04/10] ARM: dts: sun7i: bananapi-m1-plus: Enable RGMII RX/TX
- delay on Ethernet PHY
-Date: Sun, 25 Oct 2020 00:25:09 +0800
-Message-Id: <20201024162515.30032-4-wens@kernel.org>
-X-Mailer: git-send-email 2.28.0
-In-Reply-To: <20201024162515.30032-1-wens@kernel.org>
-References: <20201024162515.30032-1-wens@kernel.org>
-MIME-Version: 1.0
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20201024_122600_779884_0B98E0C3
-X-CRM114-Status: GOOD ( 15.00 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.29
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, linux-sunxi@googlegroups.com,
- Chen-Yu Tsai <wens@csie.org>, linux-arm-kernel@lists.infradead.org,
- linux-kernel@vger.kernel.org
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-
-From: Chen-Yu Tsai <wens@csie.org>
-
-The Ethernet PHY on the Bananapi M1+ has the RX and TX delays
-enabled on the PHY, using pull-ups on the RXDLY and TXDLY pins.
-
-Fix the phy-mode description to correct reflect this so that the
-implementation doesn't reconfigure the delays incorrectly. This
-happened with commit bbc4d71d6354 ("net: phy: realtek: fix rtl8211e
-rx/tx delay config").
-
-Fixes: 04c85ecad32a ("ARM: dts: sun7i: Add dts file for Bananapi M1 Plus board")
-Signed-off-by: Chen-Yu Tsai <wens@csie.org>
-Acked-by: Jernej Skrabec <jernej.skrabec@siol.net>
----
- arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts b/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
-index 32d5d45a35c0..8945dbb114a2 100644
---- a/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
-+++ b/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
-@@ -130,7 +130,7 @@ &gmac {
- pinctrl-names = "default";
- pinctrl-0 = <&gmac_rgmii_pins>;
- phy-handle = <&phy1>;
-- phy-mode = "rgmii";
-+ phy-mode = "rgmii-id";
- phy-supply = <&reg_gmac_3v3>;
- status = "okay";
- };
-
-From patchwork Sat Oct 24 16:25:10 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Chen-Yu Tsai <wens@kernel.org>
-X-Patchwork-Id: 11854905
-Return-Path:
- <SRS0=xcYM=D7=lists.infradead.org=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-X-Spam-Level:
-X-Spam-Status: No, score=-13.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH,
- DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,
- SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham
- autolearn_force=no version=3.4.0
-Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 0D0B1C2D0A3
- for <linux-arm-kernel@archiver.kernel.org>;
- Sat, 24 Oct 2020 16:28:20 +0000 (UTC)
-Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPS id 9AA5220897
- for <linux-arm-kernel@archiver.kernel.org>;
- Sat, 24 Oct 2020 16:28:19 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=lists.infradead.org
- header.i=@lists.infradead.org header.b="Tj5E+voP";
- dkim=fail reason="signature verification failed" (1024-bit key)
- header.d=kernel.org header.i=@kernel.org header.b="gqmYOsSX"
-DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9AA5220897
-Authentication-Results: mail.kernel.org;
- dmarc=fail (p=none dis=none) header.from=kernel.org
-Authentication-Results: mail.kernel.org;
- spf=none
- smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding:
- Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive:
- List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date:
- Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date:
- Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner;
- bh=UktakboKMGgbQOynPRy5rt5GvkrVmCoZel8XA68ute4=; b=Tj5E+voPftqtb2i1gA88aWojS
- SUeIWGFH/cqXjMmFGxfdPgCYmIsjrw8BdOhgv0mqaFpeem1lA6UA0ss3ihxVpxduh2xJ8YiNDok59
- qImfY1ATgM3iGhVKkw1n8CB7QFFv3gw4SZN8TsyQL14tH/UFPlZKuLvPx1rvvtL4Sg3EkSyxQAtPx
- BFfCfLGBDDa/Eqz6A01Vaz3gsPfhbbHN61tALwxJk0WaANOP9K+6hbnAKEJMYHR0teeC7xln+QD1v
- 7VUcaLLqhoHZA/Mzyazvsk911YNr1Jemy3UNfH7TgLS+/O3llao/M4vRgoCmiM/NkcjJmDoIxRF82
- SK8wX6ZBw==;
-Received: from localhost ([::1] helo=merlin.infradead.org)
- by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWMNK-0003vW-Sw; Sat, 24 Oct 2020 16:26:38 +0000
-Received: from mail.kernel.org ([198.145.29.99])
- by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWMMi-0003hy-Lc
- for linux-arm-kernel@lists.infradead.org; Sat, 24 Oct 2020 16:26:03 +0000
-Received: from wens.tw (mirror2.csie.ntu.edu.tw [140.112.30.76])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPSA id 8D65F2226B;
- Sat, 24 Oct 2020 16:25:58 +0000 (UTC)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
- s=default; t=1603556758;
- bh=KIwAKXdLj3a5BWgXyWItu2feZ52vZSa+S5FxpjArwBw=;
- h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
- b=gqmYOsSXtL9SDrwjJwxsH2Gf0DAsJ7Ce/ZlLTEV0l8/qMBxFEBz9Bs8k4aScrhFlK
- kt7EI8SObDN+JWYtILaYHqFN3PC28PfK3S/4roc2FMeIfAgh9DICAlN7d/4+g7WdRU
- T3yUuWETvcPMMHlBAZz7y0dINK4F4sBA9ZacYHLg=
-Received: by wens.tw (Postfix, from userid 1000)
- id C3A9D5FEF3; Sun, 25 Oct 2020 00:25:46 +0800 (CST)
-From: Chen-Yu Tsai <wens@kernel.org>
-To: Maxime Ripard <mripard@kernel.org>,
- Jernej Skrabec <jernej.skrabec@siol.net>
-Subject: [PATCH 05/10] ARM: dts: sun8i: h3: orangepi-plus2e: Enable RGMII
- RX/TX delay on Ethernet PHY
-Date: Sun, 25 Oct 2020 00:25:10 +0800
-Message-Id: <20201024162515.30032-5-wens@kernel.org>
-X-Mailer: git-send-email 2.28.0
-In-Reply-To: <20201024162515.30032-1-wens@kernel.org>
-References: <20201024162515.30032-1-wens@kernel.org>
-MIME-Version: 1.0
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20201024_122601_024346_F87C5C45
-X-CRM114-Status: GOOD ( 15.45 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.29
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, linux-sunxi@googlegroups.com,
- Chen-Yu Tsai <wens@csie.org>, linux-arm-kernel@lists.infradead.org,
- linux-kernel@vger.kernel.org
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-
-From: Chen-Yu Tsai <wens@csie.org>
-
-The Ethernet PHY on the Orange Pi Plus 2E has the RX and TX delays
-enabled on the PHY, using pull-ups on the RXDLY and TXDLY pins.
-
-Fix the phy-mode description to correct reflect this so that the
-implementation doesn't reconfigure the delays incorrectly. This
-happened with commit bbc4d71d6354 ("net: phy: realtek: fix rtl8211e
-rx/tx delay config").
-
-Fixes: 4904337fe34f ("ARM: dts: sunxi: Restore EMAC changes (boards)")
-Fixes: 7a78ef92cdc5 ("ARM: sun8i: h3: Enable EMAC with external PHY on Orange Pi Plus 2E")
-Signed-off-by: Chen-Yu Tsai <wens@csie.org>
-Tested-by: Jernej Skrabec <jernej.skrabec@siol.net>
-Acked-by: Jernej Skrabec <jernej.skrabec@siol.net>
----
- arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts
-index 6dbf7b2e0c13..b6ca45d18e51 100644
---- a/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts
-+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts
-@@ -67,7 +67,7 @@ &emac {
- pinctrl-0 = <&emac_rgmii_pins>;
- phy-supply = <&reg_gmac_3v3>;
- phy-handle = <&ext_rgmii_phy>;
-- phy-mode = "rgmii";
-+ phy-mode = "rgmii-id";
- status = "okay";
- };
-
-
-From patchwork Sat Oct 24 16:25:11 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Chen-Yu Tsai <wens@kernel.org>
-X-Patchwork-Id: 11854913
-Return-Path:
- <SRS0=xcYM=D7=lists.infradead.org=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-X-Spam-Level:
-X-Spam-Status: No, score=-13.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH,
- DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,
- SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham
- autolearn_force=no version=3.4.0
-Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 9C984C55178
- for <linux-arm-kernel@archiver.kernel.org>;
- Sat, 24 Oct 2020 16:29:12 +0000 (UTC)
-Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPS id 425F722263
- for <linux-arm-kernel@archiver.kernel.org>;
- Sat, 24 Oct 2020 16:29:12 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=lists.infradead.org
- header.i=@lists.infradead.org header.b="ZpJO7cJI";
- dkim=fail reason="signature verification failed" (1024-bit key)
- header.d=kernel.org header.i=@kernel.org header.b="r2rAd+2d"
-DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 425F722263
-Authentication-Results: mail.kernel.org;
- dmarc=fail (p=none dis=none) header.from=kernel.org
-Authentication-Results: mail.kernel.org;
- spf=none
- smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding:
- Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive:
- List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date:
- Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date:
- Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner;
- bh=OErx1DG4ZtM1sSqCdb147Z+0rhtZDX6xw5PxIj7AVQA=; b=ZpJO7cJIRJV5Ui3TtLjIC36F8
- 5VKv0SXuV4Cy8MkS76tPfG4GduUjK5fhx9XldWNmNeDisos3XucvD29rTS4L4SzETeSevVQa7w5E7
- ssmJcNfT+RFzAJXZX1AJsuoP/ZEsUN0s8y/hMAjOa0Mv4bOVGZPGEsraClCF6scb1q4nT+XXandmH
- B4SPjvm2s70+IFfFMhRmpdAyl5Vu66T32Yi00prTaPJjH2cTN7V1tEuRAu3PhzM+l29GEiQAKmAsS
- CSIaDobWrqKDaL2iH81iQ5w5gJSB9bfjjn33G1pztkR/Ig/YQuT0z4CCPiAI1sA1BqjEd23gZHFfC
- nQrynbMjA==;
-Received: from localhost ([::1] helo=merlin.infradead.org)
- by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWMOH-0004IK-IS; Sat, 24 Oct 2020 16:27:37 +0000
-Received: from mail.kernel.org ([198.145.29.99])
- by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWMMt-0003nF-DW
- for linux-arm-kernel@lists.infradead.org; Sat, 24 Oct 2020 16:26:15 +0000
-Received: from wens.tw (mirror2.csie.ntu.edu.tw [140.112.30.76])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPSA id A9820222BA;
- Sat, 24 Oct 2020 16:26:10 +0000 (UTC)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
- s=default; t=1603556770;
- bh=b33mSnzA5/E4PKY2LtTydWNfdZgZQ2kOjj46gwVlpUI=;
- h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
- b=r2rAd+2dgtHFmRk95dg4p1pCHnBfEHPb5ZFOLnaGqtzdAGEj2PKcpqcdqPETQdOfG
- aeCiEIoEfuPEFBksfdfCA4oTUxG6BhRgSIpIdvQpJcuN4LLIsA6+yargN1AZKC1NKz
- 3QbChcHh+EVpbXDKkSvtY79bqlC+KO6AHrpPVLko=
-Received: by wens.tw (Postfix, from userid 1000)
- id E10BD60223; Sun, 25 Oct 2020 00:25:46 +0800 (CST)
-From: Chen-Yu Tsai <wens@kernel.org>
-To: Maxime Ripard <mripard@kernel.org>,
- Jernej Skrabec <jernej.skrabec@siol.net>
-Subject: [PATCH 06/10] ARM: dts: sun8i: a83t: Enable both RGMII RX/TX delay on
- Ethernet PHY
-Date: Sun, 25 Oct 2020 00:25:11 +0800
-Message-Id: <20201024162515.30032-6-wens@kernel.org>
-X-Mailer: git-send-email 2.28.0
-In-Reply-To: <20201024162515.30032-1-wens@kernel.org>
-References: <20201024162515.30032-1-wens@kernel.org>
-MIME-Version: 1.0
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20201024_122611_860914_5D9ABF03
-X-CRM114-Status: GOOD ( 15.09 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.29
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, linux-sunxi@googlegroups.com,
- Chen-Yu Tsai <wens@csie.org>, linux-arm-kernel@lists.infradead.org,
- linux-kernel@vger.kernel.org
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-
-From: Chen-Yu Tsai <wens@csie.org>
-
-The Ethernet PHY on the Bananapi M3 and Cubietruck Plus have the RX
-and TX delays enabled on the PHY, using pull-ups on the RXDLY and
-TXDLY pins.
-
-Fix the phy-mode description to correct reflect this so that the
-implementation doesn't reconfigure the delays incorrectly. This
-happened with commit bbc4d71d6354 ("net: phy: realtek: fix rtl8211e
-rx/tx delay config").
-
-Fixes: 039359948a4b ("ARM: dts: sun8i: a83t: Enable Ethernet on two boards")
-Signed-off-by: Chen-Yu Tsai <wens@csie.org>
-Acked-by: Jernej Skrabec <jernej.skrabec@siol.net>
----
- arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts | 2 +-
- arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts b/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts
-index 9d34eabba121..431f70234d36 100644
---- a/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts
-+++ b/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts
-@@ -131,7 +131,7 @@ &emac {
- pinctrl-0 = <&emac_rgmii_pins>;
- phy-supply = <&reg_sw>;
- phy-handle = <&rgmii_phy>;
-- phy-mode = "rgmii";
-+ phy-mode = "rgmii-id";
- allwinner,rx-delay-ps = <700>;
- allwinner,tx-delay-ps = <700>;
- status = "okay";
-diff --git a/arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts b/arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts
-index d9be511f054f..d8326a5c681d 100644
---- a/arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts
-+++ b/arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts
-@@ -183,7 +183,7 @@ &emac {
- pinctrl-0 = <&emac_rgmii_pins>;
- phy-supply = <&reg_dldo4>;
- phy-handle = <&rgmii_phy>;
-- phy-mode = "rgmii";
-+ phy-mode = "rgmii-id";
- status = "okay";
- };
-
-
-From patchwork Sat Oct 24 16:25:12 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Chen-Yu Tsai <wens@kernel.org>
-X-Patchwork-Id: 11854911
-Return-Path:
- <SRS0=xcYM=D7=lists.infradead.org=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-X-Spam-Level:
-X-Spam-Status: No, score=-13.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH,
- DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,
- SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham
- autolearn_force=no version=3.4.0
-Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 35FC7C55178
- for <linux-arm-kernel@archiver.kernel.org>;
- Sat, 24 Oct 2020 16:28:58 +0000 (UTC)
-Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPS id D89A922263
- for <linux-arm-kernel@archiver.kernel.org>;
- Sat, 24 Oct 2020 16:28:57 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=lists.infradead.org
- header.i=@lists.infradead.org header.b="rgInazFI";
- dkim=fail reason="signature verification failed" (1024-bit key)
- header.d=kernel.org header.i=@kernel.org header.b="KMectys8"
-DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D89A922263
-Authentication-Results: mail.kernel.org;
- dmarc=fail (p=none dis=none) header.from=kernel.org
-Authentication-Results: mail.kernel.org;
- spf=none
- smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding:
- Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive:
- List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date:
- Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date:
- Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner;
- bh=qStB+/tySuwZm9yLMq1gRZNUUh8+/ORHrI/Elz8zlh8=; b=rgInazFIUf4xOuIBpakV0R6Q/
- 9pmr6nJU89Amdw3U9NYNwqe3euUdYPLL0XTpbUtBWzAkJ/5LpKX+jlA7T9t2SXC2m7J7OleGn2Eb5
- WUYkl7TlleD+22PpjV06tWgQXV62lTIX6856XmOgwhS6HjtZFaTSSPb/0CVDiwS7lM9xpHem0u4MI
- 3pvJ+Nry4iD1iT6vz5rOng00m8A1iv+UvlR5JZP5Akeq0hxMpHifbtYWd+Xqdl7yPlGS/vTuiQ/6U
- gJMWOmFrNS8ZMN68gwPkExXMRIIBnrJdiSdphfbVa/GZl0krfIIdeWM5Wk64vnX1jTkPNq1PfM2nC
- RcHSJx40g==;
-Received: from localhost ([::1] helo=merlin.infradead.org)
- by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWMOC-0004EX-2R; Sat, 24 Oct 2020 16:27:32 +0000
-Received: from mail.kernel.org ([198.145.29.99])
- by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWMMt-0003nJ-Gq
- for linux-arm-kernel@lists.infradead.org; Sat, 24 Oct 2020 16:26:16 +0000
-Received: from wens.tw (mirror2.csie.ntu.edu.tw [140.112.30.76])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPSA id C3C29223EA;
- Sat, 24 Oct 2020 16:26:10 +0000 (UTC)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
- s=default; t=1603556770;
- bh=exlq22lB2jCN3FykJN2ZZhvgbFVlODxJ/nUS036IGvY=;
- h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
- b=KMectys8lMcr8lO7+LYN/jg3t0/dOuIP6FtU0Xq8/6Wb+mVe37optZzUOG8nd5gyM
- CP7cyt91jBKMTdHnRIYYe44lVm6Yqi82Urnxu3yLY7vzyGOAU5npPLnAP+rY+IzSjL
- WGlfYEbIbvGnOyODPCTdYvIfRjPzQK7dRSSSlH2g=
-Received: by wens.tw (Postfix, from userid 1000)
- id EC637602B0; Sun, 25 Oct 2020 00:25:46 +0800 (CST)
-From: Chen-Yu Tsai <wens@kernel.org>
-To: Maxime Ripard <mripard@kernel.org>,
- Jernej Skrabec <jernej.skrabec@siol.net>
-Subject: [PATCH 07/10] ARM: dts: sun9i: Enable both RGMII RX/TX delay on
- Ethernet PHY
-Date: Sun, 25 Oct 2020 00:25:12 +0800
-Message-Id: <20201024162515.30032-7-wens@kernel.org>
-X-Mailer: git-send-email 2.28.0
-In-Reply-To: <20201024162515.30032-1-wens@kernel.org>
-References: <20201024162515.30032-1-wens@kernel.org>
-MIME-Version: 1.0
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20201024_122611_877987_BB5582B3
-X-CRM114-Status: GOOD ( 14.52 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.29
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, linux-sunxi@googlegroups.com,
- Chen-Yu Tsai <wens@csie.org>, linux-arm-kernel@lists.infradead.org,
- linux-kernel@vger.kernel.org
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-
-From: Chen-Yu Tsai <wens@csie.org>
-
-The Ethernet PHY on the Cubieboard 4 and A80 Optimus have the RX
-and TX delays enabled on the PHY, using pull-ups on the RXDLY and
-TXDLY pins.
-
-Fix the phy-mode description to correct reflect this so that the
-implementation doesn't reconfigure the delays incorrectly. This
-happened with commit bbc4d71d6354 ("net: phy: realtek: fix rtl8211e
-rx/tx delay config").
-
-Fixes: 98048143b7f8 ("ARM: dts: sun9i: cubieboard4: Enable GMAC")
-Fixes: bc9bd03a44f9 ("ARM: dts: sun9i: a80-optimus: Enable GMAC")
-Signed-off-by: Chen-Yu Tsai <wens@csie.org>
-Acked-by: Jernej Skrabec <jernej.skrabec@siol.net>
----
- arch/arm/boot/dts/sun9i-a80-cubieboard4.dts | 2 +-
- arch/arm/boot/dts/sun9i-a80-optimus.dts | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
-index d3b337b043a1..484b93df20cb 100644
---- a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
-+++ b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
-@@ -129,7 +129,7 @@ &gmac {
- pinctrl-names = "default";
- pinctrl-0 = <&gmac_rgmii_pins>;
- phy-handle = <&phy1>;
-- phy-mode = "rgmii";
-+ phy-mode = "rgmii-id";
- phy-supply = <&reg_cldo1>;
- status = "okay";
- };
-diff --git a/arch/arm/boot/dts/sun9i-a80-optimus.dts b/arch/arm/boot/dts/sun9i-a80-optimus.dts
-index bbc6335e5631..5c3580d712e4 100644
---- a/arch/arm/boot/dts/sun9i-a80-optimus.dts
-+++ b/arch/arm/boot/dts/sun9i-a80-optimus.dts
-@@ -124,7 +124,7 @@ &gmac {
- pinctrl-names = "default";
- pinctrl-0 = <&gmac_rgmii_pins>;
- phy-handle = <&phy1>;
-- phy-mode = "rgmii";
-+ phy-mode = "rgmii-id";
- phy-supply = <&reg_cldo1>;
- status = "okay";
- };
-
-From patchwork Sat Oct 24 16:25:13 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Chen-Yu Tsai <wens@kernel.org>
-X-Patchwork-Id: 11854909
-Return-Path:
- <SRS0=xcYM=D7=lists.infradead.org=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-X-Spam-Level:
-X-Spam-Status: No, score=-13.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH,
- DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,
- SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham
- autolearn_force=no version=3.4.0
-Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
- by smtp.lore.kernel.org (Postfix) with ESMTP id E0083C2D0A3
- for <linux-arm-kernel@archiver.kernel.org>;
- Sat, 24 Oct 2020 16:28:53 +0000 (UTC)
-Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPS id 8714A22263
- for <linux-arm-kernel@archiver.kernel.org>;
- Sat, 24 Oct 2020 16:28:53 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=lists.infradead.org
- header.i=@lists.infradead.org header.b="qVpZygDZ";
- dkim=fail reason="signature verification failed" (1024-bit key)
- header.d=kernel.org header.i=@kernel.org header.b="zWKrT6R3"
-DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8714A22263
-Authentication-Results: mail.kernel.org;
- dmarc=fail (p=none dis=none) header.from=kernel.org
-Authentication-Results: mail.kernel.org;
- spf=none
- smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding:
- Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive:
- List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date:
- Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date:
- Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner;
- bh=x5dBGAt+iGGRLrqa3XtYX3MzFNRXRpNH/fpX7jcE1Uw=; b=qVpZygDZEfKnVr95bZODmWNsX
- kc9yG+DpEHuAbKxyhD/LQIWm8KLqw8gj471mwUjkkb+a6M8kTzAQqwv+f90e4CZnPAQ2CUnTBJJF8
- QG9bmkPQHstXjPEwJZn44ktwa/kHKBIYZUDGl0ZZLaZrJH2apzv8GIcx76M3wTmZ4Fa7qvIkYs46m
- xPbIr8sCvCdnh3oA2iKr2xcnNBZkxz9p0DExsm5hf95p5RVY5nSut7pdkLlUoGgL+Dag3dhg7TDmO
- ZcR59Ih0a+q0BCW/Fp33XIlJMX68aU9vY5HsBvRAq0uhs9MRp9/SEz0FyXC9g8R2jyqQzFaiw0vA7
- cm5ekGflw==;
-Received: from localhost ([::1] helo=merlin.infradead.org)
- by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWMNw-000459-Eg; Sat, 24 Oct 2020 16:27:16 +0000
-Received: from mail.kernel.org ([198.145.29.99])
- by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWMMt-0003nD-DS
- for linux-arm-kernel@lists.infradead.org; Sat, 24 Oct 2020 16:26:13 +0000
-Received: from wens.tw (mirror2.csie.ntu.edu.tw [140.112.30.76])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPSA id A17EA2226B;
- Sat, 24 Oct 2020 16:26:10 +0000 (UTC)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
- s=default; t=1603556770;
- bh=H279X0AxzPH1W9ziRhSoDhGJV5nVuqEtyBHwqaF/Wd8=;
- h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
- b=zWKrT6R3iyfeS+IfjkalIiUYp0vLbBNh+vqz+Edt4YsERPJqZ4B6bbcqX8v13Yizn
- xAQtDbblGYQWYejaLegQ/uFsNR6j8tc9SxZ8aiHAq39Dz9Axw0ZqJ3Ft/pI5wFjvrr
- +a/8I7q99y9qvqJwa6lQ60vBvZ0i4S8IQ7xXpw7A=
-Received: by wens.tw (Postfix, from userid 1000)
- id 03596602ED; Sun, 25 Oct 2020 00:25:46 +0800 (CST)
-From: Chen-Yu Tsai <wens@kernel.org>
-To: Maxime Ripard <mripard@kernel.org>,
- Jernej Skrabec <jernej.skrabec@siol.net>
-Subject: [PATCH 08/10] ARM: dts: sunxi: bananapi-m2-plus: Enable RGMII RX/TX
- delay on Ethernet PHY
-Date: Sun, 25 Oct 2020 00:25:13 +0800
-Message-Id: <20201024162515.30032-8-wens@kernel.org>
-X-Mailer: git-send-email 2.28.0
-In-Reply-To: <20201024162515.30032-1-wens@kernel.org>
-References: <20201024162515.30032-1-wens@kernel.org>
-MIME-Version: 1.0
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20201024_122611_738139_0864F717
-X-CRM114-Status: GOOD ( 15.50 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.29
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, linux-sunxi@googlegroups.com,
- Chen-Yu Tsai <wens@csie.org>, linux-arm-kernel@lists.infradead.org,
- linux-kernel@vger.kernel.org
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-
-From: Chen-Yu Tsai <wens@csie.org>
-
-The Ethernet PHY on the Bananapi M2+ has the RX and TX delays
-enabled on the PHY, using pull-ups on the RXDLY and TXDLY pins.
-
-Fix the phy-mode description to correct reflect this so that the
-implementation doesn't reconfigure the delays incorrectly. This
-happened with commit bbc4d71d6354 ("net: phy: realtek: fix rtl8211e
-rx/tx delay config").
-
-Fixes: 8c7ba536e709 ("ARM: sun8i: bananapi-m2-plus: Enable dwmac-sun8i")
-Fixes: 4904337fe34f ("ARM: dts: sunxi: Restore EMAC changes (boards)")
-Fixes: aa8fee415f46 ("ARM: dts: sun8i: h3: Split out non-SoC-specific parts of Bananapi M2 Plus")
-Signed-off-by: Chen-Yu Tsai <wens@csie.org>
-Tested-by: Jernej Skrabec <jernej.skrabec@siol.net>
-Acked-by: Jernej Skrabec <jernej.skrabec@siol.net>
----
- arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi b/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi
-index 39263e74fbb5..8e5cb3b3fd68 100644
---- a/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi
-+++ b/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi
-@@ -126,7 +126,7 @@ &emac {
- pinctrl-0 = <&emac_rgmii_pins>;
- phy-supply = <&reg_gmac_3v3>;
- phy-handle = <&ext_rgmii_phy>;
-- phy-mode = "rgmii";
-+ phy-mode = "rgmii-id";
-
- status = "okay";
- };
-
-From patchwork Sat Oct 24 16:25:14 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Chen-Yu Tsai <wens@kernel.org>
-X-Patchwork-Id: 11854907
-Return-Path:
- <SRS0=xcYM=D7=lists.infradead.org=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-X-Spam-Level:
-X-Spam-Status: No, score=-13.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH,
- DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,
- SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham
- autolearn_force=no version=3.4.0
-Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 50558C2D0A3
- for <linux-arm-kernel@archiver.kernel.org>;
- Sat, 24 Oct 2020 16:28:57 +0000 (UTC)
-Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPS id E7D0822263
- for <linux-arm-kernel@archiver.kernel.org>;
- Sat, 24 Oct 2020 16:28:56 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=lists.infradead.org
- header.i=@lists.infradead.org header.b="1bBq/cCv";
- dkim=fail reason="signature verification failed" (1024-bit key)
- header.d=kernel.org header.i=@kernel.org header.b="NpIO9Jz4"
-DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E7D0822263
-Authentication-Results: mail.kernel.org;
- dmarc=fail (p=none dis=none) header.from=kernel.org
-Authentication-Results: mail.kernel.org;
- spf=none
- smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding:
- Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive:
- List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date:
- Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date:
- Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner;
- bh=vBSeY31U9oANVtHUrewmx08bkMPFxXZYojB0hhe9+8s=; b=1bBq/cCvUDqfSAclCvigDnIVa
- So8Sf1fmui9xb8F/qw/rkx4DIU6e5DqtWbWx50en5YDls9CV7mIZIn7ZLvHTSIQN0qbeK7V56U2m9
- EN/bbFuddMZ78Z5zvTTMCU5xRr42Eh6V2UmY4H8y5DwZJSQD39ZZfIT+R0B3Iguy0A99TdcUYQKcH
- +tcTDVhvR42ox9x20E+JD1NF49DdlFCEABTAiz6OkljvIuYmPdJsMquZonmkEhRq1yqkEYkqDSRLL
- AxECae2UC5BXRovsHX1Euk6n8nmjTYZ0OuQrdsoRBWuofwU0Hof4x+sGjYoioWB8q47zOehMHH+Pw
- V9sU7lX2g==;
-Received: from localhost ([::1] helo=merlin.infradead.org)
- by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWMO4-0004AG-RW; Sat, 24 Oct 2020 16:27:25 +0000
-Received: from mail.kernel.org ([198.145.29.99])
- by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWMMt-0003nB-DW
- for linux-arm-kernel@lists.infradead.org; Sat, 24 Oct 2020 16:26:15 +0000
-Received: from wens.tw (mirror2.csie.ntu.edu.tw [140.112.30.76])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPSA id 7DC9F20A8B;
- Sat, 24 Oct 2020 16:26:10 +0000 (UTC)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
- s=default; t=1603556770;
- bh=DGQXozz/QOncNsJAZRNKsUYHqiXV7ZkDzlddkGHhB8E=;
- h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
- b=NpIO9Jz4nBlurKrQa46CC961tJc+F0xIS04YQQTWzf/+s4vcWDnLgpNqwfG76ScHp
- ObTadfMFXtau9CHoz7IP7EX8yiQvxXesAvoILdLrwX+fvNs/DAxXYoaFUb6T/fBz3D
- 5+0SWAxWCjsJ2eehQeang20FVDOwDkUTNeTSHCSM=
-Received: by wens.tw (Postfix, from userid 1000)
- id 0B36860310; Sun, 25 Oct 2020 00:25:47 +0800 (CST)
-From: Chen-Yu Tsai <wens@kernel.org>
-To: Maxime Ripard <mripard@kernel.org>,
- Jernej Skrabec <jernej.skrabec@siol.net>
-Subject: [PATCH 09/10] arm64: dts: allwinner: h5: libretech-all-h5-cc: Enable
- RGMII RX/TX delay on PHY
-Date: Sun, 25 Oct 2020 00:25:14 +0800
-Message-Id: <20201024162515.30032-9-wens@kernel.org>
-X-Mailer: git-send-email 2.28.0
-In-Reply-To: <20201024162515.30032-1-wens@kernel.org>
-References: <20201024162515.30032-1-wens@kernel.org>
-MIME-Version: 1.0
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20201024_122611_793889_9F8B24CE
-X-CRM114-Status: GOOD ( 14.72 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.29
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, linux-sunxi@googlegroups.com,
- Chen-Yu Tsai <wens@csie.org>, linux-arm-kernel@lists.infradead.org,
- linux-kernel@vger.kernel.org
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-
-From: Chen-Yu Tsai <wens@csie.org>
-
-The Ethernet PHY on the Libre Computer ALL-H5-CC has the RX and TX
-delays enabled on the PHY, using pull-ups on the RXDLY and TXDLY pins.
-
-Fix the phy-mode description to correct reflect this so that the
-implementation doesn't reconfigure the delays incorrectly. This
-happened with commit bbc4d71d6354 ("net: phy: realtek: fix rtl8211e
-rx/tx delay config").
-
-Fixes: 60d0426d7603 ("arm64: dts: allwinner: h5: Add Libre Computer ALL-H5-CC H5 board")
-Signed-off-by: Chen-Yu Tsai <wens@csie.org>
-Acked-by: Jernej Skrabec <jernej.skrabec@siol.net>
----
- arch/arm64/boot/dts/allwinner/sun50i-h5-libretech-all-h5-cc.dts | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-libretech-all-h5-cc.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-libretech-all-h5-cc.dts
-index df1b9263ad0e..6e30a564c87f 100644
---- a/arch/arm64/boot/dts/allwinner/sun50i-h5-libretech-all-h5-cc.dts
-+++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-libretech-all-h5-cc.dts
-@@ -36,7 +36,7 @@ &emac {
- pinctrl-0 = <&emac_rgmii_pins>;
- phy-supply = <&reg_gmac_3v3>;
- phy-handle = <&ext_rgmii_phy>;
-- phy-mode = "rgmii";
-+ phy-mode = "rgmii-id";
- /delete-property/ allwinner,leds-active-low;
- status = "okay";
- };
-
-From patchwork Sat Oct 24 16:25:15 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Chen-Yu Tsai <wens@kernel.org>
-X-Patchwork-Id: 11854903
-Return-Path:
- <SRS0=xcYM=D7=lists.infradead.org=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-X-Spam-Level:
-X-Spam-Status: No, score=-13.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH,
- DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,
- SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham
- autolearn_force=no version=3.4.0
-Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 89A03C55178
- for <linux-arm-kernel@archiver.kernel.org>;
- Sat, 24 Oct 2020 16:28:27 +0000 (UTC)
-Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPS id 03C7820897
- for <linux-arm-kernel@archiver.kernel.org>;
- Sat, 24 Oct 2020 16:28:26 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=lists.infradead.org
- header.i=@lists.infradead.org header.b="OZdeTHtX";
- dkim=fail reason="signature verification failed" (1024-bit key)
- header.d=kernel.org header.i=@kernel.org header.b="mU2s48k1"
-DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 03C7820897
-Authentication-Results: mail.kernel.org;
- dmarc=fail (p=none dis=none) header.from=kernel.org
-Authentication-Results: mail.kernel.org;
- spf=none
- smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding:
- Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive:
- List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date:
- Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date:
- Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner;
- bh=qvm8ypbfF+pYSJ3Xx1FTpzbIFOfYlRpAlHVacTT0aJA=; b=OZdeTHtXFVF2tk5NCwr3VAlbM
- xxf7ce1J4dsQvseCWdG8XL1JKO9Qc8yCLUYlJeeJMi2I490orIy8BioA6j+Ypd6f2buEBNIdoknYV
- SnbVsMPu0IZOV1yAasSTzyAh1ZSZlUjo4xl5ea+D/JVOEuFSRc855Csr06Ud1D6ndx+cbGIRbKMGX
- 9rqUweuone3Ep6ZuaU1MjIIPnO4S7ZRaqTTPKq/dZZp9VWCIOyOwd1wn9SLcFUdQ2YFyl8yiXjZzN
- n/oc07QMW2ssVlNsVJ2l6BVYULOjXKFg041DykClk/Z4+Z2o8gnLGvtLmw1GSQdjthVXECApe6vBS
- BBSDZHn+g==;
-Received: from localhost ([::1] helo=merlin.infradead.org)
- by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWMNS-0003xB-8m; Sat, 24 Oct 2020 16:26:46 +0000
-Received: from mail.kernel.org ([198.145.29.99])
- by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kWMMt-0003nC-DT
- for linux-arm-kernel@lists.infradead.org; Sat, 24 Oct 2020 16:26:13 +0000
-Received: from wens.tw (mirror2.csie.ntu.edu.tw [140.112.30.76])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPSA id 95C582225F;
- Sat, 24 Oct 2020 16:26:10 +0000 (UTC)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;
- s=default; t=1603556770;
- bh=YQRvPLQkc+2tqPQ6NrtoOsSzVY6oUqPsclAtr+kLRuc=;
- h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
- b=mU2s48k1dMnS7g2lALBkSZj1ZMEFwy4/4Q9aqg/T3Kj381N37nCMI2ocA+iVUIfd9
- CoqZqCJyq9bpQOVglMoG1u+55yiuAdOzSFLhSXFs7j/j20Jjs+xTY8n3Q+fudfS6qx
- 4dhCQaQBMBhPZhbhhaotPtFYFzS3f6OynKeYvFvQ=
-Received: by wens.tw (Postfix, from userid 1000)
- id 17C446036D; Sun, 25 Oct 2020 00:25:47 +0800 (CST)
-From: Chen-Yu Tsai <wens@kernel.org>
-To: Maxime Ripard <mripard@kernel.org>,
- Jernej Skrabec <jernej.skrabec@siol.net>
-Subject: [PATCH 10/10] arm64: dts: allwinner: a64: bananapi-m64: Enable RGMII
- RX/TX delay on PHY
-Date: Sun, 25 Oct 2020 00:25:15 +0800
-Message-Id: <20201024162515.30032-10-wens@kernel.org>
-X-Mailer: git-send-email 2.28.0
-In-Reply-To: <20201024162515.30032-1-wens@kernel.org>
-References: <20201024162515.30032-1-wens@kernel.org>
-MIME-Version: 1.0
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20201024_122611_723316_75ACD320
-X-CRM114-Status: GOOD ( 14.84 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.29
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, linux-sunxi@googlegroups.com,
- Chen-Yu Tsai <wens@csie.org>, linux-arm-kernel@lists.infradead.org,
- linux-kernel@vger.kernel.org
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-
-From: Chen-Yu Tsai <wens@csie.org>
-
-The Ethernet PHY on the Bananapi M64 has the RX and TX delays
-enabled on the PHY, using pull-ups on the RXDLY and TXDLY pins.
-
-Fix the phy-mode description to correct reflect this so that the
-implementation doesn't reconfigure the delays incorrectly. This
-happened with commit bbc4d71d6354 ("net: phy: realtek: fix rtl8211e
-rx/tx delay config").
-
-Fixes: e7295499903d ("arm64: allwinner: bananapi-m64: Enable dwmac-sun8i")
-Fixes: 94f442886711 ("arm64: dts: allwinner: A64: Restore EMAC changes")
-Signed-off-by: Chen-Yu Tsai <wens@csie.org>
-Tested-by: Corentin Labbe <clabbe.montjoie@gmail.com>
-Acked-by: Jernej Skrabec <jernej.skrabec@siol.net>
----
- arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
-index 3ea5182ca489..e5e840b9fbb4 100644
---- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
-+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
-@@ -105,7 +105,7 @@ &ehci1 {
- &emac {
- pinctrl-names = "default";
- pinctrl-0 = <&rgmii_pins>;
-- phy-mode = "rgmii";
-+ phy-mode = "rgmii-id";
- phy-handle = <&ext_rgmii_phy>;
- phy-supply = <&reg_dc1sw>;
- status = "okay";
diff --git a/SOURCES/arm64-BUG-crypto-arm64-Use-x16-with-indirect-branch-to-bti_c.patch b/SOURCES/arm64-BUG-crypto-arm64-Use-x16-with-indirect-branch-to-bti_c.patch
deleted file mode 100644
index 4cc11ce..0000000
--- a/SOURCES/arm64-BUG-crypto-arm64-Use-x16-with-indirect-branch-to-bti_c.patch
+++ /dev/null
@@ -1,149 +0,0 @@
-From patchwork Tue Oct 6 16:33:26 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Jeremy Linton <jeremy.linton@arm.com>
-X-Patchwork-Id: 11818995
-Return-Path:
- <SRS0=j42+=DN=lists.infradead.org=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@kernel.org>
-Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
- [172.30.200.123])
- by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 90CE859D
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Tue, 6 Oct 2020 16:35:07 +0000 (UTC)
-Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPS id 5D82E206D4
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Tue, 6 Oct 2020 16:35:07 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=lists.infradead.org
- header.i=@lists.infradead.org header.b="f/oUq3JQ"
-DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5D82E206D4
-Authentication-Results: mail.kernel.org;
- dmarc=fail (p=none dis=none) header.from=arm.com
-Authentication-Results: mail.kernel.org;
- spf=none
- smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding:
- Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive:
- List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From:
- Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender
- :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner;
- bh=zNs0I+g5JjqBvhvT5+mF98XNJ/hK7N5NCEi/ndGYagE=; b=f/oUq3JQxCkOkX7IQrzLh7mHuM
- vBXmyTI3BhMnGo6oaWvcF/dYeUpO4wAmEHlqyFf6zHzUv8Gwtm5IDH4l0csTqkTEYUdkwD6A9MGX2
- RHpylWVrErZCvcV4kRqENP+0w7j8Ry+ZE4+NZZFcUB/ecGYhJxD3/4Gc5ycmENUkRIAsJrQOPWW+b
- SIKpmegcjtJ1AIv7+Y+7II37IhmF579qQoghCSgFaGp6WAEIv80wcrswEnEDc9nsbBMIC1XjlN6g3
- 8PclJ+oXlsNPMLkhu1gJclvRBWzN3OjXVvwAvQuLBW2CqpdTxvYIE6g26kpEbUdGOVaGlieYcN0pd
- RrspfWkQ==;
-Received: from localhost ([::1] helo=merlin.infradead.org)
- by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kPpu9-0007rB-Rx; Tue, 06 Oct 2020 16:33:33 +0000
-Received: from foss.arm.com ([217.140.110.172])
- by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kPpu6-0007qe-MX
- for linux-arm-kernel@lists.infradead.org; Tue, 06 Oct 2020 16:33:31 +0000
-Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])
- by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 69DBBD6E;
- Tue, 6 Oct 2020 09:33:27 -0700 (PDT)
-Received: from mammon-tx2.austin.arm.com (mammon-tx2.austin.arm.com
- [10.118.28.62])
- by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 608393F66B;
- Tue, 6 Oct 2020 09:33:27 -0700 (PDT)
-From: Jeremy Linton <jeremy.linton@arm.com>
-To: linux-arm-kernel@lists.infradead.org
-Subject: [BUG][PATCH v3] crypto: arm64: Use x16 with indirect branch to bti_c
-Date: Tue, 6 Oct 2020 11:33:26 -0500
-Message-Id: <20201006163326.2780619-1-jeremy.linton@arm.com>
-X-Mailer: git-send-email 2.25.4
-MIME-Version: 1.0
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20201006_123330_788327_AA367CD9
-X-CRM114-Status: GOOD ( 11.54 )
-X-Spam-Score: -2.3 (--)
-X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary:
- Content analysis details: (-2.3 points)
- pts rule name description
- ---- ----------------------
- --------------------------------------------------
- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/,
- medium trust [217.140.110.172 listed in list.dnswl.org]
- -0.0 SPF_PASS SPF: sender matches SPF record
- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.29
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: herbert@gondor.apana.org.au, catalin.marinas@arm.com,
- linux-kernel@vger.kernel.org, Jeremy Linton <jeremy.linton@arm.com>,
- ardb@kernel.org, broonie@kernel.org, linux-crypto@vger.kernel.org,
- will@kernel.org, davem@davemloft.net, dave.martin@arm.com
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
-
-The AES code uses a 'br x7' as part of a function called by
-a macro. That branch needs a bti_j as a target. This results
-in a panic as seen below. Using x16 (or x17) with an indirect
-branch keeps the target bti_c.
-
- Bad mode in Synchronous Abort handler detected on CPU1, code 0x34000003 -- BTI
- CPU: 1 PID: 265 Comm: cryptomgr_test Not tainted 5.8.11-300.fc33.aarch64 #1
- pstate: 20400c05 (nzCv daif +PAN -UAO BTYPE=j-)
- pc : aesbs_encrypt8+0x0/0x5f0 [aes_neon_bs]
- lr : aesbs_xts_encrypt+0x48/0xe0 [aes_neon_bs]
- sp : ffff80001052b730
-
- aesbs_encrypt8+0x0/0x5f0 [aes_neon_bs]
- __xts_crypt+0xb0/0x2dc [aes_neon_bs]
- xts_encrypt+0x28/0x3c [aes_neon_bs]
- crypto_skcipher_encrypt+0x50/0x84
- simd_skcipher_encrypt+0xc8/0xe0
- crypto_skcipher_encrypt+0x50/0x84
- test_skcipher_vec_cfg+0x224/0x5f0
- test_skcipher+0xbc/0x120
- alg_test_skcipher+0xa0/0x1b0
- alg_test+0x3dc/0x47c
- cryptomgr_test+0x38/0x60
-
-Fixes: 0e89640b640d ("crypto: arm64 - Use modern annotations for assembly functions")
-Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
-Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
-Reviewed-by: Mark Brown <broonie@kernel.org>
----
- arch/arm64/crypto/aes-neonbs-core.S | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm64/crypto/aes-neonbs-core.S b/arch/arm64/crypto/aes-neonbs-core.S
-index b357164379f6..63a52ad9a75c 100644
---- a/arch/arm64/crypto/aes-neonbs-core.S
-+++ b/arch/arm64/crypto/aes-neonbs-core.S
-@@ -788,7 +788,7 @@ SYM_FUNC_START_LOCAL(__xts_crypt8)
-
- 0: mov bskey, x21
- mov rounds, x22
-- br x7
-+ br x16
- SYM_FUNC_END(__xts_crypt8)
-
- .macro __xts_crypt, do8, o0, o1, o2, o3, o4, o5, o6, o7
-@@ -806,7 +806,7 @@ SYM_FUNC_END(__xts_crypt8)
- uzp1 v30.4s, v30.4s, v25.4s
- ld1 {v25.16b}, [x24]
-
--99: adr x7, \do8
-+99: adr x16, \do8
- bl __xts_crypt8
-
- ldp q16, q17, [sp, #.Lframe_local_offset]
diff --git a/SOURCES/arm64-dts-allwinner-a64-OrangePi-Win-Fix-ethernet-node.patch b/SOURCES/arm64-dts-allwinner-a64-OrangePi-Win-Fix-ethernet-node.patch
deleted file mode 100644
index 1d49467..0000000
--- a/SOURCES/arm64-dts-allwinner-a64-OrangePi-Win-Fix-ethernet-node.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From patchwork Thu Oct 22 18:58:39 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: =?utf-8?q?Jernej_=C5=A0krabec?=
- <jernej.skrabec@siol.net>
-X-Patchwork-Id: 11851815
-Return-Path:
- <SRS0=FtUi=D5=lists.infradead.org=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-X-Spam-Level:
-X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH,
- DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,
- MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,
- USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0
-Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 49923C4363A
- for <linux-arm-kernel@archiver.kernel.org>;
- Thu, 22 Oct 2020 18:54:57 +0000 (UTC)
-Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPS id BE42824630
- for <linux-arm-kernel@archiver.kernel.org>;
- Thu, 22 Oct 2020 18:54:56 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=lists.infradead.org
- header.i=@lists.infradead.org header.b="MwGMWls5"
-DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BE42824630
-Authentication-Results: mail.kernel.org;
- dmarc=fail (p=none dis=none) header.from=siol.net
-Authentication-Results: mail.kernel.org;
- spf=none
- smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding:
- Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive:
- List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From:
- Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender
- :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner;
- bh=qw218/k563L/SgvRNrMcHuGAohVj+G+njRSUxTbH4/Y=; b=MwGMWls5lB6ROxeraw8NFhva87
- YclCqRbQf+4ALNGb51xUAobhmcRTMH8XN28wcc+cyGlR5v7vxgiiNdTbv1vehjJbQXoeZBexYeBfo
- Cz7p7c9v/iMpOj3EEnV7lvZjjScYq9K9eNA6LUfpe8hHTGaZR9o1Jabq7SoDK53cc9bOqa7KuWrTK
- eAkzQIt/0knwigxs/j0BjfhNkW6CCJwypTEWGy1hmrPmclEbgEx0CsvX6qFShyY//T7fn2LtIuSRh
- Z5GL2jc1VfMLRCzJKt8Nut7dq9NRPDaemSH5rZUo4U+/TbbTHZpcSTMxaJmHLyqGkX2mi4/WVEleF
- aU2kJPNA==;
-Received: from localhost ([::1] helo=merlin.infradead.org)
- by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kVfiG-0001Av-7F; Thu, 22 Oct 2020 18:53:24 +0000
-Received: from mailoutvs7.siol.net ([185.57.226.198] helo=mail.siol.net)
- by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kVfiD-00019b-Hk
- for linux-arm-kernel@lists.infradead.org; Thu, 22 Oct 2020 18:53:22 +0000
-Received: from localhost (localhost [127.0.0.1])
- by mail.siol.net (Postfix) with ESMTP id A66DD528530;
- Thu, 22 Oct 2020 20:53:17 +0200 (CEST)
-X-Virus-Scanned: amavisd-new at psrvmta10.zcs-production.pri
-Received: from mail.siol.net ([127.0.0.1])
- by localhost (psrvmta10.zcs-production.pri [127.0.0.1]) (amavisd-new,
- port 10032)
- with ESMTP id ivWpOrxbe1hZ; Thu, 22 Oct 2020 20:53:17 +0200 (CEST)
-Received: from mail.siol.net (localhost [127.0.0.1])
- by mail.siol.net (Postfix) with ESMTPS id 5ADFE528565;
- Thu, 22 Oct 2020 20:53:17 +0200 (CEST)
-Received: from kista.localdomain (cpe1-5-97.cable.triera.net [213.161.5.97])
- (Authenticated sender: 031275009)
- by mail.siol.net (Postfix) with ESMTPSA id A9CFB528530;
- Thu, 22 Oct 2020 20:53:15 +0200 (CEST)
-From: Jernej Skrabec <jernej.skrabec@siol.net>
-To: mripard@kernel.org,
- wens@csie.org
-Subject: [PATCH] arm64: dts: allwinner: a64: OrangePi Win: Fix ethernet node
-Date: Thu, 22 Oct 2020 20:58:39 +0200
-Message-Id: <20201022185839.2779245-1-jernej.skrabec@siol.net>
-X-Mailer: git-send-email 2.29.0
-MIME-Version: 1.0
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20201022_145321_724045_AE21B375
-X-CRM114-Status: GOOD ( 11.21 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.29
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, linux-sunxi@googlegroups.com,
- robh+dt@kernel.org, linux-kernel@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-
-RX/TX delay on OrangePi Win board is set on PHY. Reflect that in
-ethernet node.
-
-Fixes: 93d6a27cfcc0 ("arm64: dts: allwinner: a64: Orange Pi Win: Add Ethernet node")
-Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
----
- arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts
-index d894ec5fa8a1..70e31743f0ba 100644
---- a/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts
-+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts
-@@ -120,7 +120,7 @@ &ehci1 {
- &emac {
- pinctrl-names = "default";
- pinctrl-0 = <&rgmii_pins>;
-- phy-mode = "rgmii";
-+ phy-mode = "rgmii-id";
- phy-handle = <&ext_rgmii_phy>;
- phy-supply = <&reg_gmac_3v3>;
- status = "okay";
diff --git a/SOURCES/arm64-dts-allwinner-h5-OrangePi-PC2-Fix-ethernet-node.patch b/SOURCES/arm64-dts-allwinner-h5-OrangePi-PC2-Fix-ethernet-node.patch
deleted file mode 100644
index 365ac99..0000000
--- a/SOURCES/arm64-dts-allwinner-h5-OrangePi-PC2-Fix-ethernet-node.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From patchwork Fri Oct 23 18:48:58 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: =?utf-8?q?Jernej_=C5=A0krabec?=
- <jernej.skrabec@siol.net>
-X-Patchwork-Id: 11854423
-Return-Path:
- <SRS0=LoId=D6=lists.infradead.org=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-X-Spam-Level:
-X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH,
- DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,
- MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,
- USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0
-Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 1D6FCC55178
- for <linux-arm-kernel@archiver.kernel.org>;
- Fri, 23 Oct 2020 18:45:31 +0000 (UTC)
-Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPS id 9531820882
- for <linux-arm-kernel@archiver.kernel.org>;
- Fri, 23 Oct 2020 18:45:30 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=lists.infradead.org
- header.i=@lists.infradead.org header.b="wAWD/7i6"
-DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9531820882
-Authentication-Results: mail.kernel.org;
- dmarc=fail (p=none dis=none) header.from=siol.net
-Authentication-Results: mail.kernel.org;
- spf=none
- smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding:
- Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive:
- List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From:
- Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender
- :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner;
- bh=m06Ef3z67s1OKeS6vZi5U49+kjyVHbPq652p5RSY8mw=; b=wAWD/7i6V6QQknGeu4aP+whAUL
- x+z9xyIqngbq6nK4751GTRCn1anrtUOgwa69I01dBHGS3T2eEubbswHl7oaGbxDaExz+CVi4cNZPu
- lnsvfpHGiuhlTSaehcEvP4mmL+nr6RuZR65moYl2NGuTdO7KVH9BEjw1hLXZSCojWHoSZGDWKiUob
- 3Z9qYd+scPoCh0OWUG8DNmx3o/7paRsyC7+6aKWIrGKCjjfcldGG8DLOQacJFZUK5jvdXHtBxNpBU
- +lTNQzxYTXc/8UEz0j7B+NE8vnFR8zkiyixd6Z8U/XbRc9cOWKjGaSYnH9RHdTL1c4caLfmpAgCEC
- Ce+Bw/5Q==;
-Received: from localhost ([::1] helo=merlin.infradead.org)
- by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kW22O-0002CR-V4; Fri, 23 Oct 2020 18:43:40 +0000
-Received: from mailoutvs25.siol.net ([185.57.226.216] helo=mail.siol.net)
- by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kW22K-00023f-Rr
- for linux-arm-kernel@lists.infradead.org; Fri, 23 Oct 2020 18:43:38 +0000
-Received: from localhost (localhost [127.0.0.1])
- by mail.siol.net (Postfix) with ESMTP id 72D2C52828D;
- Fri, 23 Oct 2020 20:43:34 +0200 (CEST)
-X-Virus-Scanned: amavisd-new at psrvmta11.zcs-production.pri
-Received: from mail.siol.net ([127.0.0.1])
- by localhost (psrvmta11.zcs-production.pri [127.0.0.1]) (amavisd-new,
- port 10032)
- with ESMTP id TVbMFK320epr; Fri, 23 Oct 2020 20:43:34 +0200 (CEST)
-Received: from mail.siol.net (localhost [127.0.0.1])
- by mail.siol.net (Postfix) with ESMTPS id 2F71D5282BB;
- Fri, 23 Oct 2020 20:43:34 +0200 (CEST)
-Received: from kista.localdomain (cpe1-5-97.cable.triera.net [213.161.5.97])
- (Authenticated sender: 031275009)
- by mail.siol.net (Postfix) with ESMTPSA id 91F0A52828D;
- Fri, 23 Oct 2020 20:43:33 +0200 (CEST)
-From: Jernej Skrabec <jernej.skrabec@siol.net>
-To: mripard@kernel.org,
- wens@csie.org
-Subject: [PATCH] arm64: dts: allwinner: h5: OrangePi PC2: Fix ethernet node
-Date: Fri, 23 Oct 2020 20:48:58 +0200
-Message-Id: <20201023184858.3272918-1-jernej.skrabec@siol.net>
-X-Mailer: git-send-email 2.29.0
-MIME-Version: 1.0
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20201023_144337_054453_04C86957
-X-CRM114-Status: GOOD ( 10.84 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.29
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, linux-sunxi@googlegroups.com,
- robh+dt@kernel.org, linux-kernel@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-
-RX and TX delay are provided by ethernet PHY. Reflect that in ethernet
-node.
-
-Fixes: 44a94c7ef989 ("arm64: dts: allwinner: H5: Restore EMAC changes")
-Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
----
- arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
-index 7d7aad18f078..8bf2db9dcbda 100644
---- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
-+++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
-@@ -123,7 +123,7 @@ &emac {
- pinctrl-0 = <&emac_rgmii_pins>;
- phy-supply = <&reg_gmac_3v3>;
- phy-handle = <&ext_rgmii_phy>;
-- phy-mode = "rgmii";
-+ phy-mode = "rgmii-id";
- status = "okay";
- };
-
diff --git a/SOURCES/arm64-dts-allwinner-h5-OrangePi-Prime-Fix-ethernet-node.patch b/SOURCES/arm64-dts-allwinner-h5-OrangePi-Prime-Fix-ethernet-node.patch
deleted file mode 100644
index 2243e8c..0000000
--- a/SOURCES/arm64-dts-allwinner-h5-OrangePi-Prime-Fix-ethernet-node.patch
+++ /dev/null
@@ -1,145 +0,0 @@
-From patchwork Wed Oct 28 11:58:17 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Nenad Peric <nperic@gmail.com>
-X-Patchwork-Id: 11862711
-Return-Path:
- <SRS0=AM15=ED=lists.infradead.org=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-X-Spam-Level:
-X-Spam-Status: No, score=-12.5 required=3.0 tests=BAYES_00,
- DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,
- FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,
- SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT
- autolearn=ham autolearn_force=no version=3.4.0
-Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
- by smtp.lore.kernel.org (Postfix) with ESMTP id F41EBC4363A
- for <linux-arm-kernel@archiver.kernel.org>;
- Wed, 28 Oct 2020 12:00:20 +0000 (UTC)
-Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPS id 595FD246DD
- for <linux-arm-kernel@archiver.kernel.org>;
- Wed, 28 Oct 2020 12:00:20 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=lists.infradead.org
- header.i=@lists.infradead.org header.b="DqpmXmwL";
- dkim=fail reason="signature verification failed" (2048-bit key)
- header.d=gmail.com header.i=@gmail.com header.b="uWoqSVv7"
-DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 595FD246DD
-Authentication-Results: mail.kernel.org;
- dmarc=fail (p=none dis=none) header.from=gmail.com
-Authentication-Results: mail.kernel.org;
- spf=none
- smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding:
- Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive:
- List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From:
- Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender
- :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner;
- bh=iM3IMk6QdBKQv1Dkn6VfsoTDd+paWW6N4SwFo4W/pT4=; b=DqpmXmwLqnlvs85L9x+K5eSfiz
- GN+E05H0DMF5+zVOP8gpXahEpMhg887f5sEvbNMLlYIh1BouAijiz8nS1noh/UC2rU7ozned7uJr0
- mpD/7Of1OZL6brTPOJhrBPDGlUqchkrOdGTf0VxbGUDhCtvw5FdvoWWuzquj79JyvSZa/H++CkbcR
- 74W9DixoNvOZfs1v73N2NSlegmqLDWzTRd66zMqeroN+xYHDOUxHT+Us2GyVh+NALSdRi5j5k5/p0
- OPrQ1NhT566jHS2BIEusfdUO1EwskEuqpvuTzQ+n5rLr+bb+YrOMoUGwJD3hW3XrOjmvOp0QRYT4y
- PpA6tS3Q==;
-Received: from localhost ([::1] helo=merlin.infradead.org)
- by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kXk6L-0004MI-Ms; Wed, 28 Oct 2020 11:58:49 +0000
-Received: from mail-ej1-x643.google.com ([2a00:1450:4864:20::643])
- by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kXk6I-0004Ky-6g
- for linux-arm-kernel@lists.infradead.org; Wed, 28 Oct 2020 11:58:47 +0000
-Received: by mail-ej1-x643.google.com with SMTP id s15so6783728ejf.8
- for <linux-arm-kernel@lists.infradead.org>;
- Wed, 28 Oct 2020 04:58:41 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
- h=from:to:cc:subject:date:message-id:mime-version
- :content-transfer-encoding;
- bh=blRKpHWKYllsC3fZsoBdHMYqC0YSHlFEixMlCc4fF1w=;
- b=uWoqSVv7/sXCFBs4uRVc7ZJnrRrLnXRL/+OZi80QKKTgvbfwumMUj5KjiHEfCDwRTT
- 4l77Y7QqHNGwxkvw+86NlgbOJIbEGK4exb73CcG7bxXiIhUe0N903Cdh3FQo3A0tl3q2
- VVSy51o6KCEFVvO6WPGI4jxOMAYccyYb5zEX6DU9nVjW78QVsyJC3woh3PIjNjhr0gi7
- zA6Fm+EE9Jqof6qEe3uaZElg1mUFZEfpLNHtDSERMYtGr66mYG8lcT8onl0aY8Ew4dz/
- 2ChThQ8iNbHXpa+VJlmskDf+WUndSWm2VHt4ifMPz4XZVW8mfQK3LdkpOO3eHP+1+v9D
- bUgw==
-X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
- d=1e100.net; s=20161025;
- h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version
- :content-transfer-encoding;
- bh=blRKpHWKYllsC3fZsoBdHMYqC0YSHlFEixMlCc4fF1w=;
- b=hcuII+cyYhy8NEgTGUVf1GusA61FKRDd5S51ziFO8yqmI5ZdmGcKRcE4XkA6MARqT/
- p6/yBHuLVLBQPsG/E2eFHnOxgHwmJJmnuDcEXyDibj5CH8vVabKPmQV8g9u2OEv74Ufj
- kSq2G5ZusReaIPfB/Jvku/zM7npReCYZRfoY+b1WbfTbIkKX7hKqBJfRH6oHfFfsUYCx
- jmtUyxX/iQ+zxA7QyGtpPNFQ01FngfkP8RiQOn9j8HlniGdHePpx38xZVwIk2Xw7cZTt
- WMlSTduDbqferQ4kvVHhS45swesUf0j17cl8/ulI2gsIypm+BXpMVT1EbNo1cLX6938G
- BZ4g==
-X-Gm-Message-State: AOAM533DIdRxZEJdUOkrAMKw6EuWX0vUxXnqmbiqmy7O/RXzqjgvJ39e
- PumNgB/8sggQCFj5Ra/GWBk=
-X-Google-Smtp-Source:
- ABdhPJz86BOoINx8fEi+KX53QXqf+HoCczR0skh70fOJrBPW6LQi7RmJY8byNi8zXcJRJpwKsL5dUw==
-X-Received: by 2002:a17:906:3689:: with SMTP id
- a9mr7090398ejc.403.1603886320892;
- Wed, 28 Oct 2020 04:58:40 -0700 (PDT)
-Received: from localhost.localdomain ([87.116.178.171])
- by smtp.googlemail.com with ESMTPSA id f13sm2817210ejf.42.2020.10.28.04.58.39
- (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
- Wed, 28 Oct 2020 04:58:40 -0700 (PDT)
-From: Nenad Peric <nperic@gmail.com>
-To: mripard@kernel.org,
- wens@csie.org,
- jernej.skrabec@siol.net
-Subject: [PATCH] arm64: dts: allwinner: h5: OrangePi Prime: Fix ethernet node
-Date: Wed, 28 Oct 2020 12:58:17 +0100
-Message-Id: <20201028115817.68113-1-nperic@gmail.com>
-X-Mailer: git-send-email 2.29.1
-MIME-Version: 1.0
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20201028_075846_256245_4AB671AE
-X-CRM114-Status: GOOD ( 13.60 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.29
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
- linux-sunxi@googlegroups.com, robh+dt@kernel.org,
- Nenad Peric <nperic@gmail.com>, linux-arm-kernel@lists.infradead.org
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-
-RX and TX delay are provided by ethernet PHY. Reflect that in ethernet
-node.
-
-Fixes: 44a94c7ef989 ("arm64: dts: allwinner: H5: Restore EMAC changes")
-Signed-off-by: Nenad Peric <nperic@gmail.com>
----
- arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
-index cb44bfa5981f..33ab44072e6d 100644
---- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
-+++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
-@@ -124,7 +124,7 @@ &emac {
- pinctrl-0 = <&emac_rgmii_pins>;
- phy-supply = <&reg_gmac_3v3>;
- phy-handle = <&ext_rgmii_phy>;
-- phy-mode = "rgmii";
-+ phy-mode = "rgmii-id";
- status = "okay";
- };
-
diff --git a/SOURCES/arm64-dts-allwinner-h6-Pine-H64-Fix-ethernet-node.patch b/SOURCES/arm64-dts-allwinner-h6-Pine-H64-Fix-ethernet-node.patch
deleted file mode 100644
index 55fc779..0000000
--- a/SOURCES/arm64-dts-allwinner-h6-Pine-H64-Fix-ethernet-node.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From patchwork Fri Oct 23 19:49:02 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: =?utf-8?q?Jernej_=C5=A0krabec?=
- <jernej.skrabec@siol.net>
-X-Patchwork-Id: 11854475
-Return-Path:
- <SRS0=LoId=D6=lists.infradead.org=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@kernel.org>
-X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
- aws-us-west-2-korg-lkml-1.web.codeaurora.org
-X-Spam-Level:
-X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH,
- DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,
- MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,
- USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0
-Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 63302C388F9
- for <linux-arm-kernel@archiver.kernel.org>;
- Fri, 23 Oct 2020 19:46:07 +0000 (UTC)
-Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPS id CEC072192A
- for <linux-arm-kernel@archiver.kernel.org>;
- Fri, 23 Oct 2020 19:46:06 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=lists.infradead.org
- header.i=@lists.infradead.org header.b="RmcUbgOY"
-DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CEC072192A
-Authentication-Results: mail.kernel.org;
- dmarc=fail (p=none dis=none) header.from=siol.net
-Authentication-Results: mail.kernel.org;
- spf=none
- smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding:
- Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive:
- List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From:
- Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender
- :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner;
- bh=hLIZ2EP9nRbAti/wOrMDo1OIucNmHPYmeTz9hC5PCnA=; b=RmcUbgOYDKWjn2s7pGDpTPSI3x
- NuaDIYVWecJeYRkyIuo17CVfM2stKi4Z2NgNQifJYES97ZiPYblSPwx8eg5L8R896LrleIrASB1tG
- fqNpALWJk2GUtdXzkVIf1KlBlEuNBalgVfd7eIKKmXDbJI8cV3i37nnYQ/1rlYiMU3U6jtVqNd847
- 0D3CMcyW2AKeG2+xCXrf+KeIytwkQDz51Wq/SkpZUJIEicBzg++3/yzKB9ZAf1v4le8V5SndXYoOL
- MN5fti8tO6Ox0KBvfzl7IfPOM4whPwduDXDUYhnWvBw4q7UHqsaIylAT18U1u7i+j127WKNb3oChK
- g1kLDIng==;
-Received: from localhost ([::1] helo=merlin.infradead.org)
- by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kW2yv-000840-7O; Fri, 23 Oct 2020 19:44:09 +0000
-Received: from mailoutvs25.siol.net ([185.57.226.216] helo=mail.siol.net)
- by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kW2yT-0007t0-4y
- for linux-arm-kernel@lists.infradead.org; Fri, 23 Oct 2020 19:43:42 +0000
-Received: from localhost (localhost [127.0.0.1])
- by mail.siol.net (Postfix) with ESMTP id 126DA528120;
- Fri, 23 Oct 2020 21:43:36 +0200 (CEST)
-X-Virus-Scanned: amavisd-new at psrvmta11.zcs-production.pri
-Received: from mail.siol.net ([127.0.0.1])
- by localhost (psrvmta11.zcs-production.pri [127.0.0.1]) (amavisd-new,
- port 10032)
- with ESMTP id rEXZf2IX2IaY; Fri, 23 Oct 2020 21:43:35 +0200 (CEST)
-Received: from mail.siol.net (localhost [127.0.0.1])
- by mail.siol.net (Postfix) with ESMTPS id C4F7052818E;
- Fri, 23 Oct 2020 21:43:35 +0200 (CEST)
-Received: from kista.localdomain (cpe1-5-97.cable.triera.net [213.161.5.97])
- (Authenticated sender: 031275009)
- by mail.siol.net (Postfix) with ESMTPSA id 52CA9528176;
- Fri, 23 Oct 2020 21:43:35 +0200 (CEST)
-From: Jernej Skrabec <jernej.skrabec@siol.net>
-To: mripard@kernel.org,
- wens@csie.org
-Subject: [PATCH] arm64: dts: allwinner: h6: Pine H64: Fix ethernet node
-Date: Fri, 23 Oct 2020 21:49:02 +0200
-Message-Id: <20201023194902.368239-1-jernej.skrabec@siol.net>
-X-Mailer: git-send-email 2.29.0
-MIME-Version: 1.0
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20201023_154341_497396_834DE64F
-X-CRM114-Status: GOOD ( 11.24 )
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.29
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, linux-sunxi@googlegroups.com,
- robh+dt@kernel.org, linux-kernel@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org
-
-Ethernet PHY provides RX and TX delay on both models, A and B. Although
-schematic for model A suggests only TX delay, network never worked with
-such configuration.
-
-Fix ethernet node to reflect PHY delays.
-
-Fixes: 729e1ffcf47e ("arm64: allwinner: h6: add support for the Ethernet on Pine H64")
-Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
----
- arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts
-index af85b2074867..961732c52aa0 100644
---- a/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts
-+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts
-@@ -100,7 +100,7 @@ &ehci3 {
- &emac {
- pinctrl-names = "default";
- pinctrl-0 = <&ext_rgmii_pins>;
-- phy-mode = "rgmii";
-+ phy-mode = "rgmii-id";
- phy-handle = <&ext_rgmii_phy>;
- phy-supply = <&reg_gmac_3v3>;
- allwinner,rx-delay-ps = <200>;
diff --git a/SOURCES/arm64-pwm-rockchip-Keep-enabled-PWMs-running-while-probing.patch b/SOURCES/arm64-pwm-rockchip-Keep-enabled-PWMs-running-while-probing.patch
deleted file mode 100644
index 4bdb5cb..0000000
--- a/SOURCES/arm64-pwm-rockchip-Keep-enabled-PWMs-running-while-probing.patch
+++ /dev/null
@@ -1,141 +0,0 @@
-From patchwork Sat Sep 19 19:33:06 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 8bit
-X-Patchwork-Submitter: Simon South <simon@simonsouth.net>
-X-Patchwork-Id: 11787259
-Return-Path:
- <SRS0=uBh2=C4=lists.infradead.org=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@kernel.org>
-Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
- [172.30.200.123])
- by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D0780618
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Sat, 19 Sep 2020 19:33:55 +0000 (UTC)
-Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPS id 9DF4C21707
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Sat, 19 Sep 2020 19:33:55 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=lists.infradead.org
- header.i=@lists.infradead.org header.b="tXxoe57q"
-DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9DF4C21707
-Authentication-Results: mail.kernel.org;
- dmarc=none (p=none dis=none) header.from=simonsouth.net
-Authentication-Results: mail.kernel.org;
- spf=none
- smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding:
- Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive:
- List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From:
- Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender
- :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner;
- bh=rTFhR4wE/kksRMBhCZanM50Dz/U+ohZU+WFgqGfznMQ=; b=tXxoe57qQlrQ18QBvKs3JZ7wYU
- mFyPVtA2yDfFfGESvkL1Xa44HehjqPoeSxNBAyejg6YfozEgeDKKVZsBEex5hw6LE56H8Iofj0pZV
- AFM98+vh4tydKA7vxhGl0cm7jMVq3N68wqcikUkcdCEs3bp+5dHpOowzZaj3sm51gw/g6pD3ut1+V
- IYlRTF/VuDd3IDW4o27pNrgIqWx9f+/eO1gUdxwCa4i0VNLAHXCt5ysGE+CSwVWMEcp5YN5K1iO8b
- sFKtjMiOcg9wrJdEoYpiFbcHETgUGNj5wdbwRvJR2qZ36gSImyUqJobYqSUyVHCJI2JRUch3UDFtt
- yDQgQ99A==;
-Received: from localhost ([::1] helo=merlin.infradead.org)
- by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kJic9-0004AL-NX; Sat, 19 Sep 2020 19:33:41 +0000
-Received: from mailout.easymail.ca ([64.68.200.34])
- by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux))
- id 1kJic6-00049d-Ia; Sat, 19 Sep 2020 19:33:39 +0000
-Received: from localhost (localhost [127.0.0.1])
- by mailout.easymail.ca (Postfix) with ESMTP id C7C54A05B3;
- Sat, 19 Sep 2020 19:33:37 +0000 (UTC)
-X-Virus-Scanned: Debian amavisd-new at emo05-pco.easydns.vpn
-Received: from mailout.easymail.ca ([127.0.0.1])
- by localhost (emo05-pco.easydns.vpn [127.0.0.1]) (amavisd-new, port 10024)
- with ESMTP id G6RbiLyf29ms; Sat, 19 Sep 2020 19:33:37 +0000 (UTC)
-Received: from jupiter.simonsouth.net (unknown [108.162.141.195])
- (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
- (No client certificate requested)
- by mailout.easymail.ca (Postfix) with ESMTPSA id 77C83A025D;
- Sat, 19 Sep 2020 19:33:27 +0000 (UTC)
-From: Simon South <simon@simonsouth.net>
-To: thierry.reding@gmail.com, u.kleine-koenig@pengutronix.de,
- lee.jones@linaro.org, heiko@sntech.de, linux-pwm@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org
-Subject: [PATCH v2] pwm: rockchip: Keep enabled PWMs running while probing
-Date: Sat, 19 Sep 2020 15:33:06 -0400
-Message-Id: <20200919193306.1023-1-simon@simonsouth.net>
-X-Mailer: git-send-email 2.28.0
-MIME-Version: 1.0
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20200919_153338_624271_ABEEE8C4
-X-CRM114-Status: GOOD ( 16.76 )
-X-Spam-Score: -2.3 (--)
-X-Spam-Report: SpamAssassin version 3.4.4 on merlin.infradead.org summary:
- Content analysis details: (-2.3 points)
- pts rule name description
- ---- ----------------------
- --------------------------------------------------
- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/,
- medium trust [64.68.200.34 listed in list.dnswl.org]
- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
- -0.0 SPF_PASS SPF: sender matches SPF record
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.29
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: Simon South <simon@simonsouth.net>
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
-
-Following commit cfc4c189bc70 ("pwm: Read initial hardware state at
-request time") the Rockchip PWM driver can no longer assume a device's
-pwm_state structure has been populated after a call to pwmchip_add().
-Consequently, the test in rockchip_pwm_probe() intended to prevent the
-driver from stopping PWM devices already enabled by the bootloader no
-longer functions reliably and this can lead to the kernel hanging
-during startup, particularly on devices like the Pinebook Pro that use
-a PWM-controlled backlight for their display.
-
-Avoid this by querying the device directly at probe time to determine
-whether or not it is enabled.
-
-Fixes: cfc4c189bc70 ("pwm: Read initial hardware state at request time")
-Signed-off-by: Simon South <simon@simonsouth.net>
-Reviewed-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
-Reviewed-by: Heiko Stuebner <heiko@sntech.de>
----
- drivers/pwm/pwm-rockchip.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/pwm/pwm-rockchip.c b/drivers/pwm/pwm-rockchip.c
-index eb8c9cb645a6..098e94335cb5 100644
---- a/drivers/pwm/pwm-rockchip.c
-+++ b/drivers/pwm/pwm-rockchip.c
-@@ -288,6 +288,7 @@ static int rockchip_pwm_probe(struct platform_device *pdev)
- const struct of_device_id *id;
- struct rockchip_pwm_chip *pc;
- struct resource *r;
-+ u32 enable_conf, ctrl;
- int ret, count;
-
- id = of_match_device(rockchip_pwm_dt_ids, &pdev->dev);
-@@ -362,7 +363,9 @@ static int rockchip_pwm_probe(struct platform_device *pdev)
- }
-
- /* Keep the PWM clk enabled if the PWM appears to be up and running. */
-- if (!pwm_is_enabled(pc->chip.pwms))
-+ enable_conf = pc->data->enable_conf;
-+ ctrl = readl_relaxed(pc->base + pc->data->regs.ctrl);
-+ if ((ctrl & enable_conf) != enable_conf)
- clk_disable(pc->clk);
-
- return 0;
diff --git a/SOURCES/arm64-rockchip-pinebookpro-add-fuel-gauge.patch b/SOURCES/arm64-rockchip-pinebookpro-add-fuel-gauge.patch
deleted file mode 100644
index 5decda7..0000000
--- a/SOURCES/arm64-rockchip-pinebookpro-add-fuel-gauge.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From c7c4d698cd2882c4d095aeed43bbad6fc990e998 Mon Sep 17 00:00:00 2001
-From: Tobias Schramm <t.schramm@manjaro.org>
-Date: Thu, 28 May 2020 19:25:50 +0200
-Subject: arm64: dts: rockchip: add fuel gauge to Pinebook Pro dts
-
-This commit adds cw2015 fuel gauge and battery to the Pinebook Pro dts.
-
-Signed-off-by: Tobias Schramm <t.schramm@manjaro.org>
-Link: https://lore.kernel.org/r/20200528172550.2324722-2-t.schramm@manjaro.org
-Signed-off-by: Heiko Stuebner <heiko@sntech.de>
----
- .../boot/dts/rockchip/rk3399-pinebook-pro.dts | 25 ++++++++++++++++++++++
- 1 file changed, 25 insertions(+)
-
-diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
-index cb0245d2226d5..8f5b2df01560e 100644
---- a/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
-+++ b/arch/arm64/boot/dts/rockchip/rk3399-pinebook-pro.dts
-@@ -28,6 +28,13 @@
- pwms = <&pwm0 0 740740 0>;
- };
-
-+ bat: battery {
-+ compatible = "simple-battery";
-+ charge-full-design-microamp-hours = <9800000>;
-+ voltage-max-design-microvolt = <4350000>;
-+ voltage-min-design-microvolt = <3000000>;
-+ };
-+
- edp_panel: edp-panel {
- compatible = "boe,nv140fhmn49";
- backlight = <&backlight>;
-@@ -741,6 +748,24 @@
- };
- };
- };
-+
-+ cw2015@62 {
-+ compatible = "cellwise,cw2015";
-+ reg = <0x62>;
-+ cellwise,battery-profile = /bits/ 8 <
-+ 0x17 0x67 0x80 0x73 0x6E 0x6C 0x6B 0x63
-+ 0x77 0x51 0x5C 0x58 0x50 0x4C 0x48 0x36
-+ 0x15 0x0C 0x0C 0x19 0x5B 0x7D 0x6F 0x69
-+ 0x69 0x5B 0x0C 0x29 0x20 0x40 0x52 0x59
-+ 0x57 0x56 0x54 0x4F 0x3B 0x1F 0x7F 0x17
-+ 0x06 0x1A 0x30 0x5A 0x85 0x93 0x96 0x2D
-+ 0x48 0x77 0x9C 0xB3 0x80 0x52 0x94 0xCB
-+ 0x2F 0x00 0x64 0xA5 0xB5 0x11 0xF0 0x11
-+ >;
-+ cellwise,monitor-interval-ms = <5000>;
-+ monitored-battery = <&bat>;
-+ power-supplies = <&mains_charger>, <&fusb0>;
-+ };
- };
-
- &i2s1 {
---
-cgit 1.2.3-1.el7
diff --git a/SOURCES/arm64-tegra-Use-valid-PWM-period-for-VDD_GPU-on-Tegra210.patch b/SOURCES/arm64-tegra-Use-valid-PWM-period-for-VDD_GPU-on-Tegra210.patch
deleted file mode 100644
index 3a7ad1e..0000000
--- a/SOURCES/arm64-tegra-Use-valid-PWM-period-for-VDD_GPU-on-Tegra210.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From a267434b15bc06c72708327fb1110bf565577a15 Mon Sep 17 00:00:00 2001
-From: Peter Robinson <pbrobinson@gmail.com>
-Date: Tue, 3 Nov 2020 16:53:02 +0000
-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 6a4b50aaa25d..85ee7e6b71ac 100644
---- a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi
-+++ b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi
-@@ -337,7 +337,7 @@ psci {
-
- vdd_gpu: regulator@100 {
- compatible = "pwm-regulator";
-- 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 2282ea1c6279..195a43e2356b 100644
---- a/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts
-+++ b/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts
-@@ -818,7 +818,7 @@ vdd_cpu: regulator@5 {
-
- vdd_gpu: regulator@6 {
- compatible = "pwm-regulator";
-- pwms = <&pwm 1 4880>;
-+ pwms = <&pwm 1 8000>;
-
- regulator-name = "VDD_GPU";
- regulator-min-microvolt = <710000>;
---
-2.28.0
-
diff --git a/SOURCES/arm64-tegra-enable-dfll-on-jetson-nano.patch b/SOURCES/arm64-tegra-enable-dfll-on-jetson-nano.patch
deleted file mode 100644
index 8add84f..0000000
--- a/SOURCES/arm64-tegra-enable-dfll-on-jetson-nano.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 72fd21b62055b985d3e3fb72a1e70e3d09596174 Mon Sep 17 00:00:00 2001
-From: Peter Robinson <pbrobinson@gmail.com>
-Date: Sun, 27 Sep 2020 18:20:41 +0100
-Subject: [PATCH] arm64: tegra: Enable DFLL support on Jetson Nano
-
-Populate the DFLL node and corresponding PWM pin nodes in order to
-enable CPUFREQ support on the Jetson Nano platform.
-
-Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
-Signed-off-by: Thierry Reding <treding@nvidia.com>
----
- .../boot/dts/nvidia/tegra210-p3450-0000.dts | 50 +++++++++++++++----
- 1 file changed, 40 insertions(+), 10 deletions(-)
-
-diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts b/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts
-index 9bc52fdb393c..4d980d753a98 100644
---- a/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts
-+++ b/arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts
-@@ -101,6 +101,22 @@ gpu@57000000 {
- status = "okay";
- };
-
-+ pinmux@700008d4 {
-+ dvfs_pwm_active_state: dvfs_pwm_active {
-+ dvfs_pwm_pbb1 {
-+ nvidia,pins = "dvfs_pwm_pbb1";
-+ nvidia,tristate = <TEGRA_PIN_DISABLE>;
-+ };
-+ };
-+
-+ dvfs_pwm_inactive_state: dvfs_pwm_inactive {
-+ dvfs_pwm_pbb1 {
-+ nvidia,pins = "dvfs_pwm_pbb1";
-+ nvidia,tristate = <TEGRA_PIN_ENABLE>;
-+ };
-+ };
-+ };
-+
- /* debug port */
- serial@70006000 {
- status = "okay";
-@@ -574,17 +590,31 @@ sdhci@700b0400 {
- wakeup-source;
- };
-
-- clocks {
-- compatible = "simple-bus";
-- #address-cells = <1>;
-- #size-cells = <0>;
-+ clock@70110000 {
-+ status = "okay";
-
-- clk32k_in: clock@0 {
-- compatible = "fixed-clock";
-- reg = <0>;
-- #clock-cells = <0>;
-- clock-frequency = <32768>;
-- };
-+ nvidia,cf = <6>;
-+ nvidia,ci = <0>;
-+ nvidia,cg = <2>;
-+ nvidia,droop-ctrl = <0x00000f00>;
-+ nvidia,force-mode = <1>;
-+ nvidia,sample-rate = <25000>;
-+
-+ nvidia,pwm-min-microvolts = <708000>;
-+ nvidia,pwm-period-nanoseconds = <2500>; /* 2.5us */
-+ nvidia,pwm-to-pmic;
-+ nvidia,pwm-tristate-microvolts = <1000000>;
-+ nvidia,pwm-voltage-step-microvolts = <19200>;
-+
-+ pinctrl-names = "dvfs_pwm_enable", "dvfs_pwm_disable";
-+ pinctrl-0 = <&dvfs_pwm_active_state>;
-+ pinctrl-1 = <&dvfs_pwm_inactive_state>;
-+ };
-+
-+ clk32k_in: clock@0 {
-+ compatible = "fixed-clock";
-+ clock-frequency = <32768>;
-+ #clock-cells = <0>;
- };
-
- cpus {
---
-2.26.2
-
diff --git a/SOURCES/bluetooth-fix-LL-privacy-BLE-device-fails-to-connect.patch b/SOURCES/bluetooth-fix-LL-privacy-BLE-device-fails-to-connect.patch
deleted file mode 100644
index 593af04..0000000
--- a/SOURCES/bluetooth-fix-LL-privacy-BLE-device-fails-to-connect.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From MAILER-DAEMON Thu Nov 12 18:45:00 2020
-From: Sathish Narasimman <nsathish41@gmail.com>
-To: linux-bluetooth@vger.kernel.org
-Cc: chethan.tumkur.narayan@intel.com, ravishankar.srivatsa@intel.com, kiran.k@intel.com, Sathish Narasimman <sathish.narasimman@intel.com>
-Subject: [PATCH] Bluetooth: Fix: LL PRivacy BLE device fails to connect
-Date: Thu, 22 Oct 2020 13:53:04 +0530
-Message-Id: <20201022082304.31757-1-sathish.narasimman@intel.com>
-List-ID: <linux-bluetooth.vger.kernel.org>
-X-Mailing-List: linux-bluetooth@vger.kernel.org
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 7bit
-
-When adding device to white list the device is added to resolving list
-also it has to be added only when HCI_ENABLE_LL_PRIVACY flag is set.
-HCI_ENABLE_LL_PRIVACY flag has to be tested before adding/deleting devices
-to resolving list. use_ll_privacy macro is used only to check if controller
-supports LL_Privacy.
-
-https://bugzilla.kernel.org/show_bug.cgi?id=209745
-
-Signed-off-by: Sathish Narasimman <sathish.narasimman@intel.com>
-Reviewed-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
----
- net/bluetooth/hci_request.c | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/net/bluetooth/hci_request.c b/net/bluetooth/hci_request.c
-index 6f12bab4d2fa..610ed0817bd7 100644
---- a/net/bluetooth/hci_request.c
-+++ b/net/bluetooth/hci_request.c
-@@ -698,7 +698,8 @@ static void del_from_white_list(struct hci_request *req, bdaddr_t *bdaddr,
- cp.bdaddr_type);
- hci_req_add(req, HCI_OP_LE_DEL_FROM_WHITE_LIST, sizeof(cp), &cp);
-
-- if (use_ll_privacy(req->hdev)) {
-+ if (use_ll_privacy(req->hdev) &&
-+ hci_dev_test_flag(req->hdev, HCI_ENABLE_LL_PRIVACY)) {
- struct smp_irk *irk;
-
- irk = hci_find_irk_by_addr(req->hdev, bdaddr, bdaddr_type);
-@@ -732,7 +733,8 @@ static int add_to_white_list(struct hci_request *req,
- return -1;
-
- /* White list can not be used with RPAs */
-- if (!allow_rpa && !use_ll_privacy(hdev) &&
-+ if (!allow_rpa &&
-+ !hci_dev_test_flag(hdev, HCI_ENABLE_LL_PRIVACY) &&
- hci_find_irk_by_addr(hdev, &params->addr, params->addr_type)) {
- return -1;
- }
-@@ -750,7 +752,8 @@ static int add_to_white_list(struct hci_request *req,
- cp.bdaddr_type);
- hci_req_add(req, HCI_OP_LE_ADD_TO_WHITE_LIST, sizeof(cp), &cp);
-
-- if (use_ll_privacy(hdev)) {
-+ if (use_ll_privacy(hdev) &&
-+ hci_dev_test_flag(hdev, HCI_ENABLE_LL_PRIVACY)) {
- struct smp_irk *irk;
-
- irk = hci_find_irk_by_addr(hdev, &params->addr,
-@@ -812,7 +815,8 @@ static u8 update_white_list(struct hci_request *req)
- }
-
- /* White list can not be used with RPAs */
-- if (!allow_rpa && !use_ll_privacy(hdev) &&
-+ if (!allow_rpa &&
-+ !hci_dev_test_flag(hdev, HCI_ENABLE_LL_PRIVACY) &&
- hci_find_irk_by_addr(hdev, &b->bdaddr, b->bdaddr_type)) {
- return 0x00;
- }
---
-2.17.1
-
-
diff --git a/SOURCES/bluetooth_cves.patch b/SOURCES/bluetooth_cves.patch
deleted file mode 100644
index 129b0d0..0000000
--- a/SOURCES/bluetooth_cves.patch
+++ /dev/null
@@ -1,320 +0,0 @@
-From MAILER-DAEMON Thu Oct 15 15:17:31 2020
-From: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
-To: linux-bluetooth@vger.kernel.org
-Subject: [PATCH 1/4] Bluetooth: A2MP: Fix not initializing all members
-Date: Thu, 06 Aug 2020 11:17:11 -0700
-Message-Id: <20200806181714.3216076-1-luiz.dentz@gmail.com>
-Sender: linux-bluetooth-owner@vger.kernel.org
-List-ID: <linux-bluetooth.vger.kernel.org>
-X-Mailing-List: linux-bluetooth@vger.kernel.org
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 7bit
-
-From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
-
-This fixes various places where a stack variable is used uninitialized.
-
-Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
----
- net/bluetooth/a2mp.c | 22 +++++++++++++++++++++-
- 1 file changed, 21 insertions(+), 1 deletion(-)
-
-diff --git a/net/bluetooth/a2mp.c b/net/bluetooth/a2mp.c
-index 26526be579c7..da7fd7c8c2dc 100644
---- a/net/bluetooth/a2mp.c
-+++ b/net/bluetooth/a2mp.c
-@@ -226,6 +226,9 @@ static int a2mp_discover_rsp(struct amp_mgr *mgr, struct sk_buff *skb,
- struct a2mp_info_req req;
-
- found = true;
-+
-+ memset(&req, 0, sizeof(req));
-+
- req.id = cl->id;
- a2mp_send(mgr, A2MP_GETINFO_REQ, __next_ident(mgr),
- sizeof(req), &req);
-@@ -305,6 +308,8 @@ static int a2mp_getinfo_req(struct amp_mgr *mgr, struct sk_buff *skb,
- if (!hdev || hdev->dev_type != HCI_AMP) {
- struct a2mp_info_rsp rsp;
-
-+ memset(&rsp, 0, sizeof(rsp));
-+
- rsp.id = req->id;
- rsp.status = A2MP_STATUS_INVALID_CTRL_ID;
-
-@@ -348,6 +353,8 @@ static int a2mp_getinfo_rsp(struct amp_mgr *mgr, struct sk_buff *skb,
- if (!ctrl)
- return -ENOMEM;
-
-+ memset(&req, 0, sizeof(req));
-+
- req.id = rsp->id;
- a2mp_send(mgr, A2MP_GETAMPASSOC_REQ, __next_ident(mgr), sizeof(req),
- &req);
-@@ -376,6 +383,8 @@ static int a2mp_getampassoc_req(struct amp_mgr *mgr, struct sk_buff *skb,
- struct a2mp_amp_assoc_rsp rsp;
- rsp.id = req->id;
-
-+ memset(&rsp, 0, sizeof(rsp));
-+
- if (tmp) {
- rsp.status = A2MP_STATUS_COLLISION_OCCURED;
- amp_mgr_put(tmp);
-@@ -464,7 +473,6 @@ static int a2mp_createphyslink_req(struct amp_mgr *mgr, struct sk_buff *skb,
- struct a2mp_cmd *hdr)
- {
- struct a2mp_physlink_req *req = (void *) skb->data;
--
- struct a2mp_physlink_rsp rsp;
- struct hci_dev *hdev;
- struct hci_conn *hcon;
-@@ -475,6 +483,8 @@ static int a2mp_createphyslink_req(struct amp_mgr *mgr, struct sk_buff *skb,
-
- BT_DBG("local_id %d, remote_id %d", req->local_id, req->remote_id);
-
-+ memset(&rsp, 0, sizeof(rsp));
-+
- rsp.local_id = req->remote_id;
- rsp.remote_id = req->local_id;
-
-@@ -553,6 +563,8 @@ static int a2mp_discphyslink_req(struct amp_mgr *mgr, struct sk_buff *skb,
-
- BT_DBG("local_id %d remote_id %d", req->local_id, req->remote_id);
-
-+ memset(&rsp, 0, sizeof(rsp));
-+
- rsp.local_id = req->remote_id;
- rsp.remote_id = req->local_id;
- rsp.status = A2MP_STATUS_SUCCESS;
-@@ -675,6 +687,8 @@ static int a2mp_chan_recv_cb(struct l2cap_chan *chan, struct sk_buff *skb)
- if (err) {
- struct a2mp_cmd_rej rej;
-
-+ memset(&rej, 0, sizeof(rej));
-+
- rej.reason = cpu_to_le16(0);
- hdr = (void *) skb->data;
-
-@@ -898,6 +912,8 @@ void a2mp_send_getinfo_rsp(struct hci_dev *hdev)
-
- BT_DBG("%s mgr %p", hdev->name, mgr);
-
-+ memset(&rsp, 0, sizeof(rsp));
-+
- rsp.id = hdev->id;
- rsp.status = A2MP_STATUS_INVALID_CTRL_ID;
-
-@@ -995,6 +1011,8 @@ void a2mp_send_create_phy_link_rsp(struct hci_dev *hdev, u8 status)
- if (!mgr)
- return;
-
-+ memset(&rsp, 0, sizeof(rsp));
-+
- hs_hcon = hci_conn_hash_lookup_state(hdev, AMP_LINK, BT_CONNECT);
- if (!hs_hcon) {
- rsp.status = A2MP_STATUS_UNABLE_START_LINK_CREATION;
-@@ -1027,6 +1045,8 @@ void a2mp_discover_amp(struct l2cap_chan *chan)
-
- mgr->bredr_chan = chan;
-
-+ memset(&req, 0, sizeof(req));
-+
- req.mtu = cpu_to_le16(L2CAP_A2MP_DEFAULT_MTU);
- req.ext_feat = 0;
- a2mp_send(mgr, A2MP_DISCOVER_REQ, 1, sizeof(req), &req);
---
-2.26.2
-
-
-From MAILER-DAEMON Thu Oct 15 15:17:31 2020
-From: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
-To: linux-bluetooth@vger.kernel.org
-Subject: [PATCH 2/4] Bluetooth: L2CAP: Fix calling sk_filter on non-socket based channel
-Date: Thu, 06 Aug 2020 11:17:12 -0700
-Message-Id: <20200806181714.3216076-2-luiz.dentz@gmail.com>
-In-Reply-To: <20200806181714.3216076-1-luiz.dentz@gmail.com>
-References: <20200806181714.3216076-1-luiz.dentz@gmail.com>
-Sender: linux-bluetooth-owner@vger.kernel.org
-List-ID: <linux-bluetooth.vger.kernel.org>
-X-Mailing-List: linux-bluetooth@vger.kernel.org
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 7bit
-
-From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
-
-Only sockets will have the chan->data set to an actual sk, channels
-like A2MP would have its own data which would likely cause a crash when
-calling sk_filter, in order to fix this a new callback has been
-introduced so channels can implement their own filtering if necessary.
-
-Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
----
- include/net/bluetooth/l2cap.h | 2 ++
- net/bluetooth/l2cap_core.c | 7 ++++---
- net/bluetooth/l2cap_sock.c | 14 ++++++++++++++
- 3 files changed, 20 insertions(+), 3 deletions(-)
-
-diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h
-index bc5e9fbc3853..61800a7b6192 100644
---- a/include/net/bluetooth/l2cap.h
-+++ b/include/net/bluetooth/l2cap.h
-@@ -666,6 +666,8 @@ struct l2cap_ops {
- struct sk_buff *(*alloc_skb) (struct l2cap_chan *chan,
- unsigned long hdr_len,
- unsigned long len, int nb);
-+ int (*filter) (struct l2cap_chan * chan,
-+ struct sk_buff *skb);
- };
-
- struct l2cap_conn {
-diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
-index a4458c07b5e5..4a6b5e40e5e4 100644
---- a/net/bluetooth/l2cap_core.c
-+++ b/net/bluetooth/l2cap_core.c
-@@ -7301,9 +7301,10 @@ static int l2cap_data_rcv(struct l2cap_chan *chan, struct sk_buff *skb)
- goto drop;
- }
-
-- if ((chan->mode == L2CAP_MODE_ERTM ||
-- chan->mode == L2CAP_MODE_STREAMING) && sk_filter(chan->data, skb))
-- goto drop;
-+ if (chan->ops->filter) {
-+ if (chan->ops->filter(chan, skb))
-+ goto drop;
-+ }
-
- if (!control->sframe) {
- int err;
-diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
-index e1a3e66b1754..79b4c01c515b 100644
---- a/net/bluetooth/l2cap_sock.c
-+++ b/net/bluetooth/l2cap_sock.c
-@@ -1663,6 +1663,19 @@ static void l2cap_sock_suspend_cb(struct l2cap_chan *chan)
- sk->sk_state_change(sk);
- }
-
-+static int l2cap_sock_filter(struct l2cap_chan *chan, struct sk_buff *skb)
-+{
-+ struct sock *sk = chan->data;
-+
-+ switch (chan->mode) {
-+ case L2CAP_MODE_ERTM:
-+ case L2CAP_MODE_STREAMING:
-+ return sk_filter(sk, skb);
-+ }
-+
-+ return 0;
-+}
-+
- static const struct l2cap_ops l2cap_chan_ops = {
- .name = "L2CAP Socket Interface",
- .new_connection = l2cap_sock_new_connection_cb,
-@@ -1678,6 +1691,7 @@ static const struct l2cap_ops l2cap_chan_ops = {
- .get_sndtimeo = l2cap_sock_get_sndtimeo_cb,
- .get_peer_pid = l2cap_sock_get_peer_pid_cb,
- .alloc_skb = l2cap_sock_alloc_skb_cb,
-+ .filter = l2cap_sock_filter,
- };
-
- static void l2cap_sock_destruct(struct sock *sk)
---
-2.26.2
-
-
-From MAILER-DAEMON Thu Oct 15 15:17:31 2020
-From: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
-To: linux-bluetooth@vger.kernel.org
-Subject: [PATCH 3/4] Bluetooth: Disable High Speed by default
-Date: Thu, 06 Aug 2020 11:17:13 -0700
-Message-Id: <20200806181714.3216076-3-luiz.dentz@gmail.com>
-In-Reply-To: <20200806181714.3216076-1-luiz.dentz@gmail.com>
-References: <20200806181714.3216076-1-luiz.dentz@gmail.com>
-Sender: linux-bluetooth-owner@vger.kernel.org
-List-ID: <linux-bluetooth.vger.kernel.org>
-X-Mailing-List: linux-bluetooth@vger.kernel.org
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 7bit
-
-From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
-
-Bluetooth High Speed requires hardware support which is very uncommon
-nowadays since HS has not pickup interest by the industry.
-
-Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
----
- net/bluetooth/Kconfig | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/net/bluetooth/Kconfig b/net/bluetooth/Kconfig
-index e2497d764e97..64e669acd42f 100644
---- a/net/bluetooth/Kconfig
-+++ b/net/bluetooth/Kconfig
-@@ -64,7 +64,6 @@ source "net/bluetooth/hidp/Kconfig"
- config BT_HS
- bool "Bluetooth High Speed (HS) features"
- depends on BT_BREDR
-- default y
- help
- Bluetooth High Speed includes support for off-loading
- Bluetooth connections via 802.11 (wifi) physical layer
---
-2.26.2
-
-
-From MAILER-DAEMON Thu Oct 15 15:17:31 2020
-From: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
-To: linux-bluetooth@vger.kernel.org
-Subject: [PATCH 4/4] Bluetooth: MGMT: Fix not checking if BT_HS is enabled
-Date: Thu, 06 Aug 2020 11:17:14 -0700
-Message-Id: <20200806181714.3216076-4-luiz.dentz@gmail.com>
-In-Reply-To: <20200806181714.3216076-1-luiz.dentz@gmail.com>
-References: <20200806181714.3216076-1-luiz.dentz@gmail.com>
-Sender: linux-bluetooth-owner@vger.kernel.org
-List-ID: <linux-bluetooth.vger.kernel.org>
-X-Mailing-List: linux-bluetooth@vger.kernel.org
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 7bit
-
-From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
-
-This checks if BT_HS is enabled relecting it on MGMT_SETTING_HS instead
-of always reporting it as supported.
-
-Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
----
- net/bluetooth/mgmt.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
-index 5bbe71002fb9..5758ccb524ef 100644
---- a/net/bluetooth/mgmt.c
-+++ b/net/bluetooth/mgmt.c
-@@ -782,7 +782,8 @@ static u32 get_supported_settings(struct hci_dev *hdev)
-
- if (lmp_ssp_capable(hdev)) {
- settings |= MGMT_SETTING_SSP;
-- settings |= MGMT_SETTING_HS;
-+ if (IS_ENABLED(CONFIG_BT_HS))
-+ settings |= MGMT_SETTING_HS;
- }
-
- if (lmp_sc_capable(hdev))
-@@ -1815,6 +1816,10 @@ static int set_hs(struct sock *sk, struct hci_dev *hdev, void *data, u16 len)
-
- bt_dev_dbg(hdev, "sock %p", sk);
-
-+ if (!IS_ENABLED(CONFIG_BT_HS))
-+ return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS,
-+ MGMT_STATUS_NOT_SUPPORTED);
-+
- status = mgmt_bredr_support(hdev);
- if (status)
- return mgmt_cmd_status(sk, hdev->id, MGMT_OP_SET_HS, status);
---
-2.26.2
-
-
diff --git a/SOURCES/brcmfmac-BCM4329-Fixes-and-improvement.patch b/SOURCES/brcmfmac-BCM4329-Fixes-and-improvement.patch
deleted file mode 100644
index cd1886d..0000000
--- a/SOURCES/brcmfmac-BCM4329-Fixes-and-improvement.patch
+++ /dev/null
@@ -1,254 +0,0 @@
-From patchwork Sun Aug 30 19:14:38 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Dmitry Osipenko <digetx@gmail.com>
-X-Patchwork-Id: 11745287
-X-Patchwork-Delegate: kvalo@adurom.com
-Return-Path: <SRS0=8jSp=CI=vger.kernel.org=linux-wireless-owner@kernel.org>
-Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
- [172.30.200.123])
- by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8D83D722
- for <patchwork-linux-wireless@patchwork.kernel.org>;
- Sun, 30 Aug 2020 19:18:07 +0000 (UTC)
-Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
- by mail.kernel.org (Postfix) with ESMTP id 74984206F0
- for <patchwork-linux-wireless@patchwork.kernel.org>;
- Sun, 30 Aug 2020 19:18:07 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com
- header.b="nVMf6eR/"
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S1727940AbgH3TRr (ORCPT
- <rfc822;patchwork-linux-wireless@patchwork.kernel.org>);
- Sun, 30 Aug 2020 15:17:47 -0400
-Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36384 "EHLO
- lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S1726350AbgH3TPI (ORCPT
- <rfc822;linux-wireless@vger.kernel.org>);
- Sun, 30 Aug 2020 15:15:08 -0400
-Received: from mail-lf1-x141.google.com (mail-lf1-x141.google.com
- [IPv6:2a00:1450:4864:20::141])
- by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6E897C061236;
- Sun, 30 Aug 2020 12:15:07 -0700 (PDT)
-Received: by mail-lf1-x141.google.com with SMTP id j15so2315573lfg.7;
- Sun, 30 Aug 2020 12:15:07 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
- d=gmail.com; s=20161025;
- h=from:to:cc:subject:date:message-id:in-reply-to:references
- :mime-version:content-transfer-encoding;
- bh=85fBH067dHvKQNq6ek+W6lpUInMb+ZStwZLTCqTuQ3g=;
- b=nVMf6eR/tzJR9bU6YV5ktJWXhIRVVdwtYx5dR5sOF9HNUZJR1lw0R2eZ5yKGcbs3Ij
- UCrio8mvGQhynAaPTXjMhm57mDu723ApUr0TiZXjmUoJrFQVIFl6VYZeCDu3dXXFGUw0
- XasSLQZ6ak9UxEk4Xen3Q2U/Zr/P+/jB0QY1vR+MRsiIFzZXwQRQpM9IJzj4yIYopB5X
- 9XhWNhf2QWh9gH61eTumnKsNzptLg/c8atZt15ncup5uu1C2f/rwt/4dav6jO2dmbGAs
- p9NeFTAyGXpQxrzCtfDUCTXvmsS6UEY3o15iWQaZopVbo0ypnts/6Vg8upR1VNQVxnM7
- E7Zw==
-X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
- d=1e100.net; s=20161025;
- h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
- :references:mime-version:content-transfer-encoding;
- bh=85fBH067dHvKQNq6ek+W6lpUInMb+ZStwZLTCqTuQ3g=;
- b=WwmOJDBXyk7Su9lj9yFvo0X22q549x/nNNUuUYCmUf8OjvUL6LwAkcQ7l+F6X41BtP
- n1fYqGH6S7w68U3pIL2yyzR7YOl1NDYvZp3LRNGc6Y0dljwZbMMrbTXkdnimwrVneXLQ
- CLjOSIYQkJgtWX9ZG/Uaq+hnaY7BX9EMntr7mXYbD+O8Xmr8/Zb/jUJSKiKIxAVW48JM
- z2B7XRLEfmd8ELQoMhqtCw/23wbQ6tnT5tdtt+ngDJWh7aXnUaVgO8i/tQf0Th3JXBdj
- dB5/P8FDMKrLNwxVYaaHyo/vs86AeUzj+J7Vu+jSQYbWobKSsN0h9FsVwsoEzud1cPlw
- s9Tg==
-X-Gm-Message-State: AOAM531EgBgv8kHi8OlvBWwXAThNCUT/1OO1iu8iU00rAeqI5Tb40pod
- ZyIrbVjNZJe6MgLKqLMeZrw=
-X-Google-Smtp-Source:
- ABdhPJzI4lUuYNLpOO2XLO2AmkS9fShcfxSPyVOk6XVuyEYlvT5tmtBLoLVIApzOMF3Luuy0a5TW7Q==
-X-Received: by 2002:ac2:5e2c:: with SMTP id o12mr3918764lfg.71.1598814905875;
- Sun, 30 Aug 2020 12:15:05 -0700 (PDT)
-Received: from localhost.localdomain (109-252-170-211.dynamic.spd-mgts.ru.
- [109.252.170.211])
- by smtp.gmail.com with ESMTPSA id
- e23sm1409709lfj.80.2020.08.30.12.15.04
- (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
- Sun, 30 Aug 2020 12:15:05 -0700 (PDT)
-From: Dmitry Osipenko <digetx@gmail.com>
-To: Arend van Spriel <arend.vanspriel@broadcom.com>,
- Franky Lin <franky.lin@broadcom.com>,
- Hante Meuleman <hante.meuleman@broadcom.com>,
- Chi-Hsien Lin <chi-hsien.lin@cypress.com>,
- Wright Feng <wright.feng@cypress.com>,
- Kalle Valo <kvalo@codeaurora.org>
-Cc: linux-wireless@vger.kernel.org,
- brcm80211-dev-list.pdl@broadcom.com,
- brcm80211-dev-list@cypress.com, netdev@vger.kernel.org,
- linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org
-Subject: [PATCH v3 2/3] brcmfmac: drop chip id from debug messages
-Date: Sun, 30 Aug 2020 22:14:38 +0300
-Message-Id: <20200830191439.10017-3-digetx@gmail.com>
-X-Mailer: git-send-email 2.27.0
-In-Reply-To: <20200830191439.10017-1-digetx@gmail.com>
-References: <20200830191439.10017-1-digetx@gmail.com>
-MIME-Version: 1.0
-Sender: linux-wireless-owner@vger.kernel.org
-Precedence: bulk
-List-ID: <linux-wireless.vger.kernel.org>
-X-Mailing-List: linux-wireless@vger.kernel.org
-
-The chip ID was already printed out at the time when debug message about
-the changed F2 watermark is printed, hence let's drop the unnecessary part
-of the debug messages. This cleans code a tad and also allows to re-use
-the F2 watermark debug messages by multiple chips.
-
-Suggested-by: Arend van Spriel <arend.vanspriel@broadcom.com>
-Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
----
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
-index b16944a898f9..d4989e0cd7be 100644
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
-@@ -4280,7 +4280,7 @@ static void brcmf_sdio_firmware_callback(struct device *dev, int err,
- break;
- case SDIO_DEVICE_ID_BROADCOM_4329:
- case SDIO_DEVICE_ID_BROADCOM_4339:
-- brcmf_dbg(INFO, "set F2 watermark to 0x%x*4 bytes for 4339\n",
-+ brcmf_dbg(INFO, "set F2 watermark to 0x%x*4 bytes\n",
- CY_4339_F2_WATERMARK);
- brcmf_sdiod_writeb(sdiod, SBSDIO_WATERMARK,
- CY_4339_F2_WATERMARK, &err);
-@@ -4293,7 +4293,7 @@ static void brcmf_sdio_firmware_callback(struct device *dev, int err,
- CY_4339_MESBUSYCTRL, &err);
- break;
- case SDIO_DEVICE_ID_BROADCOM_43455:
-- brcmf_dbg(INFO, "set F2 watermark to 0x%x*4 bytes for 43455\n",
-+ brcmf_dbg(INFO, "set F2 watermark to 0x%x*4 bytes\n",
- CY_43455_F2_WATERMARK);
- brcmf_sdiod_writeb(sdiod, SBSDIO_WATERMARK,
- CY_43455_F2_WATERMARK, &err);
-
-From patchwork Sun Aug 30 19:14:39 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Dmitry Osipenko <digetx@gmail.com>
-X-Patchwork-Id: 11745291
-X-Patchwork-Delegate: kvalo@adurom.com
-Return-Path: <SRS0=8jSp=CI=vger.kernel.org=linux-wireless-owner@kernel.org>
-Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
- [172.30.200.123])
- by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BC61D722
- for <patchwork-linux-wireless@patchwork.kernel.org>;
- Sun, 30 Aug 2020 19:18:14 +0000 (UTC)
-Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
- by mail.kernel.org (Postfix) with ESMTP id A440D20757
- for <patchwork-linux-wireless@patchwork.kernel.org>;
- Sun, 30 Aug 2020 19:18:14 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com
- header.b="ADD6Kq4a"
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S1727902AbgH3TRq (ORCPT
- <rfc822;patchwork-linux-wireless@patchwork.kernel.org>);
- Sun, 30 Aug 2020 15:17:46 -0400
-Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36392 "EHLO
- lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S1726380AbgH3TPJ (ORCPT
- <rfc822;linux-wireless@vger.kernel.org>);
- Sun, 30 Aug 2020 15:15:09 -0400
-Received: from mail-lf1-x142.google.com (mail-lf1-x142.google.com
- [IPv6:2a00:1450:4864:20::142])
- by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6439FC061239;
- Sun, 30 Aug 2020 12:15:08 -0700 (PDT)
-Received: by mail-lf1-x142.google.com with SMTP id j15so2315593lfg.7;
- Sun, 30 Aug 2020 12:15:08 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
- d=gmail.com; s=20161025;
- h=from:to:cc:subject:date:message-id:in-reply-to:references
- :mime-version:content-transfer-encoding;
- bh=WKk6KWPNkMHUCww/FbErLxUYYQtEUh3n/PTtmJB/IIQ=;
- b=ADD6Kq4arZJOO7Z+X6dlbNFUKa2MGhu79OcOljRz3WAcc/N3H23SdadMXUusZl7Re7
- mavcADGOOGjw4YPLh4Bd3AHe3Wf3GrR9xszVDjKeNWBVzpgfPFpbu+G5v/ZCc1IocLez
- Tml2HhWF++QwC8/gg0QSMJMYiVTHYrz7Mfq31KkwcMzdX/uXIwpZBuRtIx3Vf6OfTE4I
- gSfTcZ6mcSbFla2yJur9lviMamt/2uiHZG0/UTLDqfDQ0fXciUFWXW/wU1YYVwLxynkp
- 32H0oWWSihfW4LFt7gufNGgSOCh6YMorVxHCY3+a2JagEhMaXuLn853leokAN8VD3nsO
- IjnQ==
-X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
- d=1e100.net; s=20161025;
- h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
- :references:mime-version:content-transfer-encoding;
- bh=WKk6KWPNkMHUCww/FbErLxUYYQtEUh3n/PTtmJB/IIQ=;
- b=P70ZXffe7IiriynRgLFOrgujg3zCp+qiQV2DtraBUnPXzHbxNDRH7MnRX8RyYwJZs7
- MDwZwyOsryxbtpv/1lQfakB0pFKDzMAqpRhxIc4amXyIBz2g4uoZIDStNSODVhXtjG5H
- h4uPuSz9neHI7vO4/7Yp1kvBCS29fbXLIKIFGR4QrwqWxGuaMhNyeXs2Eb3K/jkyfDjn
- 1HVDqw+yW5WX2R5Rq7xkjw05AMrqSVvecbX+WV/ksoCgYd3N9bS52B0rBA3Qd6uOADTj
- 82vYn1zNANhjSnTRMC0hOTZmzmnqZsyksYdQrpbyEsdpHaKbB6GkX7ylp3TM9XDpD9xK
- +ROQ==
-X-Gm-Message-State: AOAM532osjv7Nw1P0/HRBwzPySBJZh+vqXrZj/Ko6Yzt0eyt2qeOFDG3
- JOT89QLhVftNg53aBYKa2p4=
-X-Google-Smtp-Source:
- ABdhPJzL0Cdo7AKGH5FiC2AREv1bSdtUCg+BEl1uu43NLTd1wRmGMfv3vj1BvcduUPeX7jN48VJ+7Q==
-X-Received: by 2002:ac2:41cc:: with SMTP id d12mr4018561lfi.20.1598814906867;
- Sun, 30 Aug 2020 12:15:06 -0700 (PDT)
-Received: from localhost.localdomain (109-252-170-211.dynamic.spd-mgts.ru.
- [109.252.170.211])
- by smtp.gmail.com with ESMTPSA id
- e23sm1409709lfj.80.2020.08.30.12.15.05
- (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
- Sun, 30 Aug 2020 12:15:06 -0700 (PDT)
-From: Dmitry Osipenko <digetx@gmail.com>
-To: Arend van Spriel <arend.vanspriel@broadcom.com>,
- Franky Lin <franky.lin@broadcom.com>,
- Hante Meuleman <hante.meuleman@broadcom.com>,
- Chi-Hsien Lin <chi-hsien.lin@cypress.com>,
- Wright Feng <wright.feng@cypress.com>,
- Kalle Valo <kvalo@codeaurora.org>
-Cc: linux-wireless@vger.kernel.org,
- brcm80211-dev-list.pdl@broadcom.com,
- brcm80211-dev-list@cypress.com, netdev@vger.kernel.org,
- linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org
-Subject: [PATCH v3 3/3] brcmfmac: set F2 SDIO block size to 128 bytes for
- BCM4329
-Date: Sun, 30 Aug 2020 22:14:39 +0300
-Message-Id: <20200830191439.10017-4-digetx@gmail.com>
-X-Mailer: git-send-email 2.27.0
-In-Reply-To: <20200830191439.10017-1-digetx@gmail.com>
-References: <20200830191439.10017-1-digetx@gmail.com>
-MIME-Version: 1.0
-Sender: linux-wireless-owner@vger.kernel.org
-Precedence: bulk
-List-ID: <linux-wireless.vger.kernel.org>
-X-Mailing-List: linux-wireless@vger.kernel.org
-
-Setting F2 block size to 128 bytes for BCM4329 allows to significantly
-improve RX throughput on NVIDIA Tegra20. Before this change the throughput
-was capped to 30 Mbit/s on Tegra, now throughput is at 40 Mbit/s, which is
-a maximum throughput for the BCM4329 chip. The F2 block size is borrowed
-from the downstream BCMDHD driver. The comment in the BCMDHD driver says
-that 128B improves throughput and turns out that it works for the brcmfmac
-as well.
-
-Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
----
- drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-index 0dc4de2fa9f6..318bd00bf94f 100644
---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
-@@ -45,6 +45,7 @@
- #define SDIO_FUNC2_BLOCKSIZE 512
- #define SDIO_4373_FUNC2_BLOCKSIZE 256
- #define SDIO_435X_FUNC2_BLOCKSIZE 256
-+#define SDIO_4329_FUNC2_BLOCKSIZE 128
- /* Maximum milliseconds to wait for F2 to come up */
- #define SDIO_WAIT_F2RDY 3000
-
-@@ -920,6 +921,9 @@ int brcmf_sdiod_probe(struct brcmf_sdio_dev *sdiodev)
- case SDIO_DEVICE_ID_BROADCOM_4356:
- f2_blksz = SDIO_435X_FUNC2_BLOCKSIZE;
- break;
-+ case SDIO_DEVICE_ID_BROADCOM_4329:
-+ f2_blksz = SDIO_4329_FUNC2_BLOCKSIZE;
-+ break;
- default:
- break;
- }
diff --git a/SOURCES/dma-pool-fixes.patch b/SOURCES/dma-pool-fixes.patch
deleted file mode 100644
index e8977c3..0000000
--- a/SOURCES/dma-pool-fixes.patch
+++ /dev/null
@@ -1,419 +0,0 @@
-From patchwork Fri Aug 14 10:26:23 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
-X-Patchwork-Id: 1287370
-Return-Path: <SRS0=KEJG=BY=vger.kernel.org=linux-kernel-owner@kernel.org>
-Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 66DB2C433E1
- for <linux-kernel@archiver.kernel.org>; Fri, 14 Aug 2020 10:26:38 +0000 (UTC)
-Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
- by mail.kernel.org (Postfix) with ESMTP id 4A18620781
- for <linux-kernel@archiver.kernel.org>; Fri, 14 Aug 2020 10:26:38 +0000 (UTC)
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S1726919AbgHNK0g (ORCPT
- <rfc822;linux-kernel@archiver.kernel.org>);
- Fri, 14 Aug 2020 06:26:36 -0400
-Received: from mx2.suse.de ([195.135.220.15]:54358 "EHLO mx2.suse.de"
- rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
- id S1726012AbgHNK0f (ORCPT <rfc822;linux-kernel@vger.kernel.org>);
- Fri, 14 Aug 2020 06:26:35 -0400
-X-Virus-Scanned: by amavisd-new at test-mx.suse.de
-Received: from relay2.suse.de (unknown [195.135.221.27])
- by mx2.suse.de (Postfix) with ESMTP id B5BB5AD1A;
- Fri, 14 Aug 2020 10:26:56 +0000 (UTC)
-From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
-To: amit.pundir@linaro.org, hch@lst.de, linux-kernel@vger.kernel.org,
- Marek Szyprowski <m.szyprowski@samsung.com>,
- Robin Murphy <robin.murphy@arm.com>
-Cc: rientjes@google.com, jeremy.linton@arm.com,
- linux-rpi-kernel@lists.infradead.org,
- Nicolas Saenz Julienne <nsaenzjulienne@suse.de>,
- iommu@lists.linux-foundation.org
-Subject: [PATCH v4 1/2] dma-pool: Only allocate from CMA when in same memory
- zone
-Date: Fri, 14 Aug 2020 12:26:23 +0200
-Message-Id: <20200814102625.25599-2-nsaenzjulienne@suse.de>
-X-Mailer: git-send-email 2.28.0
-In-Reply-To: <20200814102625.25599-1-nsaenzjulienne@suse.de>
-References: <20200814102625.25599-1-nsaenzjulienne@suse.de>
-MIME-Version: 1.0
-Sender: linux-kernel-owner@vger.kernel.org
-Precedence: bulk
-List-ID: <linux-kernel.vger.kernel.org>
-X-Mailing-List: linux-kernel@vger.kernel.org
-
-There is no guarantee to CMA's placement, so allocating a zone specific
-atomic pool from CMA might return memory from a completely different
-memory zone. To get around this double check CMA's placement before
-allocating from it.
-
-Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
-[hch: rebased, added a fallback to the page allocator, allow dipping into
- lower CMA pools]
-Signed-off-by: Christoph Hellwig <hch@lst.de>
----
-
-Changes since v3:
- - Do not use memblock_start_of_DRAM()
-
-Changes since v2:
- - Go back to v1 behavior
-
- kernel/dma/pool.c | 31 ++++++++++++++++++++++++++++++-
- 1 file changed, 30 insertions(+), 1 deletion(-)
-
-diff --git a/kernel/dma/pool.c b/kernel/dma/pool.c
-index 6bc74a2d5127..57f4a0f32a92 100644
---- a/kernel/dma/pool.c
-+++ b/kernel/dma/pool.c
-@@ -3,7 +3,9 @@
- * Copyright (C) 2012 ARM Ltd.
- * Copyright (C) 2020 Google LLC
- */
-+#include <linux/cma.h>
- #include <linux/debugfs.h>
-+#include <linux/dma-contiguous.h>
- #include <linux/dma-direct.h>
- #include <linux/dma-noncoherent.h>
- #include <linux/init.h>
-@@ -55,6 +57,29 @@ static void dma_atomic_pool_size_add(gfp_t gfp, size_t size)
- pool_size_kernel += size;
- }
-
-+static bool cma_in_zone(gfp_t gfp)
-+{
-+ unsigned long size;
-+ phys_addr_t end;
-+ struct cma *cma;
-+
-+ cma = dev_get_cma_area(NULL);
-+ if (!cma)
-+ return false;
-+
-+ size = cma_get_size(cma);
-+ if (!size)
-+ return false;
-+
-+ /* CMA can't cross zone boundaries, see cma_activate_area() */
-+ end = cma_get_base(cma) + size - 1;
-+ if (IS_ENABLED(CONFIG_ZONE_DMA) && (gfp & GFP_DMA))
-+ return end <= DMA_BIT_MASK(zone_dma_bits);
-+ if (IS_ENABLED(CONFIG_ZONE_DMA32) && (gfp & GFP_DMA32))
-+ return end <= DMA_BIT_MASK(32);
-+ return true;
-+}
-+
- static int atomic_pool_expand(struct gen_pool *pool, size_t pool_size,
- gfp_t gfp)
- {
-@@ -68,7 +93,11 @@ static int atomic_pool_expand(struct gen_pool *pool, size_t pool_size,
-
- do {
- pool_size = 1 << (PAGE_SHIFT + order);
-- page = alloc_pages(gfp, order);
-+ if (cma_in_zone(gfp))
-+ page = dma_alloc_from_contiguous(NULL, 1 << order,
-+ order, false);
-+ if (!page)
-+ page = alloc_pages(gfp, order);
- } while (!page && order-- > 0);
- if (!page)
- goto out;
-
-From patchwork Fri Aug 14 10:26:24 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
-X-Patchwork-Id: 1287371
-Return-Path: <SRS0=KEJG=BY=vger.kernel.org=linux-kernel-owner@kernel.org>
-Received: from mail.kernel.org (mail.kernel.org [198.145.29.99])
- by smtp.lore.kernel.org (Postfix) with ESMTP id 1B283C433E3
- for <linux-kernel@archiver.kernel.org>; Fri, 14 Aug 2020 10:26:42 +0000 (UTC)
-Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
- by mail.kernel.org (Postfix) with ESMTP id F3F9820781
- for <linux-kernel@archiver.kernel.org>; Fri, 14 Aug 2020 10:26:41 +0000 (UTC)
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S1726948AbgHNK0k (ORCPT
- <rfc822;linux-kernel@archiver.kernel.org>);
- Fri, 14 Aug 2020 06:26:40 -0400
-Received: from mx2.suse.de ([195.135.220.15]:54380 "EHLO mx2.suse.de"
- rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP
- id S1726891AbgHNK0i (ORCPT <rfc822;linux-kernel@vger.kernel.org>);
- Fri, 14 Aug 2020 06:26:38 -0400
-X-Virus-Scanned: by amavisd-new at test-mx.suse.de
-Received: from relay2.suse.de (unknown [195.135.221.27])
- by mx2.suse.de (Postfix) with ESMTP id 9EA78AD41;
- Fri, 14 Aug 2020 10:26:57 +0000 (UTC)
-From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
-To: amit.pundir@linaro.org, hch@lst.de, linux-kernel@vger.kernel.org,
- Joerg Roedel <joro@8bytes.org>,
- Marek Szyprowski <m.szyprowski@samsung.com>,
- Robin Murphy <robin.murphy@arm.com>
-Cc: rientjes@google.com, jeremy.linton@arm.com,
- linux-rpi-kernel@lists.infradead.org,
- iommu@lists.linux-foundation.org
-Subject: [PATCH v4 2/2] dma-pool: fix coherent pool allocations for IOMMU
- mappings
-Date: Fri, 14 Aug 2020 12:26:24 +0200
-Message-Id: <20200814102625.25599-3-nsaenzjulienne@suse.de>
-X-Mailer: git-send-email 2.28.0
-In-Reply-To: <20200814102625.25599-1-nsaenzjulienne@suse.de>
-References: <20200814102625.25599-1-nsaenzjulienne@suse.de>
-MIME-Version: 1.0
-Sender: linux-kernel-owner@vger.kernel.org
-Precedence: bulk
-List-ID: <linux-kernel.vger.kernel.org>
-X-Mailing-List: linux-kernel@vger.kernel.org
-
-From: Christoph Hellwig <hch@lst.de>
-
-When allocating coherent pool memory for an IOMMU mapping we don't care
-about the DMA mask. Move the guess for the initial GFP mask into the
-dma_direct_alloc_pages and pass dma_coherent_ok as a function pointer
-argument so that it doesn't get applied to the IOMMU case.
-
-Signed-off-by: Christoph Hellwig <hch@lst.de>
----
-
-Changes since v1:
- - Check if phys_addr_ok() exists prior calling it
-
- drivers/iommu/dma-iommu.c | 4 +-
- include/linux/dma-direct.h | 3 -
- include/linux/dma-mapping.h | 5 +-
- kernel/dma/direct.c | 13 ++--
- kernel/dma/pool.c | 114 +++++++++++++++---------------------
- 5 files changed, 62 insertions(+), 77 deletions(-)
-
-diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
-index 4959f5df21bd..5141d49a046b 100644
---- a/drivers/iommu/dma-iommu.c
-+++ b/drivers/iommu/dma-iommu.c
-@@ -1035,8 +1035,8 @@ static void *iommu_dma_alloc(struct device *dev, size_t size,
-
- if (IS_ENABLED(CONFIG_DMA_DIRECT_REMAP) &&
- !gfpflags_allow_blocking(gfp) && !coherent)
-- cpu_addr = dma_alloc_from_pool(dev, PAGE_ALIGN(size), &page,
-- gfp);
-+ page = dma_alloc_from_pool(dev, PAGE_ALIGN(size), &cpu_addr,
-+ gfp, NULL);
- else
- cpu_addr = iommu_dma_alloc_pages(dev, size, &page, gfp, attrs);
- if (!cpu_addr)
-diff --git a/include/linux/dma-direct.h b/include/linux/dma-direct.h
-index 5a3ce2a24794..6e87225600ae 100644
---- a/include/linux/dma-direct.h
-+++ b/include/linux/dma-direct.h
-@@ -73,9 +73,6 @@ static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size,
- }
-
- u64 dma_direct_get_required_mask(struct device *dev);
--gfp_t dma_direct_optimal_gfp_mask(struct device *dev, u64 dma_mask,
-- u64 *phys_mask);
--bool dma_coherent_ok(struct device *dev, phys_addr_t phys, size_t size);
- void *dma_direct_alloc(struct device *dev, size_t size, dma_addr_t *dma_handle,
- gfp_t gfp, unsigned long attrs);
- void dma_direct_free(struct device *dev, size_t size, void *cpu_addr,
-diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
-index 016b96b384bd..52635e91143b 100644
---- a/include/linux/dma-mapping.h
-+++ b/include/linux/dma-mapping.h
-@@ -522,8 +522,9 @@ void *dma_common_pages_remap(struct page **pages, size_t size,
- pgprot_t prot, const void *caller);
- void dma_common_free_remap(void *cpu_addr, size_t size);
-
--void *dma_alloc_from_pool(struct device *dev, size_t size,
-- struct page **ret_page, gfp_t flags);
-+struct page *dma_alloc_from_pool(struct device *dev, size_t size,
-+ void **cpu_addr, gfp_t flags,
-+ bool (*phys_addr_ok)(struct device *, phys_addr_t, size_t));
- bool dma_free_from_pool(struct device *dev, void *start, size_t size);
-
- int
-diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
-index bb0041e99659..db6ef07aec3b 100644
---- a/kernel/dma/direct.c
-+++ b/kernel/dma/direct.c
-@@ -43,7 +43,7 @@ u64 dma_direct_get_required_mask(struct device *dev)
- return (1ULL << (fls64(max_dma) - 1)) * 2 - 1;
- }
-
--gfp_t dma_direct_optimal_gfp_mask(struct device *dev, u64 dma_mask,
-+static gfp_t dma_direct_optimal_gfp_mask(struct device *dev, u64 dma_mask,
- u64 *phys_limit)
- {
- u64 dma_limit = min_not_zero(dma_mask, dev->bus_dma_limit);
-@@ -68,7 +68,7 @@ gfp_t dma_direct_optimal_gfp_mask(struct device *dev, u64 dma_mask,
- return 0;
- }
-
--bool dma_coherent_ok(struct device *dev, phys_addr_t phys, size_t size)
-+static bool dma_coherent_ok(struct device *dev, phys_addr_t phys, size_t size)
- {
- return phys_to_dma_direct(dev, phys) + size - 1 <=
- min_not_zero(dev->coherent_dma_mask, dev->bus_dma_limit);
-@@ -161,8 +161,13 @@ void *dma_direct_alloc_pages(struct device *dev, size_t size,
- size = PAGE_ALIGN(size);
-
- if (dma_should_alloc_from_pool(dev, gfp, attrs)) {
-- ret = dma_alloc_from_pool(dev, size, &page, gfp);
-- if (!ret)
-+ u64 phys_mask;
-+
-+ gfp |= dma_direct_optimal_gfp_mask(dev, dev->coherent_dma_mask,
-+ &phys_mask);
-+ page = dma_alloc_from_pool(dev, size, &ret, gfp,
-+ dma_coherent_ok);
-+ if (!page)
- return NULL;
- goto done;
- }
-diff --git a/kernel/dma/pool.c b/kernel/dma/pool.c
-index 57f4a0f32a92..b0aaba4197ae 100644
---- a/kernel/dma/pool.c
-+++ b/kernel/dma/pool.c
-@@ -225,93 +225,75 @@ static int __init dma_atomic_pool_init(void)
- }
- postcore_initcall(dma_atomic_pool_init);
-
--static inline struct gen_pool *dma_guess_pool_from_device(struct device *dev)
-+static inline struct gen_pool *dma_guess_pool(struct gen_pool *prev, gfp_t gfp)
- {
-- u64 phys_mask;
-- gfp_t gfp;
--
-- gfp = dma_direct_optimal_gfp_mask(dev, dev->coherent_dma_mask,
-- &phys_mask);
-- if (IS_ENABLED(CONFIG_ZONE_DMA) && gfp == GFP_DMA)
-+ if (prev == NULL) {
-+ if (IS_ENABLED(CONFIG_ZONE_DMA32) && (gfp & GFP_DMA32))
-+ return atomic_pool_dma32;
-+ if (IS_ENABLED(CONFIG_ZONE_DMA) && (gfp & GFP_DMA))
-+ return atomic_pool_dma;
-+ return atomic_pool_kernel;
-+ }
-+ if (prev == atomic_pool_kernel)
-+ return atomic_pool_dma32 ? atomic_pool_dma32 : atomic_pool_dma;
-+ if (prev == atomic_pool_dma32)
- return atomic_pool_dma;
-- if (IS_ENABLED(CONFIG_ZONE_DMA32) && gfp == GFP_DMA32)
-- return atomic_pool_dma32;
-- return atomic_pool_kernel;
-+ return NULL;
- }
-
--static inline struct gen_pool *dma_get_safer_pool(struct gen_pool *bad_pool)
-+static struct page *__dma_alloc_from_pool(struct device *dev, size_t size,
-+ struct gen_pool *pool, void **cpu_addr,
-+ bool (*phys_addr_ok)(struct device *, phys_addr_t, size_t))
- {
-- if (bad_pool == atomic_pool_kernel)
-- return atomic_pool_dma32 ? : atomic_pool_dma;
-+ unsigned long addr;
-+ phys_addr_t phys;
-
-- if (bad_pool == atomic_pool_dma32)
-- return atomic_pool_dma;
-+ addr = gen_pool_alloc(pool, size);
-+ if (!addr)
-+ return NULL;
-
-- return NULL;
--}
-+ phys = gen_pool_virt_to_phys(pool, addr);
-+ if (phys_addr_ok && !phys_addr_ok(dev, phys, size)) {
-+ gen_pool_free(pool, addr, size);
-+ return NULL;
-+ }
-
--static inline struct gen_pool *dma_guess_pool(struct device *dev,
-- struct gen_pool *bad_pool)
--{
-- if (bad_pool)
-- return dma_get_safer_pool(bad_pool);
-+ if (gen_pool_avail(pool) < atomic_pool_size)
-+ schedule_work(&atomic_pool_work);
-
-- return dma_guess_pool_from_device(dev);
-+ *cpu_addr = (void *)addr;
-+ memset(*cpu_addr, 0, size);
-+ return pfn_to_page(__phys_to_pfn(phys));
- }
-
--void *dma_alloc_from_pool(struct device *dev, size_t size,
-- struct page **ret_page, gfp_t flags)
-+struct page *dma_alloc_from_pool(struct device *dev, size_t size,
-+ void **cpu_addr, gfp_t gfp,
-+ bool (*phys_addr_ok)(struct device *, phys_addr_t, size_t))
- {
- struct gen_pool *pool = NULL;
-- unsigned long val = 0;
-- void *ptr = NULL;
-- phys_addr_t phys;
--
-- while (1) {
-- pool = dma_guess_pool(dev, pool);
-- if (!pool) {
-- WARN(1, "Failed to get suitable pool for %s\n",
-- dev_name(dev));
-- break;
-- }
--
-- val = gen_pool_alloc(pool, size);
-- if (!val)
-- continue;
--
-- phys = gen_pool_virt_to_phys(pool, val);
-- if (dma_coherent_ok(dev, phys, size))
-- break;
--
-- gen_pool_free(pool, val, size);
-- val = 0;
-- }
--
--
-- if (val) {
-- *ret_page = pfn_to_page(__phys_to_pfn(phys));
-- ptr = (void *)val;
-- memset(ptr, 0, size);
-+ struct page *page;
-
-- if (gen_pool_avail(pool) < atomic_pool_size)
-- schedule_work(&atomic_pool_work);
-+ while ((pool = dma_guess_pool(pool, gfp))) {
-+ page = __dma_alloc_from_pool(dev, size, pool, cpu_addr,
-+ phys_addr_ok);
-+ if (page)
-+ return page;
- }
-
-- return ptr;
-+ WARN(1, "Failed to get suitable pool for %s\n", dev_name(dev));
-+ return NULL;
- }
-
- bool dma_free_from_pool(struct device *dev, void *start, size_t size)
- {
- struct gen_pool *pool = NULL;
-
-- while (1) {
-- pool = dma_guess_pool(dev, pool);
-- if (!pool)
-- return false;
--
-- if (gen_pool_has_addr(pool, (unsigned long)start, size)) {
-- gen_pool_free(pool, (unsigned long)start, size);
-- return true;
-- }
-+ while ((pool = dma_guess_pool(pool, 0))) {
-+ if (!gen_pool_has_addr(pool, (unsigned long)start, size))
-+ continue;
-+ gen_pool_free(pool, (unsigned long)start, size);
-+ return true;
- }
-+
-+ return false;
- }
diff --git a/SOURCES/futex2.patch b/SOURCES/futex2.patch
index bae4138..1bc4486 100644
--- a/SOURCES/futex2.patch
+++ b/SOURCES/futex2.patch
@@ -1,7 +1,7 @@
-From ada1f13b98e86cb7ac4140c4976c3d165006d995 Mon Sep 17 00:00:00 2001
+From 14a106cc87e6d03169ac8c7ea030e3d7fac2dfe4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Almeida?= <andrealmeid@collabora.com>
Date: Wed, 5 Aug 2020 12:40:26 -0300
-Subject: [PATCH 01/13] futex2: Add new futex interface
+Subject: [PATCH 1/9] futex2: Add new futex interface
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -10,25 +10,28 @@ Initial implementation for futex2. Support only private u32 wait/wake, with
timeout (monotonic and realtime clocks).
Signed-off-by: André Almeida <andrealmeid@collabora.com>
+Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
---
- MAINTAINERS | 2 +-
- arch/x86/entry/syscalls/syscall_32.tbl | 2 +
- arch/x86/entry/syscalls/syscall_64.tbl | 2 +
- include/linux/syscalls.h | 7 +
- include/uapi/asm-generic/unistd.h | 8 +-
- include/uapi/linux/futex.h | 40 ++
- init/Kconfig | 7 +
- kernel/Makefile | 1 +
- kernel/futex2.c | 484 +++++++++++++++++++++++++
- kernel/sys_ni.c | 4 +
- 10 files changed, 555 insertions(+), 2 deletions(-)
+ MAINTAINERS | 2 +-
+ arch/x86/entry/syscalls/syscall_32.tbl | 2 +
+ arch/x86/entry/syscalls/syscall_64.tbl | 2 +
+ include/linux/syscalls.h | 7 +
+ include/uapi/asm-generic/unistd.h | 8 +-
+ include/uapi/linux/futex.h | 40 ++
+ init/Kconfig | 7 +
+ kernel/Makefile | 1 +
+ kernel/futex2.c | 484 ++++++++++++++++++
+ kernel/sys_ni.c | 4 +
+ tools/include/uapi/asm-generic/unistd.h | 9 +-
+ .../arch/x86/entry/syscalls/syscall_64.tbl | 2 +
+ 12 files changed, 565 insertions(+), 3 deletions(-)
create mode 100644 kernel/futex2.c
diff --git a/MAINTAINERS b/MAINTAINERS
-index 867157311dc8..0c425f74ed88 100644
+index 2daa6ee67..855d38511 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -7214,7 +7214,7 @@ F: Documentation/locking/*futex*
+@@ -7259,7 +7259,7 @@ F: Documentation/locking/*futex*
F: include/asm-generic/futex.h
F: include/linux/futex.h
F: include/uapi/linux/futex.h
@@ -38,30 +41,30 @@ index 867157311dc8..0c425f74ed88 100644
F: tools/testing/selftests/futex/
diff --git a/arch/x86/entry/syscalls/syscall_32.tbl b/arch/x86/entry/syscalls/syscall_32.tbl
-index 9d1102873666..955322962964 100644
+index 0d0667a9f..83a75ff39 100644
--- a/arch/x86/entry/syscalls/syscall_32.tbl
+++ b/arch/x86/entry/syscalls/syscall_32.tbl
-@@ -444,3 +444,5 @@
- 437 i386 openat2 sys_openat2
+@@ -445,3 +445,5 @@
438 i386 pidfd_getfd sys_pidfd_getfd
439 i386 faccessat2 sys_faccessat2
-+440 i386 futex_wait sys_futex_wait
-+441 i386 futex_wake sys_futex_wake
+ 440 i386 process_madvise sys_process_madvise
++441 i386 futex_wait sys_futex_wait
++442 i386 futex_wake sys_futex_wake
diff --git a/arch/x86/entry/syscalls/syscall_64.tbl b/arch/x86/entry/syscalls/syscall_64.tbl
-index f30d6ae9a688..4133bfe96891 100644
+index 379819244..6658fd63c 100644
--- a/arch/x86/entry/syscalls/syscall_64.tbl
+++ b/arch/x86/entry/syscalls/syscall_64.tbl
-@@ -361,6 +361,8 @@
- 437 common openat2 sys_openat2
+@@ -362,6 +362,8 @@
438 common pidfd_getfd sys_pidfd_getfd
439 common faccessat2 sys_faccessat2
-+440 common futex_wait sys_futex_wait
-+441 common futex_wake sys_futex_wake
+ 440 common process_madvise sys_process_madvise
++441 common futex_wait sys_futex_wait
++442 common futex_wake sys_futex_wake
#
- # x32-specific system call numbers start at 512 to avoid cache impact
+ # Due to a historical design error, certain syscalls are numbered differently
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
-index 75ac7f8ae93c..38c3a87dbfc2 100644
+index 37bea07c1..b6b77cf2b 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -589,6 +589,13 @@ asmlinkage long sys_get_robust_list(int pid,
@@ -79,27 +82,27 @@ index 75ac7f8ae93c..38c3a87dbfc2 100644
asmlinkage long sys_nanosleep(struct __kernel_timespec __user *rqtp,
struct __kernel_timespec __user *rmtp);
diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h
-index 995b36c2ea7d..80567ade774a 100644
+index 205631898..ae47d6a9e 100644
--- a/include/uapi/asm-generic/unistd.h
+++ b/include/uapi/asm-generic/unistd.h
-@@ -860,8 +860,14 @@ __SYSCALL(__NR_pidfd_getfd, sys_pidfd_getfd)
- #define __NR_faccessat2 439
- __SYSCALL(__NR_faccessat2, sys_faccessat2)
+@@ -860,8 +860,14 @@ __SYSCALL(__NR_faccessat2, sys_faccessat2)
+ #define __NR_process_madvise 440
+ __SYSCALL(__NR_process_madvise, sys_process_madvise)
-+#define __NR_futex_wait 440
++#define __NR_futex_wait 441
+__SYSCALL(__NR_futex_wait, sys_futex_wait)
+
-+#define __NR_futex_wake 441
++#define __NR_futex_wake 442
+__SYSCALL(__NR_futex_wake, sys_futex_wake)
+
#undef __NR_syscalls
--#define __NR_syscalls 440
-+#define __NR_syscalls 442
+-#define __NR_syscalls 441
++#define __NR_syscalls 443
/*
* 32 bit systems traditionally used different
diff --git a/include/uapi/linux/futex.h b/include/uapi/linux/futex.h
-index a89eb0accd5e..35a5bf1cd41b 100644
+index a89eb0acc..35a5bf1cd 100644
--- a/include/uapi/linux/futex.h
+++ b/include/uapi/linux/futex.h
@@ -41,6 +41,46 @@
@@ -150,7 +153,7 @@ index a89eb0accd5e..35a5bf1cd41b 100644
* Support for robust futexes: the kernel cleans up held futexes at
* thread exit time.
diff --git a/init/Kconfig b/init/Kconfig
-index 2a5df1cf838c..440f21f5c3d8 100644
+index 02d13ae27..1264687ea 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -1522,6 +1522,13 @@ config FUTEX
@@ -168,10 +171,10 @@ index 2a5df1cf838c..440f21f5c3d8 100644
bool
depends on FUTEX && RT_MUTEXES
diff --git a/kernel/Makefile b/kernel/Makefile
-index 9a20016d4900..51ea9bc647bf 100644
+index af601b9bd..bb7f33986 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
-@@ -57,6 +57,7 @@ obj-$(CONFIG_PROFILING) += profile.o
+@@ -54,6 +54,7 @@ obj-$(CONFIG_PROFILING) += profile.o
obj-$(CONFIG_STACKTRACE) += stacktrace.o
obj-y += time/
obj-$(CONFIG_FUTEX) += futex.o
@@ -181,7 +184,7 @@ index 9a20016d4900..51ea9bc647bf 100644
ifneq ($(CONFIG_SMP),y)
diff --git a/kernel/futex2.c b/kernel/futex2.c
new file mode 100644
-index 000000000000..107b80a466d0
+index 000000000..107b80a46
--- /dev/null
+++ b/kernel/futex2.c
@@ -0,0 +1,484 @@
@@ -670,7 +673,7 @@ index 000000000000..107b80a466d0
+}
+core_initcall(futex2_init);
diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c
-index 4d59775ea79c..10049bc56c24 100644
+index f27ac94d5..35ff743b1 100644
--- a/kernel/sys_ni.c
+++ b/kernel/sys_ni.c
@@ -148,6 +148,10 @@ COND_SYSCALL_COMPAT(set_robust_list);
@@ -684,13 +687,48 @@ index 4d59775ea79c..10049bc56c24 100644
/* kernel/hrtimer.c */
/* kernel/itimer.c */
+diff --git a/tools/include/uapi/asm-generic/unistd.h b/tools/include/uapi/asm-generic/unistd.h
+index 205631898..cd79f94e0 100644
+--- a/tools/include/uapi/asm-generic/unistd.h
++++ b/tools/include/uapi/asm-generic/unistd.h
+@@ -860,8 +860,15 @@ __SYSCALL(__NR_faccessat2, sys_faccessat2)
+ #define __NR_process_madvise 440
+ __SYSCALL(__NR_process_madvise, sys_process_madvise)
+
++#define __NR_futex_wait 441
++__SYSCALL(__NR_futex_wait, sys_futex_wait)
++
++#define __NR_futex_wake 442
++__SYSCALL(__NR_futex_wake, sys_futex_wake)
++
+ #undef __NR_syscalls
+-#define __NR_syscalls 441
++#define __NR_syscalls 443
++
+
+ /*
+ * 32 bit systems traditionally used different
+diff --git a/tools/perf/arch/x86/entry/syscalls/syscall_64.tbl b/tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
+index 379819244..47de3bf93 100644
+--- a/tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
++++ b/tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
+@@ -362,6 +362,8 @@
+ 438 common pidfd_getfd sys_pidfd_getfd
+ 439 common faccessat2 sys_faccessat2
+ 440 common process_madvise sys_process_madvise
++441 common futex_wait sys_futex_wait
++442 common futex_wake sys_futex_wake
+
+ #
+ # Due to a historical design error, certain syscalls are numbered differently
--
-2.28.0
+2.29.2
+
-From 08110d54945541dd186a7dabeef58be08011dde7 Mon Sep 17 00:00:00 2001
+From d71973d99efb1e2fd2542ea4d4b45b0e03e45b9c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Almeida?= <andrealmeid@collabora.com>
Date: Thu, 15 Oct 2020 17:15:57 -0300
-Subject: [PATCH 02/13] futex2: Add suport for vectorized wait
+Subject: [PATCH 2/9] futex2: Add suport for vectorized wait
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -698,54 +736,57 @@ Content-Transfer-Encoding: 8bit
Add support to wait on multiple futexes
Signed-off-by: André Almeida <andrealmeid@collabora.com>
+Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
---
- arch/x86/entry/syscalls/syscall_32.tbl | 1 +
- arch/x86/entry/syscalls/syscall_64.tbl | 1 +
- include/uapi/asm-generic/unistd.h | 5 +-
- kernel/futex2.c | 430 +++++++++++++++++--------
- kernel/sys_ni.c | 1 +
- 5 files changed, 304 insertions(+), 134 deletions(-)
+ arch/x86/entry/syscalls/syscall_32.tbl | 1 +
+ arch/x86/entry/syscalls/syscall_64.tbl | 1 +
+ include/uapi/asm-generic/unistd.h | 5 +-
+ kernel/futex2.c | 430 ++++++++++++------
+ kernel/sys_ni.c | 1 +
+ tools/include/uapi/asm-generic/unistd.h | 5 +-
+ .../arch/x86/entry/syscalls/syscall_64.tbl | 1 +
+ 7 files changed, 309 insertions(+), 135 deletions(-)
diff --git a/arch/x86/entry/syscalls/syscall_32.tbl b/arch/x86/entry/syscalls/syscall_32.tbl
-index 955322962964..c844c0cbf0e5 100644
+index 83a75ff39..65734d5e1 100644
--- a/arch/x86/entry/syscalls/syscall_32.tbl
+++ b/arch/x86/entry/syscalls/syscall_32.tbl
-@@ -446,3 +446,4 @@
- 439 i386 faccessat2 sys_faccessat2
- 440 i386 futex_wait sys_futex_wait
- 441 i386 futex_wake sys_futex_wake
-+442 i386 futex_waitv sys_futex_waitv
+@@ -447,3 +447,4 @@
+ 440 i386 process_madvise sys_process_madvise
+ 441 i386 futex_wait sys_futex_wait
+ 442 i386 futex_wake sys_futex_wake
++443 i386 futex_waitv sys_futex_waitv
diff --git a/arch/x86/entry/syscalls/syscall_64.tbl b/arch/x86/entry/syscalls/syscall_64.tbl
-index 4133bfe96891..0901c26c6786 100644
+index 6658fd63c..f30811b56 100644
--- a/arch/x86/entry/syscalls/syscall_64.tbl
+++ b/arch/x86/entry/syscalls/syscall_64.tbl
-@@ -363,6 +363,7 @@
- 439 common faccessat2 sys_faccessat2
- 440 common futex_wait sys_futex_wait
- 441 common futex_wake sys_futex_wake
-+442 common futex_waitv sys_futex_waitv
+@@ -364,6 +364,7 @@
+ 440 common process_madvise sys_process_madvise
+ 441 common futex_wait sys_futex_wait
+ 442 common futex_wake sys_futex_wake
++443 common futex_waitv sys_futex_waitv
#
- # x32-specific system call numbers start at 512 to avoid cache impact
+ # Due to a historical design error, certain syscalls are numbered differently
diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h
-index 80567ade774a..d7ebbed0a18c 100644
+index ae47d6a9e..81a90b697 100644
--- a/include/uapi/asm-generic/unistd.h
+++ b/include/uapi/asm-generic/unistd.h
@@ -866,8 +866,11 @@ __SYSCALL(__NR_futex_wait, sys_futex_wait)
- #define __NR_futex_wake 441
+ #define __NR_futex_wake 442
__SYSCALL(__NR_futex_wake, sys_futex_wake)
-+#define __NR_futex_waitv 442
++#define __NR_futex_waitv 443
+__SYSCALL(__NR_futex_waitv, sys_futex_waitv)
+
#undef __NR_syscalls
--#define __NR_syscalls 442
-+#define __NR_syscalls 443
+-#define __NR_syscalls 443
++#define __NR_syscalls 444
/*
* 32 bit systems traditionally used different
diff --git a/kernel/futex2.c b/kernel/futex2.c
-index 107b80a466d0..4b782b5ef615 100644
+index 107b80a46..4b782b5ef 100644
--- a/kernel/futex2.c
+++ b/kernel/futex2.c
@@ -48,14 +48,25 @@ struct futex_bucket {
@@ -1286,7 +1327,7 @@ index 107b80a466d0..4b782b5ef615 100644
get_task_struct(task);
list_del_init_careful(&aux->list);
diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c
-index 10049bc56c24..3e1a713d3e57 100644
+index 35ff743b1..1898e7340 100644
--- a/kernel/sys_ni.c
+++ b/kernel/sys_ni.c
@@ -151,6 +151,7 @@ COND_SYSCALL_COMPAT(get_robust_list);
@@ -1297,13 +1338,431 @@ index 10049bc56c24..3e1a713d3e57 100644
/* kernel/hrtimer.c */
+diff --git a/tools/include/uapi/asm-generic/unistd.h b/tools/include/uapi/asm-generic/unistd.h
+index cd79f94e0..7de33be59 100644
+--- a/tools/include/uapi/asm-generic/unistd.h
++++ b/tools/include/uapi/asm-generic/unistd.h
+@@ -866,8 +866,11 @@ __SYSCALL(__NR_futex_wait, sys_futex_wait)
+ #define __NR_futex_wake 442
+ __SYSCALL(__NR_futex_wake, sys_futex_wake)
+
++#define __NR_futex_waitv 443
++__SYSCALL(__NR_futex_waitv, sys_futex_waitv)
++
+ #undef __NR_syscalls
+-#define __NR_syscalls 443
++#define __NR_syscalls 444
+
+
+ /*
+diff --git a/tools/perf/arch/x86/entry/syscalls/syscall_64.tbl b/tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
+index 47de3bf93..bd47f368f 100644
+--- a/tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
++++ b/tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
+@@ -364,6 +364,7 @@
+ 440 common process_madvise sys_process_madvise
+ 441 common futex_wait sys_futex_wait
+ 442 common futex_wake sys_futex_wake
++443 common futex_waitv sys_futex_waitv
+
+ #
+ # Due to a historical design error, certain syscalls are numbered differently
+--
+2.29.2
+
+
+From 24681616a5432f7680f934abf335a9ab9a1eaf1e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Almeida?= <andrealmeid@collabora.com>
+Date: Thu, 15 Oct 2020 18:06:40 -0300
+Subject: [PATCH 3/9] futex2: Add support for shared futexes
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Add support for shared futexes for cross-process resources.
+
+Signed-off-by: André Almeida <andrealmeid@collabora.com>
+Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
+---
+ kernel/futex2.c | 187 ++++++++++++++++++++++++++++++++++++++++++------
+ 1 file changed, 165 insertions(+), 22 deletions(-)
+
+diff --git a/kernel/futex2.c b/kernel/futex2.c
+index 4b782b5ef..5ddb9922d 100644
+--- a/kernel/futex2.c
++++ b/kernel/futex2.c
+@@ -6,7 +6,9 @@
+ */
+
+ #include <linux/freezer.h>
++#include <linux/hugetlb.h>
+ #include <linux/jhash.h>
++#include <linux/pagemap.h>
+ #include <linux/sched/wake_q.h>
+ #include <linux/spinlock.h>
+ #include <linux/syscalls.h>
+@@ -15,6 +17,7 @@
+
+ /**
+ * struct futex_waiter - List entry for a waiter
++ * @uaddr: Memory address of userspace futex
+ * @key.address: Memory address of userspace futex
+ * @key.mm: Pointer to memory management struct of this process
+ * @key: Stores information that uniquely identify a futex
+@@ -25,9 +28,11 @@
+ * @index: Index of waiter in futexv list
+ */
+ struct futex_waiter {
++ uintptr_t uaddr;
+ struct futex_key {
+ uintptr_t address;
+ struct mm_struct *mm;
++ unsigned long int offset;
+ } key;
+ struct list_head list;
+ unsigned int val;
+@@ -125,16 +130,116 @@ static inline int bucket_get_waiters(struct futex_bucket *bucket)
+ #endif
+ }
+
++static u64 get_inode_sequence_number(struct inode *inode)
++{
++ static atomic64_t i_seq;
++ u64 old;
++
++ /* Does the inode already have a sequence number? */
++ old = atomic64_read(&inode->i_sequence);
++ if (likely(old))
++ return old;
++
++ for (;;) {
++ u64 new = atomic64_add_return(1, &i_seq);
++ if (WARN_ON_ONCE(!new))
++ continue;
++
++ old = atomic64_cmpxchg_relaxed(&inode->i_sequence, 0, new);
++ if (old)
++ return old;
++ return new;
++ }
++}
++
++#define FUT_OFF_INODE 1 /* We set bit 0 if key has a reference on inode */
++#define FUT_OFF_MMSHARED 2 /* We set bit 1 if key has a reference on mm */
++
++static int futex_get_shared_key(uintptr_t address, struct mm_struct *mm,
++ struct futex_key *key)
++{
++ int err;
++ struct page *page, *tail;
++ struct address_space *mapping;
++
++again:
++ err = get_user_pages_fast(address, 1, 0, &page);
++
++ if (err < 0)
++ return err;
++ else
++ err = 0;
++
++
++ tail = page;
++ page = compound_head(page);
++ mapping = READ_ONCE(page->mapping);
++
++
++ if (unlikely(!mapping)) {
++ int shmem_swizzled;
++
++ lock_page(page);
++ shmem_swizzled = PageSwapCache(page) || page->mapping;
++ unlock_page(page);
++ put_page(page);
++
++ if (shmem_swizzled)
++ goto again;
++
++ return -EFAULT;
++ }
++
++ if (PageAnon(page)) {
++
++ key->mm = mm;
++ key->address = address;
++
++ key->offset |= FUT_OFF_MMSHARED;
++
++ } else {
++ struct inode *inode;
++
++ rcu_read_lock();
++
++ if (READ_ONCE(page->mapping) != mapping) {
++ rcu_read_unlock();
++ put_page(page);
++
++ goto again;
++ }
++
++ inode = READ_ONCE(mapping->host);
++ if (!inode) {
++ rcu_read_unlock();
++ put_page(page);
++
++ goto again;
++ }
++
++ key->address = get_inode_sequence_number(inode);
++ key->mm = (struct mm_struct *) basepage_index(tail);
++ key->offset |= FUT_OFF_INODE;
++
++ rcu_read_unlock();
++ }
++
++ put_page(page);
++ return err;
++}
++
+ /**
+ * futex_get_bucket - Check if the user address is valid, prepare internal
+ * data and calculate the hash
+ * @uaddr: futex user address
+ * @key: data that uniquely identifies a futex
++ * @shared: is this a shared futex?
+ *
+ * Return: address of bucket on success, error code otherwise
+ */
+ static struct futex_bucket *futex_get_bucket(void __user *uaddr,
+- struct futex_key *key)
++ struct futex_key *key,
++ bool shared)
+ {
+ uintptr_t address = (uintptr_t) uaddr;
+ u32 hash_key;
+@@ -145,8 +250,15 @@ static struct futex_bucket *futex_get_bucket(void __user *uaddr,
+ if (unlikely(!access_ok(address, sizeof(u32))))
+ return ERR_PTR(-EFAULT);
+
+- key->address = address;
+- key->mm = current->mm;
++ key->offset = address % PAGE_SIZE;
++ address -= key->offset;
++
++ if (!shared) {
++ key->address = address;
++ key->mm = current->mm;
++ } else {
++ futex_get_shared_key(address, current->mm, key);
++ }
+
+ /* Generate hash key for this futex using uaddr and current->mm */
+ hash_key = jhash2((u32 *) key, sizeof(*key) / sizeof(u32), 0);
+@@ -275,9 +387,10 @@ static int futex_dequeue_multiple(struct futexv *futexv, unsigned int nr)
+ * Return: 0 on success, error code otherwise
+ */
+ static int futex_enqueue(struct futexv *futexv, unsigned int nr_futexes,
+- unsigned int *awaken)
++ int *awaken)
+ {
+ int i, ret;
++ bool shared, retry = false;
+ u32 uval, *uaddr, val;
+ struct futex_bucket *bucket;
+
+@@ -285,8 +398,18 @@ static int futex_enqueue(struct futexv *futexv, unsigned int nr_futexes,
+ set_current_state(TASK_INTERRUPTIBLE);
+
+ for (i = 0; i < nr_futexes; i++) {
+- uaddr = (u32 * __user) futexv->objects[i].key.address;
++ uaddr = (u32 * __user) futexv->objects[i].uaddr;
+ val = (u32) futexv->objects[i].val;
++ shared = (futexv->objects[i].flags & FUTEX_SHARED_FLAG) ? true : false;
++
++ if (shared && retry) {
++ futexv->objects[i].bucket =
++ futex_get_bucket((void *) uaddr,
++ &futexv->objects[i].key, true);
++ if (IS_ERR(futexv->objects[i].bucket))
++ return PTR_ERR(futexv->objects[i].bucket);
++ }
++
+ bucket = futexv->objects[i].bucket;
+
+ bucket_inc_waiters(bucket);
+@@ -301,24 +424,32 @@ static int futex_enqueue(struct futexv *futexv, unsigned int nr_futexes,
+ __set_current_state(TASK_RUNNING);
+ *awaken = futex_dequeue_multiple(futexv, i);
+
++ if (shared) {
++ retry = true;
++ goto retry;
++ }
++
+ if (__get_user(uval, uaddr))
+ return -EFAULT;
+
+ if (*awaken >= 0)
+- return 0;
++ return 1;
+
++ retry = true;
+ goto retry;
+ }
+
+ if (uval != val) {
+ spin_unlock(&bucket->lock);
+
++
+ bucket_dec_waiters(bucket);
+ __set_current_state(TASK_RUNNING);
+ *awaken = futex_dequeue_multiple(futexv, i);
+
+- if (*awaken >= 0)
+- return 0;
++ if (*awaken >= 0) {
++ return 1;
++ }
+
+ return -EWOULDBLOCK;
+ }
+@@ -336,19 +467,18 @@ static int __futex_wait(struct futexv *futexv,
+ struct hrtimer_sleeper *timeout)
+ {
+ int ret;
+- unsigned int awaken = -1;
+
+- while (1) {
+- ret = futex_enqueue(futexv, nr_futexes, &awaken);
+
+- if (ret < 0)
+- break;
++ while (1) {
++ int awaken = -1;
+
+- if (awaken <= 0) {
+- return awaken;
++ ret = futex_enqueue(futexv, nr_futexes, &awaken);
++ if (ret) {
++ if (awaken >= 0)
++ return awaken;
++ return ret;
+ }
+
+-
+ /* Before sleeping, check if someone was woken */
+ if (!futexv->hint && (!timeout || timeout->task))
+ freezable_schedule();
+@@ -419,6 +549,7 @@ static int futex_wait(struct futexv *futexv, unsigned int nr_futexes,
+ hrtimer_sleeper_start_expires(timeout, HRTIMER_MODE_ABS);
+ }
+
++
+ ret = __futex_wait(futexv, nr_futexes, timo ? timeout : NULL);
+
+
+@@ -438,9 +569,10 @@ static int futex_wait(struct futexv *futexv, unsigned int nr_futexes,
+ SYSCALL_DEFINE4(futex_wait, void __user *, uaddr, unsigned int, val,
+ unsigned int, flags, struct __kernel_timespec __user *, timo)
+ {
++ bool shared = (flags & FUTEX_SHARED_FLAG) ? true : false;
+ unsigned int size = flags & FUTEX_SIZE_MASK;
+- struct hrtimer_sleeper timeout;
+ struct futex_single_waiter wait_single;
++ struct hrtimer_sleeper timeout;
+ struct futex_waiter *waiter;
+ struct futexv *futexv;
+ int ret;
+@@ -452,6 +584,7 @@ SYSCALL_DEFINE4(futex_wait, void __user *, uaddr, unsigned int, val,
+ waiter = &wait_single.waiter;
+ waiter->index = 0;
+ waiter->val = val;
++ waiter->uaddr = (uintptr_t) uaddr;
+
+ INIT_LIST_HEAD(&waiter->list);
+
+@@ -462,11 +595,14 @@ SYSCALL_DEFINE4(futex_wait, void __user *, uaddr, unsigned int, val,
+ return -EINVAL;
+
+ /* Get an unlocked hash bucket */
+- waiter->bucket = futex_get_bucket(uaddr, &waiter->key);
+- if (IS_ERR(waiter->bucket))
++ waiter->bucket = futex_get_bucket(uaddr, &waiter->key, shared);
++ if (IS_ERR(waiter->bucket)) {
+ return PTR_ERR(waiter->bucket);
++ }
+
+ ret = futex_wait(futexv, 1, timo, &timeout, flags);
++ if (ret > 0)
++ ret = 0;
+
+ return ret;
+ }
+@@ -486,8 +622,10 @@ static int futex_parse_waitv(struct futexv *futexv,
+ struct futex_waitv waitv;
+ unsigned int i;
+ struct futex_bucket *bucket;
++ bool shared;
+
+ for (i = 0; i < nr_futexes; i++) {
++
+ if (copy_from_user(&waitv, &uwaitv[i], sizeof(waitv)))
+ return -EFAULT;
+
+@@ -495,8 +633,10 @@ static int futex_parse_waitv(struct futexv *futexv,
+ (waitv.flags & FUTEX_SIZE_MASK) != FUTEX_32)
+ return -EINVAL;
+
++ shared = (waitv.flags & FUTEX_SHARED_FLAG) ? true : false;
++
+ bucket = futex_get_bucket(waitv.uaddr,
+- &futexv->objects[i].key);
++ &futexv->objects[i].key, shared);
+ if (IS_ERR(bucket))
+ return PTR_ERR(bucket);
+
+@@ -505,6 +645,7 @@ static int futex_parse_waitv(struct futexv *futexv,
+ futexv->objects[i].flags = waitv.flags;
+ futexv->objects[i].index = i;
+ INIT_LIST_HEAD(&futexv->objects[i].list);
++ futexv->objects[i].uaddr = (uintptr_t) waitv.uaddr;
+ }
+
+ return 0;
+@@ -573,6 +714,7 @@ static struct futexv *futex_get_parent(uintptr_t waiter, u8 index)
+ SYSCALL_DEFINE3(futex_wake, void __user *, uaddr, unsigned int, nr_wake,
+ unsigned int, flags)
+ {
++ bool shared = (flags & FUTEX_SHARED_FLAG) ? true : false;
+ unsigned int size = flags & FUTEX_SIZE_MASK;
+ struct futex_waiter waiter, *aux, *tmp;
+ struct futex_bucket *bucket;
+@@ -586,7 +728,7 @@ SYSCALL_DEFINE3(futex_wake, void __user *, uaddr, unsigned int, nr_wake,
+ if (size != FUTEX_32)
+ return -EINVAL;
+
+- bucket = futex_get_bucket(uaddr, &waiter.key);
++ bucket = futex_get_bucket(uaddr, &waiter.key, shared);
+ if (IS_ERR(bucket))
+ return PTR_ERR(bucket);
+
+@@ -599,7 +741,8 @@ SYSCALL_DEFINE3(futex_wake, void __user *, uaddr, unsigned int, nr_wake,
+ break;
+
+ if (waiter.key.address == aux->key.address &&
+- waiter.key.mm == aux->key.mm) {
++ waiter.key.mm == aux->key.mm &&
++ waiter.key.offset == aux->key.offset) {
+ struct futexv *parent =
+ futex_get_parent((uintptr_t) aux, aux->index);
+
--
-2.28.0
+2.29.2
-From d8120d2ee1729a6933a606a6720f3e3116e4f699 Mon Sep 17 00:00:00 2001
+
+From ce3ae4bd9f98763fda07f315c1f239c4aaef4b5e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Almeida?= <andrealmeid@collabora.com>
Date: Thu, 9 Jul 2020 11:34:40 -0300
-Subject: [PATCH 03/13] selftests: futex: Add futex2 wake/wait test
+Subject: [PATCH 4/9] selftests: futex: Add futex2 wake/wait test
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -1315,38 +1774,32 @@ temporary workaround that implements the required types and calls the
appropriated syscalls, since futex2 doesn't supports 32 bit sized time.
Signed-off-by: André Almeida <andrealmeid@collabora.com>
+Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
---
- tools/include/uapi/asm-generic/unistd.h | 7 +-
+ tools/include/uapi/asm-generic/unistd.h | 1 -
.../selftests/futex/functional/.gitignore | 1 +
.../selftests/futex/functional/Makefile | 4 +-
- .../selftests/futex/functional/futex2_wait.c | 111 ++++++++++++++++++
+ .../selftests/futex/functional/futex2_wait.c | 148 ++++++++++++++++++
.../testing/selftests/futex/functional/run.sh | 3 +
- .../selftests/futex/include/futex2test.h | 77 ++++++++++++
- 6 files changed, 201 insertions(+), 2 deletions(-)
+ .../selftests/futex/include/futex2test.h | 77 +++++++++
+ 6 files changed, 232 insertions(+), 2 deletions(-)
create mode 100644 tools/testing/selftests/futex/functional/futex2_wait.c
create mode 100644 tools/testing/selftests/futex/include/futex2test.h
diff --git a/tools/include/uapi/asm-generic/unistd.h b/tools/include/uapi/asm-generic/unistd.h
-index 995b36c2ea7d..dd457de21bad 100644
+index 7de33be59..81a90b697 100644
--- a/tools/include/uapi/asm-generic/unistd.h
+++ b/tools/include/uapi/asm-generic/unistd.h
-@@ -860,8 +860,13 @@ __SYSCALL(__NR_pidfd_getfd, sys_pidfd_getfd)
- #define __NR_faccessat2 439
- __SYSCALL(__NR_faccessat2, sys_faccessat2)
-
-+#define __NR_futex_wait 440
-+__SYSCALL(__NR_futex_wait, sys_futex_wait)
-+#define __NR_futex_wake 441
-+__SYSCALL(__NR_futex_wake, sys_futex_wake)
-+
+@@ -872,7 +872,6 @@ __SYSCALL(__NR_futex_waitv, sys_futex_waitv)
#undef __NR_syscalls
--#define __NR_syscalls 440
-+#define __NR_syscalls 442
+ #define __NR_syscalls 444
+-
/*
* 32 bit systems traditionally used different
+ * syscalls for off_t and loff_t arguments, while
diff --git a/tools/testing/selftests/futex/functional/.gitignore b/tools/testing/selftests/futex/functional/.gitignore
-index 0efcd494daab..d61f1df94360 100644
+index 0efcd494d..d61f1df94 100644
--- a/tools/testing/selftests/futex/functional/.gitignore
+++ b/tools/testing/selftests/futex/functional/.gitignore
@@ -6,3 +6,4 @@ futex_wait_private_mapped_file
@@ -1355,7 +1808,7 @@ index 0efcd494daab..d61f1df94360 100644
futex_wait_wouldblock
+futex2_wait
diff --git a/tools/testing/selftests/futex/functional/Makefile b/tools/testing/selftests/futex/functional/Makefile
-index 23207829ec75..7142a94a7ac3 100644
+index 23207829e..7142a94a7 100644
--- a/tools/testing/selftests/futex/functional/Makefile
+++ b/tools/testing/selftests/futex/functional/Makefile
@@ -5,6 +5,7 @@ LDLIBS := -lpthread -lrt
@@ -1378,10 +1831,10 @@ index 23207829ec75..7142a94a7ac3 100644
diff --git a/tools/testing/selftests/futex/functional/futex2_wait.c b/tools/testing/selftests/futex/functional/futex2_wait.c
new file mode 100644
-index 000000000000..752ed26803b3
+index 000000000..0646a24b7
--- /dev/null
+++ b/tools/testing/selftests/futex/functional/futex2_wait.c
-@@ -0,0 +1,111 @@
+@@ -0,0 +1,148 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/******************************************************************************
+ *
@@ -1406,13 +1859,14 @@ index 000000000000..752ed26803b3
+#include <string.h>
+#include <time.h>
+#include <pthread.h>
++#include <sys/shm.h>
+#include "futex2test.h"
+#include "logging.h"
+
-+#define TEST_NAME "futex-wait-wouldblock"
++#define TEST_NAME "futex2-wait"
+#define timeout_ns 30000000
+#define WAKE_WAIT_US 10000
-+futex_t f1 = FUTEX_INITIALIZER;
++futex_t *f1;
+
+void usage(char *prog)
+{
@@ -1426,6 +1880,9 @@ index 000000000000..752ed26803b3
+void *waiterfn(void *arg)
+{
+ struct timespec64 to64;
++ unsigned int flags = 0;
++ if (arg)
++ flags = *((unsigned int *) arg);
+
+ /* setting absolute timeout for futex2 */
+ if (gettime64(CLOCK_MONOTONIC, &to64))
@@ -1438,7 +1895,7 @@ index 000000000000..752ed26803b3
+ to64.tv_nsec -= 1000000000;
+ }
+
-+ if (futex2_wait(&f1, f1, FUTEX_PRIVATE_FLAG | FUTEX_32, &to64))
++ if (futex2_wait(f1, *f1, FUTEX_32 | flags, &to64))
+ printf("waiter failed errno %d\n", errno);
+
+ return NULL;
@@ -1447,8 +1904,11 @@ index 000000000000..752ed26803b3
+int main(int argc, char *argv[])
+{
+ pthread_t waiter;
++ unsigned int flags = FUTEX_SHARED_FLAG;
+ int res, ret = RET_PASS;
+ int c;
++ futex_t f_private = 0;
++ f1 = &f_private;
+
+ while ((c = getopt(argc, argv, "cht:v:")) != -1) {
+ switch (c) {
@@ -1468,33 +1928,63 @@ index 000000000000..752ed26803b3
+ }
+
+ ksft_print_header();
-+ ksft_set_plan(1);
-+ ksft_print_msg("%s: Test FUTEX_WAIT\n",
++ ksft_set_plan(2);
++ ksft_print_msg("%s: Test FUTEX2_WAIT\n",
+ basename(argv[0]));
+
-+ info("Calling futex_wait on f1: %u @ %p with val=%u\n", f1, &f1, f1);
++ info("Calling private futex2_wait on f1: %u @ %p with val=%u\n", *f1, f1, *f1);
+
+ if (pthread_create(&waiter, NULL, waiterfn, NULL))
+ error("pthread_create failed\n", errno);
+
+ usleep(WAKE_WAIT_US);
+
-+ info("Calling futex2_wake on f1: %u @ %p with val=%u\n", f1, &f1, f1);
-+ res = futex2_wake(&f1, 1, FUTEX_PRIVATE_FLAG | FUTEX_32);
++ info("Calling private futex2_wake on f1: %u @ %p with val=%u\n", *f1, f1, *f1);
++ res = futex2_wake(f1, 1, FUTEX_32);
++ if (res != 1) {
++ ksft_test_result_fail("futex2_wake private returned: %d %s\n",
++ res ? errno : res,
++ res ? strerror(errno) : "");
++ ret = RET_FAIL;
++ } else {
++ ksft_test_result_pass("futex2_wake private succeeds\n");
++ }
++
++ int shm_id = shmget(IPC_PRIVATE, 4096, IPC_CREAT | 0666);
++ if (shm_id < 0) {
++ perror("shmget");
++ exit(1);
++ }
++
++ unsigned int *shared_data = shmat(shm_id, NULL, 0);
++ *shared_data = 0;
++ f1 = shared_data;
++
++ info("Calling shared futex2_wait on f1: %u @ %p with val=%u\n", *f1, f1, *f1);
++
++ if (pthread_create(&waiter, NULL, waiterfn, &flags))
++ error("pthread_create failed\n", errno);
++
++ usleep(WAKE_WAIT_US);
++
++ info("Calling shared futex2_wake on f1: %u @ %p with val=%u\n", *f1, f1, *f1);
++ res = futex2_wake(f1, 1, FUTEX_32 | FUTEX_SHARED_FLAG);
+ if (res != 1) {
-+ ksft_test_result_fail("futex2_wake returned: %d %s\n",
++ ksft_test_result_fail("futex2_wake shared returned: %d %s\n",
+ res ? errno : res,
+ res ? strerror(errno) : "");
+ ret = RET_FAIL;
+ } else {
-+ ksft_test_result_pass("futex2_wake wouldblock succeeds\n");
++ ksft_test_result_pass("futex2_wake shared succeeds\n");
+ }
+
++ shmdt(shared_data);
++
+ ksft_print_cnts();
+ return ret;
+}
diff --git a/tools/testing/selftests/futex/functional/run.sh b/tools/testing/selftests/futex/functional/run.sh
-index 1acb6ace1680..3730159c865a 100755
+index 1acb6ace1..3730159c8 100755
--- a/tools/testing/selftests/futex/functional/run.sh
+++ b/tools/testing/selftests/futex/functional/run.sh
@@ -73,3 +73,6 @@ echo
@@ -1506,7 +1996,7 @@ index 1acb6ace1680..3730159c865a 100755
+./futex2_wait $COLOR
diff --git a/tools/testing/selftests/futex/include/futex2test.h b/tools/testing/selftests/futex/include/futex2test.h
new file mode 100644
-index 000000000000..807b8b57fe61
+index 000000000..807b8b57f
--- /dev/null
+++ b/tools/testing/selftests/futex/include/futex2test.h
@@ -0,0 +1,77 @@
@@ -1588,12 +2078,13 @@ index 000000000000..807b8b57fe61
+ return syscall(__NR_futex_wake, uaddr, nr, flags);
+}
--
-2.28.0
+2.29.2
+
-From d4a7ca72f276b2e337eaedcbbe58a2782e0e7d3b Mon Sep 17 00:00:00 2001
+From 1e0349f5a81a43cdb50d9a97812194df6d937b69 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Almeida?= <andrealmeid@collabora.com>
Date: Thu, 9 Jul 2020 11:36:14 -0300
-Subject: [PATCH 04/13] selftests: futex: Add futex2 timeout test
+Subject: [PATCH 5/9] selftests: futex: Add futex2 timeout test
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -1602,12 +2093,13 @@ Adapt existing futex wait timeout file to test the same mechanism for
futex2.
Signed-off-by: André Almeida <andrealmeid@collabora.com>
+Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
---
- .../futex/functional/futex_wait_timeout.c | 38 ++++++++++++++-----
- 1 file changed, 29 insertions(+), 9 deletions(-)
+ .../futex/functional/futex_wait_timeout.c | 58 ++++++++++++++++---
+ 1 file changed, 49 insertions(+), 9 deletions(-)
diff --git a/tools/testing/selftests/futex/functional/futex_wait_timeout.c b/tools/testing/selftests/futex/functional/futex_wait_timeout.c
-index ee55e6d389a3..d2e7ae18985b 100644
+index ee55e6d38..245670e44 100644
--- a/tools/testing/selftests/futex/functional/futex_wait_timeout.c
+++ b/tools/testing/selftests/futex/functional/futex_wait_timeout.c
@@ -11,6 +11,7 @@
@@ -1637,12 +2129,12 @@ index ee55e6d389a3..d2e7ae18985b 100644
int res, ret = RET_PASS;
int c;
-@@ -65,22 +67,40 @@ int main(int argc, char *argv[])
+@@ -65,22 +67,60 @@ int main(int argc, char *argv[])
}
ksft_print_header();
- ksft_set_plan(1);
-+ ksft_set_plan(2);
++ ksft_set_plan(3);
ksft_print_msg("%s: Block on a futex and wait for timeout\n",
basename(argv[0]));
ksft_print_msg("\tArguments: timeout=%ldns\n", timeout_ns);
@@ -1661,7 +2153,7 @@ index ee55e6d389a3..d2e7ae18985b 100644
+ ksft_test_result_pass("futex_wait timeout succeeds\n");
+ }
+
-+ /* setting absolute timeout for futex2 */
++ /* setting absolute monotonic timeout for futex2 */
+ if (gettime64(CLOCK_MONOTONIC, &to64))
+ error("gettime64 failed\n", errno);
+
@@ -1673,12 +2165,32 @@ index ee55e6d389a3..d2e7ae18985b 100644
+ }
+
+ info("Calling futex2_wait on f1: %u @ %p\n", f1, &f1);
-+ res = futex2_wait(&f1, f1, FUTEX_PRIVATE_FLAG | FUTEX_32, &to64);
++ res = futex2_wait(&f1, f1, FUTEX_32, &to64);
+ if (!res || errno != ETIMEDOUT) {
-+ ksft_test_result_fail("futex2_wait returned %d\n", ret < 0 ? errno : ret);
++ ksft_test_result_fail("futex2_wait monotonic returned %d\n", ret < 0 ? errno : ret);
++ ret = RET_FAIL;
++ } else {
++ ksft_test_result_pass("futex2_wait monotonic timeout succeeds\n");
++ }
++
++ /* setting absolute realtime timeout for futex2 */
++ if (gettime64(CLOCK_REALTIME, &to64))
++ error("gettime64 failed\n", errno);
++
++ to64.tv_nsec += timeout_ns;
++
++ if (to64.tv_nsec >= 1000000000) {
++ to64.tv_sec++;
++ to64.tv_nsec -= 1000000000;
++ }
++
++ info("Calling futex2_wait on f1: %u @ %p\n", f1, &f1);
++ res = futex2_wait(&f1, f1, FUTEX_32 | FUTEX_CLOCK_REALTIME, &to64);
++ if (!res || errno != ETIMEDOUT) {
++ ksft_test_result_fail("futex2_wait realtime returned %d\n", ret < 0 ? errno : ret);
ret = RET_FAIL;
+ } else {
-+ ksft_test_result_pass("futex2_wait timeout succeeds\n");
++ ksft_test_result_pass("futex2_wait realtime timeout succeeds\n");
}
- print_result(TEST_NAME, ret);
@@ -1686,12 +2198,13 @@ index ee55e6d389a3..d2e7ae18985b 100644
return ret;
}
--
-2.28.0
+2.29.2
+
-From 6d2252d43d36a5eb2b9170351128007e27f47737 Mon Sep 17 00:00:00 2001
+From 298120f6e3a758cd03e26a104f5ce60a88501b7f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Almeida?= <andrealmeid@collabora.com>
Date: Thu, 9 Jul 2020 11:37:42 -0300
-Subject: [PATCH 05/13] selftests: futex: Add futex2 wouldblock test
+Subject: [PATCH 6/9] selftests: futex: Add futex2 wouldblock test
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -1700,12 +2213,13 @@ Adapt existing futex wait wouldblock file to test the same mechanism for
futex2.
Signed-off-by: André Almeida <andrealmeid@collabora.com>
+Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
---
.../futex/functional/futex_wait_wouldblock.c | 33 ++++++++++++++++---
1 file changed, 29 insertions(+), 4 deletions(-)
diff --git a/tools/testing/selftests/futex/functional/futex_wait_wouldblock.c b/tools/testing/selftests/futex/functional/futex_wait_wouldblock.c
-index 0ae390ff8164..8187f0754cd2 100644
+index 0ae390ff8..1f72e5928 100644
--- a/tools/testing/selftests/futex/functional/futex_wait_wouldblock.c
+++ b/tools/testing/selftests/futex/functional/futex_wait_wouldblock.c
@@ -12,6 +12,7 @@
@@ -1766,7 +2280,7 @@ index 0ae390ff8164..8187f0754cd2 100644
+ }
+
+ info("Calling futex2_wait on f1: %u @ %p with val=%u\n", f1, &f1, f1+1);
-+ res = futex2_wait(&f1, f1+1, FUTEX_PRIVATE_FLAG | FUTEX_32, &to64);
++ res = futex2_wait(&f1, f1+1, FUTEX_32, &to64);
+ if (!res || errno != EWOULDBLOCK) {
+ ksft_test_result_fail("futex2_wait returned: %d %s\n",
+ res ? errno : res, res ? strerror(errno) : "");
@@ -1779,4919 +2293,693 @@ index 0ae390ff8164..8187f0754cd2 100644
return ret;
}
--
-2.28.0
+2.29.2
-From 6b35a09be663f5a844e089f1ddd370137832e7a7 Mon Sep 17 00:00:00 2001
+
+From 05c697a239aad5e8608c6acf0da9239cac5f7a2e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Almeida?= <andrealmeid@collabora.com>
-Date: Wed, 14 Oct 2020 16:10:09 -0300
-Subject: [PATCH 06/13] DONOTMERGE: futex: Add a clone of futex implementation
+Date: Tue, 8 Dec 2020 18:47:31 -0300
+Subject: [PATCH 7/9] selftests: futex: Add futex2 waitv test
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-For comparative performance tests between the original futex and the new
-futex2 interface, create a clone of the current futex. In that way, we
-can have a fair comparison, since the futex2 table will be empty with no
-contention for the bucket locks. Since futex is widely used in the host
-system, the performance tests could get misleading results by the tests
-competing with the system for resources.
-
Signed-off-by: André Almeida <andrealmeid@collabora.com>
+Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
---
- arch/x86/entry/syscalls/syscall_32.tbl | 1 +
- arch/x86/entry/syscalls/syscall_64.tbl | 1 +
- include/linux/syscalls.h | 3 +
- include/uapi/asm-generic/unistd.h | 5 +-
- kernel/Makefile | 1 +
- kernel/futex1.c | 3384 +++++++++++++++++
- kernel/sys_ni.c | 2 +
- tools/arch/x86/include/asm/unistd_64.h | 12 +
- tools/include/uapi/asm-generic/unistd.h | 6 +-
- .../arch/x86/entry/syscalls/syscall_64.tbl | 3 +
- tools/perf/bench/futex.h | 23 +-
- 11 files changed, 3438 insertions(+), 3 deletions(-)
- create mode 100644 kernel/futex1.c
+ .../selftests/futex/functional/.gitignore | 1 +
+ .../selftests/futex/functional/Makefile | 3 +-
+ .../selftests/futex/functional/futex2_waitv.c | 156 ++++++++++++++++++
+ .../testing/selftests/futex/functional/run.sh | 3 +
+ .../selftests/futex/include/futex2test.h | 25 ++-
+ 5 files changed, 183 insertions(+), 5 deletions(-)
+ create mode 100644 tools/testing/selftests/futex/functional/futex2_waitv.c
-diff --git a/arch/x86/entry/syscalls/syscall_32.tbl b/arch/x86/entry/syscalls/syscall_32.tbl
-index c844c0cbf0e5..820fa53ccf75 100644
---- a/arch/x86/entry/syscalls/syscall_32.tbl
-+++ b/arch/x86/entry/syscalls/syscall_32.tbl
-@@ -447,3 +447,4 @@
- 440 i386 futex_wait sys_futex_wait
- 441 i386 futex_wake sys_futex_wake
- 442 i386 futex_waitv sys_futex_waitv
-+443 i386 futex1 sys_futex1
-diff --git a/arch/x86/entry/syscalls/syscall_64.tbl b/arch/x86/entry/syscalls/syscall_64.tbl
-index 0901c26c6786..99795136cb98 100644
---- a/arch/x86/entry/syscalls/syscall_64.tbl
-+++ b/arch/x86/entry/syscalls/syscall_64.tbl
-@@ -364,6 +364,7 @@
- 440 common futex_wait sys_futex_wait
- 441 common futex_wake sys_futex_wake
- 442 common futex_waitv sys_futex_waitv
-+443 common futex1 sys_futex1
-
- #
- # x32-specific system call numbers start at 512 to avoid cache impact
-diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
-index 38c3a87dbfc2..0351f6ad09a9 100644
---- a/include/linux/syscalls.h
-+++ b/include/linux/syscalls.h
-@@ -596,6 +596,9 @@ asmlinkage long sys_futex_wait(void __user *uaddr, unsigned long val,
- asmlinkage long sys_futex_wake(void __user *uaddr, unsigned long nr_wake,
- unsigned long flags);
-
-+asmlinkage long sys_futex1(void __user *uaddr, unsigned long nr_wake,
-+ unsigned long flags);
-+
- /* kernel/hrtimer.c */
- asmlinkage long sys_nanosleep(struct __kernel_timespec __user *rqtp,
- struct __kernel_timespec __user *rmtp);
-diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h
-index d7ebbed0a18c..e3ba6cb1f76d 100644
---- a/include/uapi/asm-generic/unistd.h
-+++ b/include/uapi/asm-generic/unistd.h
-@@ -869,8 +869,11 @@ __SYSCALL(__NR_futex_wake, sys_futex_wake)
- #define __NR_futex_waitv 442
- __SYSCALL(__NR_futex_waitv, sys_futex_waitv)
+diff --git a/tools/testing/selftests/futex/functional/.gitignore b/tools/testing/selftests/futex/functional/.gitignore
+index d61f1df94..d0b8f637b 100644
+--- a/tools/testing/selftests/futex/functional/.gitignore
++++ b/tools/testing/selftests/futex/functional/.gitignore
+@@ -7,3 +7,4 @@ futex_wait_timeout
+ futex_wait_uninitialized_heap
+ futex_wait_wouldblock
+ futex2_wait
++futex2_waitv
+diff --git a/tools/testing/selftests/futex/functional/Makefile b/tools/testing/selftests/futex/functional/Makefile
+index 7142a94a7..b857b9450 100644
+--- a/tools/testing/selftests/futex/functional/Makefile
++++ b/tools/testing/selftests/futex/functional/Makefile
+@@ -16,7 +16,8 @@ TEST_GEN_FILES := \
+ futex_requeue_pi_mismatched_ops \
+ futex_wait_uninitialized_heap \
+ futex_wait_private_mapped_file \
+- futex2_wait
++ futex2_wait \
++ futex2_waitv
-+#define __NR_futex1 443
-+__SYSCALL(__NR_futex1, sys_futex1)
-+
- #undef __NR_syscalls
--#define __NR_syscalls 443
-+#define __NR_syscalls 444
+ TEST_PROGS := run.sh
- /*
- * 32 bit systems traditionally used different
-diff --git a/kernel/Makefile b/kernel/Makefile
-index 51ea9bc647bf..0fe55a8cb9e2 100644
---- a/kernel/Makefile
-+++ b/kernel/Makefile
-@@ -57,6 +57,7 @@ obj-$(CONFIG_PROFILING) += profile.o
- obj-$(CONFIG_STACKTRACE) += stacktrace.o
- obj-y += time/
- obj-$(CONFIG_FUTEX) += futex.o
-+obj-$(CONFIG_FUTEX2) += futex1.o
- obj-$(CONFIG_FUTEX2) += futex2.o
- obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o
- obj-$(CONFIG_SMP) += smp.o
-diff --git a/kernel/futex1.c b/kernel/futex1.c
+diff --git a/tools/testing/selftests/futex/functional/futex2_waitv.c b/tools/testing/selftests/futex/functional/futex2_waitv.c
new file mode 100644
-index 000000000000..4f7bf312fefd
+index 000000000..d4b116651
--- /dev/null
-+++ b/kernel/futex1.c
-@@ -0,0 +1,3384 @@
++++ b/tools/testing/selftests/futex/functional/futex2_waitv.c
+@@ -0,0 +1,156 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
-+/*
-+ * Fast Userspace Mutexes (which I call "Futexes!").
-+ * (C) Rusty Russell, IBM 2002
-+ *
-+ * Generalized futexes, futex requeueing, misc fixes by Ingo Molnar
-+ * (C) Copyright 2003 Red Hat Inc, All Rights Reserved
-+ *
-+ * Removed page pinning, fix privately mapped COW pages and other cleanups
-+ * (C) Copyright 2003, 2004 Jamie Lokier
-+ *
-+ * Robust futex support started by Ingo Molnar
-+ * (C) Copyright 2006 Red Hat Inc, All Rights Reserved
-+ * Thanks to Thomas Gleixner for suggestions, analysis and fixes.
-+ *
-+ * PI-futex support started by Ingo Molnar and Thomas Gleixner
-+ * Copyright (C) 2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com>
-+ * Copyright (C) 2006 Timesys Corp., Thomas Gleixner <tglx@timesys.com>
-+ *
-+ * PRIVATE futexes by Eric Dumazet
-+ * Copyright (C) 2007 Eric Dumazet <dada1@cosmosbay.com>
-+ *
-+ * Requeue-PI support by Darren Hart <dvhltc@us.ibm.com>
-+ * Copyright (C) IBM Corporation, 2009
-+ * Thanks to Thomas Gleixner for conceptual design and careful reviews.
-+ *
-+ * Thanks to Ben LaHaise for yelling "hashed waitqueues" loudly
-+ * enough at me, Linus for the original (flawed) idea, Matthew
-+ * Kirkwood for proof-of-concept implementation.
-+ *
-+ * "The futexes are also cursed."
-+ * "But they come in a choice of three flavours!"
-+ */
-+#include <linux/compat.h>
-+#include <linux/jhash.h>
-+#include <linux/pagemap.h>
-+#include <linux/syscalls.h>
-+#include <linux/hugetlb.h>
-+#include <linux/freezer.h>
-+#include <linux/memblock.h>
-+#include <linux/fault-inject.h>
-+
-+#include <asm/futex.h>
-+
-+#include "locking/rtmutex_common.h"
-+
-+/*
-+ * READ this before attempting to hack on futexes!
-+ *
-+ * Basic futex operation and ordering guarantees
-+ * =============================================
-+ *
-+ * The waiter reads the futex value in user space and calls
-+ * futex_wait(). This function computes the hash bucket and acquires
-+ * the hash bucket lock. After that it reads the futex user space value
-+ * again and verifies that the data has not changed. If it has not changed
-+ * it enqueues itself into the hash bucket, releases the hash bucket lock
-+ * and schedules.
-+ *
-+ * The waker side modifies the user space value of the futex and calls
-+ * futex_wake(). This function computes the hash bucket and acquires the
-+ * hash bucket lock. Then it looks for waiters on that futex in the hash
-+ * bucket and wakes them.
-+ *
-+ * In futex wake up scenarios where no tasks are blocked on a futex, taking
-+ * the hb spinlock can be avoided and simply return. In order for this
-+ * optimization to work, ordering guarantees must exist so that the waiter
-+ * being added to the list is acknowledged when the list is concurrently being
-+ * checked by the waker, avoiding scenarios like the following:
-+ *
-+ * CPU 0 CPU 1
-+ * val = *futex;
-+ * sys_futex(WAIT, futex, val);
-+ * futex_wait(futex, val);
-+ * uval = *futex;
-+ * *futex = newval;
-+ * sys_futex(WAKE, futex);
-+ * futex_wake(futex);
-+ * if (queue_empty())
-+ * return;
-+ * if (uval == val)
-+ * lock(hash_bucket(futex));
-+ * queue();
-+ * unlock(hash_bucket(futex));
-+ * schedule();
-+ *
-+ * This would cause the waiter on CPU 0 to wait forever because it
-+ * missed the transition of the user space value from val to newval
-+ * and the waker did not find the waiter in the hash bucket queue.
-+ *
-+ * The correct serialization ensures that a waiter either observes
-+ * the changed user space value before blocking or is woken by a
-+ * concurrent waker:
-+ *
-+ * CPU 0 CPU 1
-+ * val = *futex;
-+ * sys_futex(WAIT, futex, val);
-+ * futex_wait(futex, val);
-+ *
-+ * waiters++; (a)
-+ * smp_mb(); (A) <-- paired with -.
-+ * |
-+ * lock(hash_bucket(futex)); |
-+ * |
-+ * uval = *futex; |
-+ * | *futex = newval;
-+ * | sys_futex(WAKE, futex);
-+ * | futex_wake(futex);
-+ * |
-+ * `--------> smp_mb(); (B)
-+ * if (uval == val)
-+ * queue();
-+ * unlock(hash_bucket(futex));
-+ * schedule(); if (waiters)
-+ * lock(hash_bucket(futex));
-+ * else wake_waiters(futex);
-+ * waiters--; (b) unlock(hash_bucket(futex));
-+ *
-+ * Where (A) orders the waiters increment and the futex value read through
-+ * atomic operations (see hb_waiters_inc) and where (B) orders the write
-+ * to futex and the waiters read (see hb_waiters_pending()).
-+ *
-+ * This yields the following case (where X:=waiters, Y:=futex):
-+ *
-+ * X = Y = 0
-+ *
-+ * w[X]=1 w[Y]=1
-+ * MB MB
-+ * r[Y]=y r[X]=x
-+ *
-+ * Which guarantees that x==0 && y==0 is impossible; which translates back into
-+ * the guarantee that we cannot both miss the futex variable change and the
-+ * enqueue.
-+ *
-+ * Note that a new waiter is accounted for in (a) even when it is possible that
-+ * the wait call can return error, in which case we backtrack from it in (b).
-+ * Refer to the comment in queue_lock().
-+ *
-+ * Similarly, in order to account for waiters being requeued on another
-+ * address we always increment the waiters for the destination bucket before
-+ * acquiring the lock. It then decrements them again after releasing it -
-+ * the code that actually moves the futex(es) between hash buckets (requeue_futex)
-+ * will do the additional required waiter count housekeeping. This is done for
-+ * double_lock_hb() and double_unlock_hb(), respectively.
-+ */
-+
-+#ifdef CONFIG_HAVE_FUTEX_CMPXCHG
-+#define futex_cmpxchg_enabled 1
-+#else
-+static int __read_mostly futex_cmpxchg_enabled;
-+#endif
-+
-+/*
-+ * Futex flags used to encode options to functions and preserve them across
-+ * restarts.
-+ */
-+#ifdef CONFIG_MMU
-+# define FLAGS_SHARED 0x01
-+#else
-+/*
-+ * NOMMU does not have per process address space. Let the compiler optimize
-+ * code away.
-+ */
-+# define FLAGS_SHARED 0x00
-+#endif
-+#define FLAGS_CLOCKRT 0x02
-+#define FLAGS_HAS_TIMEOUT 0x04
-+
-+/*
-+ * Priority Inheritance state:
-+ */
-+struct futex_pi_state {
-+ /*
-+ * list of 'owned' pi_state instances - these have to be
-+ * cleaned up in do_exit() if the task exits prematurely:
-+ */
-+ struct list_head list;
-+
-+ /*
-+ * The PI object:
-+ */
-+ struct rt_mutex pi_mutex;
-+
-+ struct task_struct *owner;
-+ refcount_t refcount;
-+
-+ union futex_key key;
-+} __randomize_layout;
-+
-+/**
-+ * struct futex_q - The hashed futex queue entry, one per waiting task
-+ * @list: priority-sorted list of tasks waiting on this futex
-+ * @task: the task waiting on the futex
-+ * @lock_ptr: the hash bucket lock
-+ * @key: the key the futex is hashed on
-+ * @pi_state: optional priority inheritance state
-+ * @rt_waiter: rt_waiter storage for use with requeue_pi
-+ * @requeue_pi_key: the requeue_pi target futex key
-+ * @bitset: bitset for the optional bitmasked wakeup
-+ *
-+ * We use this hashed waitqueue, instead of a normal wait_queue_entry_t, so
-+ * we can wake only the relevant ones (hashed queues may be shared).
++/******************************************************************************
+ *
-+ * A futex_q has a woken state, just like tasks have TASK_RUNNING.
-+ * It is considered woken when plist_node_empty(&q->list) || q->lock_ptr == 0.
-+ * The order of wakeup is always to make the first condition true, then
-+ * the second.
++ * Copyright Collabora Ltd., 2020
+ *
-+ * PI futexes are typically woken before they are removed from the hash list via
-+ * the rt_mutex code. See unqueue_me_pi().
-+ */
-+struct futex_q {
-+ struct plist_node list;
-+
-+ struct task_struct *task;
-+ spinlock_t *lock_ptr;
-+ union futex_key key;
-+ struct futex_pi_state *pi_state;
-+ struct rt_mutex_waiter *rt_waiter;
-+ union futex_key *requeue_pi_key;
-+ u32 bitset;
-+} __randomize_layout;
-+
-+static const struct futex_q futex_q_init = {
-+ /* list gets initialized in queue_me()*/
-+ .key = FUTEX_KEY_INIT,
-+ .bitset = FUTEX_BITSET_MATCH_ANY
-+};
-+
-+/*
-+ * Hash buckets are shared by all the futex_keys that hash to the same
-+ * location. Each key may have multiple futex_q structures, one for each task
-+ * waiting on a futex.
-+ */
-+struct futex_hash_bucket {
-+ atomic_t waiters;
-+ spinlock_t lock;
-+ struct plist_head chain;
-+} ____cacheline_aligned_in_smp;
-+
-+/*
-+ * The base of the bucket array and its size are always used together
-+ * (after initialization only in hash_futex()), so ensure that they
-+ * reside in the same cacheline.
-+ */
-+static struct {
-+ struct futex_hash_bucket *queues;
-+ unsigned long hashsize;
-+} __futex_data __read_mostly __aligned(2*sizeof(long));
-+#define futex_queues (__futex_data.queues)
-+#define futex_hashsize (__futex_data.hashsize)
-+
-+
-+/*
-+ * Fault injections for futexes.
-+ */
-+#ifdef CONFIG_FAIL_FUTEX
-+
-+static struct {
-+ struct fault_attr attr;
-+
-+ bool ignore_private;
-+} fail_futex = {
-+ .attr = FAULT_ATTR_INITIALIZER,
-+ .ignore_private = false,
-+};
-+
-+static int __init setup_fail_futex(char *str)
-+{
-+ return setup_fault_attr(&fail_futex.attr, str);
-+}
-+__setup("fail_futex=", setup_fail_futex);
-+
-+static bool should_fail_futex(bool fshared)
-+{
-+ if (fail_futex.ignore_private && !fshared)
-+ return false;
-+
-+ return should_fail(&fail_futex.attr, 1);
-+}
-+
-+#ifdef CONFIG_FAULT_INJECTION_DEBUG_FS
-+
-+static int __init fail_futex_debugfs(void)
-+{
-+ umode_t mode = S_IFREG | S_IRUSR | S_IWUSR;
-+ struct dentry *dir;
-+
-+ dir = fault_create_debugfs_attr("fail_futex", NULL,
-+ &fail_futex.attr);
-+ if (IS_ERR(dir))
-+ return PTR_ERR(dir);
-+
-+ debugfs_create_bool("ignore-private", mode, dir,
-+ &fail_futex.ignore_private);
-+ return 0;
-+}
-+
-+late_initcall(fail_futex_debugfs);
-+
-+#endif /* CONFIG_FAULT_INJECTION_DEBUG_FS */
-+
-+#else
-+static inline bool should_fail_futex(bool fshared)
-+{
-+ return false;
-+}
-+#endif /* CONFIG_FAIL_FUTEX */
-+
-+/*
-+ * Reflects a new waiter being added to the waitqueue.
-+ */
-+static inline void hb_waiters_inc(struct futex_hash_bucket *hb)
-+{
-+#ifdef CONFIG_SMP
-+ atomic_inc(&hb->waiters);
-+ /*
-+ * Full barrier (A), see the ordering comment above.
-+ */
-+ smp_mb__after_atomic();
-+#endif
-+}
-+
-+/*
-+ * Reflects a waiter being removed from the waitqueue by wakeup
-+ * paths.
-+ */
-+static inline void hb_waiters_dec(struct futex_hash_bucket *hb)
-+{
-+#ifdef CONFIG_SMP
-+ atomic_dec(&hb->waiters);
-+#endif
-+}
-+
-+static inline int hb_waiters_pending(struct futex_hash_bucket *hb)
-+{
-+#ifdef CONFIG_SMP
-+ /*
-+ * Full barrier (B), see the ordering comment above.
-+ */
-+ smp_mb();
-+ return atomic_read(&hb->waiters);
-+#else
-+ return 1;
-+#endif
-+}
-+
-+/**
-+ * hash_futex - Return the hash bucket in the global hash
-+ * @key: Pointer to the futex key for which the hash is calculated
++ * DESCRIPTION
++ * Test waitv/wake mechanism of futex2, using 32bit sized futexes.
+ *
-+ * We hash on the keys returned from get_futex_key (see below) and return the
-+ * corresponding hash bucket in the global hash.
-+ */
-+static struct futex_hash_bucket *hash_futex(union futex_key *key)
-+{
-+ u32 hash = jhash2((u32 *)key, offsetof(typeof(*key), both.offset) / 4,
-+ key->both.offset);
-+
-+ return &futex_queues[hash & (futex_hashsize - 1)];
-+}
-+
-+
-+/**
-+ * match_futex - Check whether two futex keys are equal
-+ * @key1: Pointer to key1
-+ * @key2: Pointer to key2
++ * AUTHOR
++ * André Almeida <andrealmeid@collabora.com>
+ *
-+ * Return 1 if two futex_keys are equal, 0 otherwise.
-+ */
-+static inline int match_futex(union futex_key *key1, union futex_key *key2)
-+{
-+ return (key1 && key2
-+ && key1->both.word == key2->both.word
-+ && key1->both.ptr == key2->both.ptr
-+ && key1->both.offset == key2->both.offset);
-+}
-+
-+enum futex_access {
-+ FUTEX_READ,
-+ FUTEX_WRITE
-+};
-+
-+/**
-+ * futex_setup_timer - set up the sleeping hrtimer.
-+ * @time: ptr to the given timeout value
-+ * @timeout: the hrtimer_sleeper structure to be set up
-+ * @flags: futex flags
-+ * @range_ns: optional range in ns
++ * HISTORY
++ * 2020-Jul-9: Initial version by André <andrealmeid@collabora.com>
+ *
-+ * Return: Initialized hrtimer_sleeper structure or NULL if no timeout
-+ * value given
-+ */
-+static inline struct hrtimer_sleeper *
-+futex_setup_timer(ktime_t *time, struct hrtimer_sleeper *timeout,
-+ int flags, u64 range_ns)
-+{
-+ if (!time)
-+ return NULL;
++ *****************************************************************************/
+
-+ hrtimer_init_sleeper_on_stack(timeout, (flags & FLAGS_CLOCKRT) ?
-+ CLOCK_REALTIME : CLOCK_MONOTONIC,
-+ HRTIMER_MODE_ABS);
-+ /*
-+ * If range_ns is 0, calling hrtimer_set_expires_range_ns() is
-+ * effectively the same as calling hrtimer_set_expires().
-+ */
-+ hrtimer_set_expires_range_ns(&timeout->timer, *time, range_ns);
++#include <errno.h>
++#include <error.h>
++#include <getopt.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <time.h>
++#include <pthread.h>
++#include <sys/shm.h>
++#include "futex2test.h"
++#include "logging.h"
+
-+ return timeout;
-+}
++#define TEST_NAME "futex2-wait"
++#define timeout_ns 1000000000
++#define WAKE_WAIT_US 10000
++#define NR_FUTEXES 30
++struct futex_waitv waitv[NR_FUTEXES];
++u_int32_t futexes[NR_FUTEXES] = {0};
+
-+/*
-+ * Generate a machine wide unique identifier for this inode.
-+ *
-+ * This relies on u64 not wrapping in the life-time of the machine; which with
-+ * 1ns resolution means almost 585 years.
-+ *
-+ * This further relies on the fact that a well formed program will not unmap
-+ * the file while it has a (shared) futex waiting on it. This mapping will have
-+ * a file reference which pins the mount and inode.
-+ *
-+ * If for some reason an inode gets evicted and read back in again, it will get
-+ * a new sequence number and will _NOT_ match, even though it is the exact same
-+ * file.
-+ *
-+ * It is important that match_futex() will never have a false-positive, esp.
-+ * for PI futexes that can mess up the state. The above argues that false-negatives
-+ * are only possible for malformed programs.
-+ */
-+static u64 get_inode_sequence_number(struct inode *inode)
++void usage(char *prog)
+{
-+ static atomic64_t i_seq;
-+ u64 old;
-+
-+ /* Does the inode already have a sequence number? */
-+ old = atomic64_read(&inode->i_sequence);
-+ if (likely(old))
-+ return old;
-+
-+ for (;;) {
-+ u64 new = atomic64_add_return(1, &i_seq);
-+ if (WARN_ON_ONCE(!new))
-+ continue;
-+
-+ old = atomic64_cmpxchg_relaxed(&inode->i_sequence, 0, new);
-+ if (old)
-+ return old;
-+ return new;
-+ }
++ printf("Usage: %s\n", prog);
++ printf(" -c Use color\n");
++ printf(" -h Display this help message\n");
++ printf(" -v L Verbosity level: %d=QUIET %d=CRITICAL %d=INFO\n",
++ VQUIET, VCRITICAL, VINFO);
+}
+
-+/**
-+ * get_futex_key() - Get parameters which are the keys for a futex
-+ * @uaddr: virtual address of the futex
-+ * @fshared: false for a PROCESS_PRIVATE futex, true for PROCESS_SHARED
-+ * @key: address where result is stored.
-+ * @rw: mapping needs to be read/write (values: FUTEX_READ,
-+ * FUTEX_WRITE)
-+ *
-+ * Return: a negative error code or 0
-+ *
-+ * The key words are stored in @key on success.
-+ *
-+ * For shared mappings (when @fshared), the key is:
-+ *
-+ * ( inode->i_sequence, page->index, offset_within_page )
-+ *
-+ * [ also see get_inode_sequence_number() ]
-+ *
-+ * For private mappings (or when !@fshared), the key is:
-+ *
-+ * ( current->mm, address, 0 )
-+ *
-+ * This allows (cross process, where applicable) identification of the futex
-+ * without keeping the page pinned for the duration of the FUTEX_WAIT.
-+ *
-+ * lock_page() might sleep, the caller should not hold a spinlock.
-+ */
-+static int get_futex_key(u32 __user *uaddr, bool fshared, union futex_key *key,
-+ enum futex_access rw)
++void *waiterfn(void *arg)
+{
-+ unsigned long address = (unsigned long)uaddr;
-+ struct mm_struct *mm = current->mm;
-+ struct page *page, *tail;
-+ struct address_space *mapping;
-+ int err, ro = 0;
-+
-+ /*
-+ * The futex address must be "naturally" aligned.
-+ */
-+ key->both.offset = address % PAGE_SIZE;
-+ if (unlikely((address % sizeof(u32)) != 0))
-+ return -EINVAL;
-+ address -= key->both.offset;
-+
-+ if (unlikely(!access_ok(uaddr, sizeof(u32))))
-+ return -EFAULT;
-+
-+ if (unlikely(should_fail_futex(fshared)))
-+ return -EFAULT;
-+
-+ /*
-+ * PROCESS_PRIVATE futexes are fast.
-+ * As the mm cannot disappear under us and the 'key' only needs
-+ * virtual address, we dont even have to find the underlying vma.
-+ * Note : We do have to check 'uaddr' is a valid user address,
-+ * but access_ok() should be faster than find_vma()
-+ */
-+ if (!fshared) {
-+ key->private.mm = mm;
-+ key->private.address = address;
-+ return 0;
-+ }
-+
-+again:
-+ /* Ignore any VERIFY_READ mapping (futex common case) */
-+ if (unlikely(should_fail_futex(true)))
-+ return -EFAULT;
-+
-+ err = get_user_pages_fast(address, 1, FOLL_WRITE, &page);
-+ /*
-+ * If write access is not required (eg. FUTEX_WAIT), try
-+ * and get read-only access.
-+ */
-+ if (err == -EFAULT && rw == FUTEX_READ) {
-+ err = get_user_pages_fast(address, 1, 0, &page);
-+ ro = 1;
-+ }
-+ if (err < 0)
-+ return err;
-+ else
-+ err = 0;
-+
-+ /*
-+ * The treatment of mapping from this point on is critical. The page
-+ * lock protects many things but in this context the page lock
-+ * stabilizes mapping, prevents inode freeing in the shared
-+ * file-backed region case and guards against movement to swap cache.
-+ *
-+ * Strictly speaking the page lock is not needed in all cases being
-+ * considered here and page lock forces unnecessarily serialization
-+ * From this point on, mapping will be re-verified if necessary and
-+ * page lock will be acquired only if it is unavoidable
-+ *
-+ * Mapping checks require the head page for any compound page so the
-+ * head page and mapping is looked up now. For anonymous pages, it
-+ * does not matter if the page splits in the future as the key is
-+ * based on the address. For filesystem-backed pages, the tail is
-+ * required as the index of the page determines the key. For
-+ * base pages, there is no tail page and tail == page.
-+ */
-+ tail = page;
-+ page = compound_head(page);
-+ mapping = READ_ONCE(page->mapping);
-+
-+ /*
-+ * If page->mapping is NULL, then it cannot be a PageAnon
-+ * page; but it might be the ZERO_PAGE or in the gate area or
-+ * in a special mapping (all cases which we are happy to fail);
-+ * or it may have been a good file page when get_user_pages_fast
-+ * found it, but truncated or holepunched or subjected to
-+ * invalidate_complete_page2 before we got the page lock (also
-+ * cases which we are happy to fail). And we hold a reference,
-+ * so refcount care in invalidate_complete_page's remove_mapping
-+ * prevents drop_caches from setting mapping to NULL beneath us.
-+ *
-+ * The case we do have to guard against is when memory pressure made
-+ * shmem_writepage move it from filecache to swapcache beneath us:
-+ * an unlikely race, but we do need to retry for page->mapping.
-+ */
-+ if (unlikely(!mapping)) {
-+ int shmem_swizzled;
-+
-+ /*
-+ * Page lock is required to identify which special case above
-+ * applies. If this is really a shmem page then the page lock
-+ * will prevent unexpected transitions.
-+ */
-+ lock_page(page);
-+ shmem_swizzled = PageSwapCache(page) || page->mapping;
-+ unlock_page(page);
-+ put_page(page);
-+
-+ if (shmem_swizzled)
-+ goto again;
-+
-+ return -EFAULT;
-+ }
-+
-+ /*
-+ * Private mappings are handled in a simple way.
-+ *
-+ * If the futex key is stored on an anonymous page, then the associated
-+ * object is the mm which is implicitly pinned by the calling process.
-+ *
-+ * NOTE: When userspace waits on a MAP_SHARED mapping, even if
-+ * it's a read-only handle, it's expected that futexes attach to
-+ * the object not the particular process.
-+ */
-+ if (PageAnon(page)) {
-+ /*
-+ * A RO anonymous page will never change and thus doesn't make
-+ * sense for futex operations.
-+ */
-+ if (unlikely(should_fail_futex(true)) || ro) {
-+ err = -EFAULT;
-+ goto out;
-+ }
-+
-+ key->both.offset |= FUT_OFF_MMSHARED; /* ref taken on mm */
-+ key->private.mm = mm;
-+ key->private.address = address;
-+
-+ } else {
-+ struct inode *inode;
-+
-+ /*
-+ * The associated futex object in this case is the inode and
-+ * the page->mapping must be traversed. Ordinarily this should
-+ * be stabilised under page lock but it's not strictly
-+ * necessary in this case as we just want to pin the inode, not
-+ * update the radix tree or anything like that.
-+ *
-+ * The RCU read lock is taken as the inode is finally freed
-+ * under RCU. If the mapping still matches expectations then the
-+ * mapping->host can be safely accessed as being a valid inode.
-+ */
-+ rcu_read_lock();
-+
-+ if (READ_ONCE(page->mapping) != mapping) {
-+ rcu_read_unlock();
-+ put_page(page);
-+
-+ goto again;
-+ }
++ struct timespec64 to64;
++ int res;
+
-+ inode = READ_ONCE(mapping->host);
-+ if (!inode) {
-+ rcu_read_unlock();
-+ put_page(page);
++ /* setting absolute timeout for futex2 */
++ if (gettime64(CLOCK_MONOTONIC, &to64))
++ error("gettime64 failed\n", errno);
+
-+ goto again;
-+ }
++ to64.tv_sec++;
+
-+ key->both.offset |= FUT_OFF_INODE; /* inode-based key */
-+ key->shared.i_seq = get_inode_sequence_number(inode);
-+ key->shared.pgoff = basepage_index(tail);
-+ rcu_read_unlock();
++ res = futex2_waitv(waitv, NR_FUTEXES, 0, &to64);
++ if (res < 0) {
++ printf("waiter failed errno %d %s\n",
++ res ? errno : res,
++ res ? strerror(errno) : "");
+ }
+
-+out:
-+ put_page(page);
-+ return err;
-+}
-+
-+/**
-+ * fault_in_user_writeable() - Fault in user address and verify RW access
-+ * @uaddr: pointer to faulting user space address
-+ *
-+ * Slow path to fixup the fault we just took in the atomic write
-+ * access to @uaddr.
-+ *
-+ * We have no generic implementation of a non-destructive write to the
-+ * user address. We know that we faulted in the atomic pagefault
-+ * disabled section so we can as well avoid the #PF overhead by
-+ * calling get_user_pages() right away.
-+ */
-+static int fault_in_user_writeable(u32 __user *uaddr)
-+{
-+ struct mm_struct *mm = current->mm;
-+ int ret;
-+
-+ mmap_read_lock(mm);
-+ ret = fixup_user_fault(mm, (unsigned long)uaddr,
-+ FAULT_FLAG_WRITE, NULL);
-+ mmap_read_unlock(mm);
-+
-+ return ret < 0 ? ret : 0;
-+}
-+
-+/**
-+ * futex_top_waiter() - Return the highest priority waiter on a futex
-+ * @hb: the hash bucket the futex_q's reside in
-+ * @key: the futex key (to distinguish it from other futex futex_q's)
-+ *
-+ * Must be called with the hb lock held.
-+ */
-+static struct futex_q *futex_top_waiter(struct futex_hash_bucket *hb,
-+ union futex_key *key)
-+{
-+ struct futex_q *this;
-+
-+ plist_for_each_entry(this, &hb->chain, list) {
-+ if (match_futex(&this->key, key))
-+ return this;
-+ }
+ return NULL;
+}
+
-+static int cmpxchg_futex_value_locked(u32 *curval, u32 __user *uaddr,
-+ u32 uval, u32 newval)
-+{
-+ int ret;
-+
-+ pagefault_disable();
-+ ret = futex_atomic_cmpxchg_inatomic(curval, uaddr, uval, newval);
-+ pagefault_enable();
-+
-+ return ret;
-+}
-+
-+static int get_futex_value_locked(u32 *dest, u32 __user *from)
-+{
-+ int ret;
-+
-+ pagefault_disable();
-+ ret = __get_user(*dest, from);
-+ pagefault_enable();
-+
-+ return ret ? -EFAULT : 0;
-+}
-+
-+
-+/*
-+ * PI code:
-+ */
-+static int refill_pi_state_cache(void)
-+{
-+ struct futex_pi_state *pi_state;
-+
-+ if (likely(current->pi_state_cache))
-+ return 0;
-+
-+ pi_state = kzalloc(sizeof(*pi_state), GFP_KERNEL);
-+
-+ if (!pi_state)
-+ return -ENOMEM;
-+
-+ INIT_LIST_HEAD(&pi_state->list);
-+ /* pi_mutex gets initialized later */
-+ pi_state->owner = NULL;
-+ refcount_set(&pi_state->refcount, 1);
-+ pi_state->key = FUTEX_KEY_INIT;
-+
-+ current->pi_state_cache = pi_state;
-+
-+ return 0;
-+}
-+
-+static struct futex_pi_state *alloc_pi_state(void)
-+{
-+ struct futex_pi_state *pi_state = current->pi_state_cache;
-+
-+ WARN_ON(!pi_state);
-+ current->pi_state_cache = NULL;
-+
-+ return pi_state;
-+}
-+
-+static void get_pi_state(struct futex_pi_state *pi_state)
-+{
-+ WARN_ON_ONCE(!refcount_inc_not_zero(&pi_state->refcount));
-+}
-+
-+/*
-+ * Drops a reference to the pi_state object and frees or caches it
-+ * when the last reference is gone.
-+ */
-+static void put_pi_state(struct futex_pi_state *pi_state)
-+{
-+ if (!pi_state)
-+ return;
-+
-+ if (!refcount_dec_and_test(&pi_state->refcount))
-+ return;
-+
-+ /*
-+ * If pi_state->owner is NULL, the owner is most probably dying
-+ * and has cleaned up the pi_state already
-+ */
-+ if (pi_state->owner) {
-+ struct task_struct *owner;
-+
-+ raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock);
-+ owner = pi_state->owner;
-+ if (owner) {
-+ raw_spin_lock(&owner->pi_lock);
-+ list_del_init(&pi_state->list);
-+ raw_spin_unlock(&owner->pi_lock);
-+ }
-+ rt_mutex_proxy_unlock(&pi_state->pi_mutex, owner);
-+ raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock);
-+ }
-+
-+ if (current->pi_state_cache) {
-+ kfree(pi_state);
-+ } else {
-+ /*
-+ * pi_state->list is already empty.
-+ * clear pi_state->owner.
-+ * refcount is at 0 - put it back to 1.
-+ */
-+ pi_state->owner = NULL;
-+ refcount_set(&pi_state->refcount, 1);
-+ current->pi_state_cache = pi_state;
-+ }
-+}
-+
-+/*
-+ * We need to check the following states:
-+ *
-+ * Waiter | pi_state | pi->owner | uTID | uODIED | ?
-+ *
-+ * [1] NULL | --- | --- | 0 | 0/1 | Valid
-+ * [2] NULL | --- | --- | >0 | 0/1 | Valid
-+ *
-+ * [3] Found | NULL | -- | Any | 0/1 | Invalid
-+ *
-+ * [4] Found | Found | NULL | 0 | 1 | Valid
-+ * [5] Found | Found | NULL | >0 | 1 | Invalid
-+ *
-+ * [6] Found | Found | task | 0 | 1 | Valid
-+ *
-+ * [7] Found | Found | NULL | Any | 0 | Invalid
-+ *
-+ * [8] Found | Found | task | ==taskTID | 0/1 | Valid
-+ * [9] Found | Found | task | 0 | 0 | Invalid
-+ * [10] Found | Found | task | !=taskTID | 0/1 | Invalid
-+ *
-+ * [1] Indicates that the kernel can acquire the futex atomically. We
-+ * came came here due to a stale FUTEX_WAITERS/FUTEX_OWNER_DIED bit.
-+ *
-+ * [2] Valid, if TID does not belong to a kernel thread. If no matching
-+ * thread is found then it indicates that the owner TID has died.
-+ *
-+ * [3] Invalid. The waiter is queued on a non PI futex
-+ *
-+ * [4] Valid state after exit_robust_list(), which sets the user space
-+ * value to FUTEX_WAITERS | FUTEX_OWNER_DIED.
-+ *
-+ * [5] The user space value got manipulated between exit_robust_list()
-+ * and exit_pi_state_list()
-+ *
-+ * [6] Valid state after exit_pi_state_list() which sets the new owner in
-+ * the pi_state but cannot access the user space value.
-+ *
-+ * [7] pi_state->owner can only be NULL when the OWNER_DIED bit is set.
-+ *
-+ * [8] Owner and user space value match
-+ *
-+ * [9] There is no transient state which sets the user space TID to 0
-+ * except exit_robust_list(), but this is indicated by the
-+ * FUTEX_OWNER_DIED bit. See [4]
-+ *
-+ * [10] There is no transient state which leaves owner and user space
-+ * TID out of sync.
-+ *
-+ *
-+ * Serialization and lifetime rules:
-+ *
-+ * hb->lock:
-+ *
-+ * hb -> futex_q, relation
-+ * futex_q -> pi_state, relation
-+ *
-+ * (cannot be raw because hb can contain arbitrary amount
-+ * of futex_q's)
-+ *
-+ * pi_mutex->wait_lock:
-+ *
-+ * {uval, pi_state}
-+ *
-+ * (and pi_mutex 'obviously')
-+ *
-+ * p->pi_lock:
-+ *
-+ * p->pi_state_list -> pi_state->list, relation
-+ *
-+ * pi_state->refcount:
-+ *
-+ * pi_state lifetime
-+ *
-+ *
-+ * Lock order:
-+ *
-+ * hb->lock
-+ * pi_mutex->wait_lock
-+ * p->pi_lock
-+ *
-+ */
-+
-+/*
-+ * Validate that the existing waiter has a pi_state and sanity check
-+ * the pi_state against the user space value. If correct, attach to
-+ * it.
-+ */
-+static int attach_to_pi_state(u32 __user *uaddr, u32 uval,
-+ struct futex_pi_state *pi_state,
-+ struct futex_pi_state **ps)
-+{
-+ pid_t pid = uval & FUTEX_TID_MASK;
-+ u32 uval2;
-+ int ret;
-+
-+ /*
-+ * Userspace might have messed up non-PI and PI futexes [3]
-+ */
-+ if (unlikely(!pi_state))
-+ return -EINVAL;
-+
-+ /*
-+ * We get here with hb->lock held, and having found a
-+ * futex_top_waiter(). This means that futex_lock_pi() of said futex_q
-+ * has dropped the hb->lock in between queue_me() and unqueue_me_pi(),
-+ * which in turn means that futex_lock_pi() still has a reference on
-+ * our pi_state.
-+ *
-+ * The waiter holding a reference on @pi_state also protects against
-+ * the unlocked put_pi_state() in futex_unlock_pi(), futex_lock_pi()
-+ * and futex_wait_requeue_pi() as it cannot go to 0 and consequently
-+ * free pi_state before we can take a reference ourselves.
-+ */
-+ WARN_ON(!refcount_read(&pi_state->refcount));
-+
-+ /*
-+ * Now that we have a pi_state, we can acquire wait_lock
-+ * and do the state validation.
-+ */
-+ raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock);
-+
-+ /*
-+ * Since {uval, pi_state} is serialized by wait_lock, and our current
-+ * uval was read without holding it, it can have changed. Verify it
-+ * still is what we expect it to be, otherwise retry the entire
-+ * operation.
-+ */
-+ if (get_futex_value_locked(&uval2, uaddr))
-+ goto out_efault;
-+
-+ if (uval != uval2)
-+ goto out_eagain;
-+
-+ /*
-+ * Handle the owner died case:
-+ */
-+ if (uval & FUTEX_OWNER_DIED) {
-+ /*
-+ * exit_pi_state_list sets owner to NULL and wakes the
-+ * topmost waiter. The task which acquires the
-+ * pi_state->rt_mutex will fixup owner.
-+ */
-+ if (!pi_state->owner) {
-+ /*
-+ * No pi state owner, but the user space TID
-+ * is not 0. Inconsistent state. [5]
-+ */
-+ if (pid)
-+ goto out_einval;
-+ /*
-+ * Take a ref on the state and return success. [4]
-+ */
-+ goto out_attach;
-+ }
-+
-+ /*
-+ * If TID is 0, then either the dying owner has not
-+ * yet executed exit_pi_state_list() or some waiter
-+ * acquired the rtmutex in the pi state, but did not
-+ * yet fixup the TID in user space.
-+ *
-+ * Take a ref on the state and return success. [6]
-+ */
-+ if (!pid)
-+ goto out_attach;
-+ } else {
-+ /*
-+ * If the owner died bit is not set, then the pi_state
-+ * must have an owner. [7]
-+ */
-+ if (!pi_state->owner)
-+ goto out_einval;
-+ }
-+
-+ /*
-+ * Bail out if user space manipulated the futex value. If pi
-+ * state exists then the owner TID must be the same as the
-+ * user space TID. [9/10]
-+ */
-+ if (pid != task_pid_vnr(pi_state->owner))
-+ goto out_einval;
-+
-+out_attach:
-+ get_pi_state(pi_state);
-+ raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock);
-+ *ps = pi_state;
-+ return 0;
-+
-+out_einval:
-+ ret = -EINVAL;
-+ goto out_error;
-+
-+out_eagain:
-+ ret = -EAGAIN;
-+ goto out_error;
-+
-+out_efault:
-+ ret = -EFAULT;
-+ goto out_error;
-+
-+out_error:
-+ raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock);
-+ return ret;
-+}
-+
-+/**
-+ * wait_for_owner_exiting - Block until the owner has exited
-+ * @ret: owner's current futex lock status
-+ * @exiting: Pointer to the exiting task
-+ *
-+ * Caller must hold a refcount on @exiting.
-+ */
-+static void wait_for_owner_exiting(int ret, struct task_struct *exiting)
-+{
-+ if (ret != -EBUSY) {
-+ WARN_ON_ONCE(exiting);
-+ return;
-+ }
-+
-+ if (WARN_ON_ONCE(ret == -EBUSY && !exiting))
-+ return;
-+
-+ mutex_lock(&exiting->futex_exit_mutex);
-+ /*
-+ * No point in doing state checking here. If the waiter got here
-+ * while the task was in exec()->exec_futex_release() then it can
-+ * have any FUTEX_STATE_* value when the waiter has acquired the
-+ * mutex. OK, if running, EXITING or DEAD if it reached exit()
-+ * already. Highly unlikely and not a problem. Just one more round
-+ * through the futex maze.
-+ */
-+ mutex_unlock(&exiting->futex_exit_mutex);
-+
-+ put_task_struct(exiting);
-+}
-+
-+static int handle_exit_race(u32 __user *uaddr, u32 uval,
-+ struct task_struct *tsk)
-+{
-+ u32 uval2;
-+
-+ /*
-+ * If the futex exit state is not yet FUTEX_STATE_DEAD, tell the
-+ * caller that the alleged owner is busy.
-+ */
-+ if (tsk && tsk->futex_state != FUTEX_STATE_DEAD)
-+ return -EBUSY;
-+
-+ /*
-+ * Reread the user space value to handle the following situation:
-+ *
-+ * CPU0 CPU1
-+ *
-+ * sys_exit() sys_futex()
-+ * do_exit() futex_lock_pi()
-+ * futex_lock_pi_atomic()
-+ * exit_signals(tsk) No waiters:
-+ * tsk->flags |= PF_EXITING; *uaddr == 0x00000PID
-+ * mm_release(tsk) Set waiter bit
-+ * exit_robust_list(tsk) { *uaddr = 0x80000PID;
-+ * Set owner died attach_to_pi_owner() {
-+ * *uaddr = 0xC0000000; tsk = get_task(PID);
-+ * } if (!tsk->flags & PF_EXITING) {
-+ * ... attach();
-+ * tsk->futex_state = } else {
-+ * FUTEX_STATE_DEAD; if (tsk->futex_state !=
-+ * FUTEX_STATE_DEAD)
-+ * return -EAGAIN;
-+ * return -ESRCH; <--- FAIL
-+ * }
-+ *
-+ * Returning ESRCH unconditionally is wrong here because the
-+ * user space value has been changed by the exiting task.
-+ *
-+ * The same logic applies to the case where the exiting task is
-+ * already gone.
-+ */
-+ if (get_futex_value_locked(&uval2, uaddr))
-+ return -EFAULT;
-+
-+ /* If the user space value has changed, try again. */
-+ if (uval2 != uval)
-+ return -EAGAIN;
-+
-+ /*
-+ * The exiting task did not have a robust list, the robust list was
-+ * corrupted or the user space value in *uaddr is simply bogus.
-+ * Give up and tell user space.
-+ */
-+ return -ESRCH;
-+}
-+
-+/*
-+ * Lookup the task for the TID provided from user space and attach to
-+ * it after doing proper sanity checks.
-+ */
-+static int attach_to_pi_owner(u32 __user *uaddr, u32 uval, union futex_key *key,
-+ struct futex_pi_state **ps,
-+ struct task_struct **exiting)
-+{
-+ pid_t pid = uval & FUTEX_TID_MASK;
-+ struct futex_pi_state *pi_state;
-+ struct task_struct *p;
-+
-+ /*
-+ * We are the first waiter - try to look up the real owner and attach
-+ * the new pi_state to it, but bail out when TID = 0 [1]
-+ *
-+ * The !pid check is paranoid. None of the call sites should end up
-+ * with pid == 0, but better safe than sorry. Let the caller retry
-+ */
-+ if (!pid)
-+ return -EAGAIN;
-+ p = find_get_task_by_vpid(pid);
-+ if (!p)
-+ return handle_exit_race(uaddr, uval, NULL);
-+
-+ if (unlikely(p->flags & PF_KTHREAD)) {
-+ put_task_struct(p);
-+ return -EPERM;
-+ }
-+
-+ /*
-+ * We need to look at the task state to figure out, whether the
-+ * task is exiting. To protect against the change of the task state
-+ * in futex_exit_release(), we do this protected by p->pi_lock:
-+ */
-+ raw_spin_lock_irq(&p->pi_lock);
-+ if (unlikely(p->futex_state != FUTEX_STATE_OK)) {
-+ /*
-+ * The task is on the way out. When the futex state is
-+ * FUTEX_STATE_DEAD, we know that the task has finished
-+ * the cleanup:
-+ */
-+ int ret = handle_exit_race(uaddr, uval, p);
-+
-+ raw_spin_unlock_irq(&p->pi_lock);
-+ /*
-+ * If the owner task is between FUTEX_STATE_EXITING and
-+ * FUTEX_STATE_DEAD then store the task pointer and keep
-+ * the reference on the task struct. The calling code will
-+ * drop all locks, wait for the task to reach
-+ * FUTEX_STATE_DEAD and then drop the refcount. This is
-+ * required to prevent a live lock when the current task
-+ * preempted the exiting task between the two states.
-+ */
-+ if (ret == -EBUSY)
-+ *exiting = p;
-+ else
-+ put_task_struct(p);
-+ return ret;
-+ }
-+
-+ /*
-+ * No existing pi state. First waiter. [2]
-+ *
-+ * This creates pi_state, we have hb->lock held, this means nothing can
-+ * observe this state, wait_lock is irrelevant.
-+ */
-+ pi_state = alloc_pi_state();
-+
-+ /*
-+ * Initialize the pi_mutex in locked state and make @p
-+ * the owner of it:
-+ */
-+ rt_mutex_init_proxy_locked(&pi_state->pi_mutex, p);
-+
-+ /* Store the key for possible exit cleanups: */
-+ pi_state->key = *key;
-+
-+ WARN_ON(!list_empty(&pi_state->list));
-+ list_add(&pi_state->list, &p->pi_state_list);
-+ /*
-+ * Assignment without holding pi_state->pi_mutex.wait_lock is safe
-+ * because there is no concurrency as the object is not published yet.
-+ */
-+ pi_state->owner = p;
-+ raw_spin_unlock_irq(&p->pi_lock);
-+
-+ put_task_struct(p);
-+
-+ *ps = pi_state;
-+
-+ return 0;
-+}
-+
-+static int lookup_pi_state(u32 __user *uaddr, u32 uval,
-+ struct futex_hash_bucket *hb,
-+ union futex_key *key, struct futex_pi_state **ps,
-+ struct task_struct **exiting)
-+{
-+ struct futex_q *top_waiter = futex_top_waiter(hb, key);
-+
-+ /*
-+ * If there is a waiter on that futex, validate it and
-+ * attach to the pi_state when the validation succeeds.
-+ */
-+ if (top_waiter)
-+ return attach_to_pi_state(uaddr, uval, top_waiter->pi_state, ps);
-+
-+ /*
-+ * We are the first waiter - try to look up the owner based on
-+ * @uval and attach to it.
-+ */
-+ return attach_to_pi_owner(uaddr, uval, key, ps, exiting);
-+}
-+
-+static int lock_pi_update_atomic(u32 __user *uaddr, u32 uval, u32 newval)
-+{
-+ int err;
-+ u32 curval;
-+
-+ if (unlikely(should_fail_futex(true)))
-+ return -EFAULT;
-+
-+ err = cmpxchg_futex_value_locked(&curval, uaddr, uval, newval);
-+ if (unlikely(err))
-+ return err;
-+
-+ /* If user space value changed, let the caller retry */
-+ return curval != uval ? -EAGAIN : 0;
-+}
-+
-+/**
-+ * futex_lock_pi_atomic() - Atomic work required to acquire a pi aware futex
-+ * @uaddr: the pi futex user address
-+ * @hb: the pi futex hash bucket
-+ * @key: the futex key associated with uaddr and hb
-+ * @ps: the pi_state pointer where we store the result of the
-+ * lookup
-+ * @task: the task to perform the atomic lock work for. This will
-+ * be "current" except in the case of requeue pi.
-+ * @exiting: Pointer to store the task pointer of the owner task
-+ * which is in the middle of exiting
-+ * @set_waiters: force setting the FUTEX_WAITERS bit (1) or not (0)
-+ *
-+ * Return:
-+ * - 0 - ready to wait;
-+ * - 1 - acquired the lock;
-+ * - <0 - error
-+ *
-+ * The hb->lock and futex_key refs shall be held by the caller.
-+ *
-+ * @exiting is only set when the return value is -EBUSY. If so, this holds
-+ * a refcount on the exiting task on return and the caller needs to drop it
-+ * after waiting for the exit to complete.
-+ */
-+static int futex_lock_pi_atomic(u32 __user *uaddr, struct futex_hash_bucket *hb,
-+ union futex_key *key,
-+ struct futex_pi_state **ps,
-+ struct task_struct *task,
-+ struct task_struct **exiting,
-+ int set_waiters)
-+{
-+ u32 uval, newval, vpid = task_pid_vnr(task);
-+ struct futex_q *top_waiter;
-+ int ret;
-+
-+ /*
-+ * Read the user space value first so we can validate a few
-+ * things before proceeding further.
-+ */
-+ if (get_futex_value_locked(&uval, uaddr))
-+ return -EFAULT;
-+
-+ if (unlikely(should_fail_futex(true)))
-+ return -EFAULT;
-+
-+ /*
-+ * Detect deadlocks.
-+ */
-+ if ((unlikely((uval & FUTEX_TID_MASK) == vpid)))
-+ return -EDEADLK;
-+
-+ if ((unlikely(should_fail_futex(true))))
-+ return -EDEADLK;
-+
-+ /*
-+ * Lookup existing state first. If it exists, try to attach to
-+ * its pi_state.
-+ */
-+ top_waiter = futex_top_waiter(hb, key);
-+ if (top_waiter)
-+ return attach_to_pi_state(uaddr, uval, top_waiter->pi_state, ps);
-+
-+ /*
-+ * No waiter and user TID is 0. We are here because the
-+ * waiters or the owner died bit is set or called from
-+ * requeue_cmp_pi or for whatever reason something took the
-+ * syscall.
-+ */
-+ if (!(uval & FUTEX_TID_MASK)) {
-+ /*
-+ * We take over the futex. No other waiters and the user space
-+ * TID is 0. We preserve the owner died bit.
-+ */
-+ newval = uval & FUTEX_OWNER_DIED;
-+ newval |= vpid;
-+
-+ /* The futex requeue_pi code can enforce the waiters bit */
-+ if (set_waiters)
-+ newval |= FUTEX_WAITERS;
-+
-+ ret = lock_pi_update_atomic(uaddr, uval, newval);
-+ /* If the take over worked, return 1 */
-+ return ret < 0 ? ret : 1;
-+ }
-+
-+ /*
-+ * First waiter. Set the waiters bit before attaching ourself to
-+ * the owner. If owner tries to unlock, it will be forced into
-+ * the kernel and blocked on hb->lock.
-+ */
-+ newval = uval | FUTEX_WAITERS;
-+ ret = lock_pi_update_atomic(uaddr, uval, newval);
-+ if (ret)
-+ return ret;
-+ /*
-+ * If the update of the user space value succeeded, we try to
-+ * attach to the owner. If that fails, no harm done, we only
-+ * set the FUTEX_WAITERS bit in the user space variable.
-+ */
-+ return attach_to_pi_owner(uaddr, newval, key, ps, exiting);
-+}
-+
-+/**
-+ * __unqueue_futex() - Remove the futex_q from its futex_hash_bucket
-+ * @q: The futex_q to unqueue
-+ *
-+ * The q->lock_ptr must not be NULL and must be held by the caller.
-+ */
-+static void __unqueue_futex(struct futex_q *q)
-+{
-+ struct futex_hash_bucket *hb;
-+
-+ if (WARN_ON_SMP(!q->lock_ptr) || WARN_ON(plist_node_empty(&q->list)))
-+ return;
-+ lockdep_assert_held(q->lock_ptr);
-+
-+ hb = container_of(q->lock_ptr, struct futex_hash_bucket, lock);
-+ plist_del(&q->list, &hb->chain);
-+ hb_waiters_dec(hb);
-+}
-+
-+/*
-+ * The hash bucket lock must be held when this is called.
-+ * Afterwards, the futex_q must not be accessed. Callers
-+ * must ensure to later call wake_up_q() for the actual
-+ * wakeups to occur.
-+ */
-+static void mark_wake_futex(struct wake_q_head *wake_q, struct futex_q *q)
-+{
-+ struct task_struct *p = q->task;
-+
-+ if (WARN(q->pi_state || q->rt_waiter, "refusing to wake PI futex\n"))
-+ return;
-+
-+ get_task_struct(p);
-+ __unqueue_futex(q);
-+ /*
-+ * The waiting task can free the futex_q as soon as q->lock_ptr = NULL
-+ * is written, without taking any locks. This is possible in the event
-+ * of a spurious wakeup, for example. A memory barrier is required here
-+ * to prevent the following store to lock_ptr from getting ahead of the
-+ * plist_del in __unqueue_futex().
-+ */
-+ smp_store_release(&q->lock_ptr, NULL);
-+
-+ /*
-+ * Queue the task for later wakeup for after we've released
-+ * the hb->lock.
-+ */
-+ wake_q_add_safe(wake_q, p);
-+}
-+
-+/*
-+ * Caller must hold a reference on @pi_state.
-+ */
-+static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_pi_state *pi_state)
-+{
-+ u32 curval, newval;
-+ struct task_struct *new_owner;
-+ bool postunlock = false;
-+ DEFINE_WAKE_Q(wake_q);
-+ int ret = 0;
-+
-+ new_owner = rt_mutex_next_owner(&pi_state->pi_mutex);
-+ if (WARN_ON_ONCE(!new_owner)) {
-+ /*
-+ * As per the comment in futex_unlock_pi() this should not happen.
-+ *
-+ * When this happens, give up our locks and try again, giving
-+ * the futex_lock_pi() instance time to complete, either by
-+ * waiting on the rtmutex or removing itself from the futex
-+ * queue.
-+ */
-+ ret = -EAGAIN;
-+ goto out_unlock;
-+ }
-+
-+ /*
-+ * We pass it to the next owner. The WAITERS bit is always kept
-+ * enabled while there is PI state around. We cleanup the owner
-+ * died bit, because we are the owner.
-+ */
-+ newval = FUTEX_WAITERS | task_pid_vnr(new_owner);
-+
-+ if (unlikely(should_fail_futex(true)))
-+ ret = -EFAULT;
-+
-+ ret = cmpxchg_futex_value_locked(&curval, uaddr, uval, newval);
-+ if (!ret && (curval != uval)) {
-+ /*
-+ * If a unconditional UNLOCK_PI operation (user space did not
-+ * try the TID->0 transition) raced with a waiter setting the
-+ * FUTEX_WAITERS flag between get_user() and locking the hash
-+ * bucket lock, retry the operation.
-+ */
-+ if ((FUTEX_TID_MASK & curval) == uval)
-+ ret = -EAGAIN;
-+ else
-+ ret = -EINVAL;
-+ }
-+
-+ if (ret)
-+ goto out_unlock;
-+
-+ /*
-+ * This is a point of no return; once we modify the uval there is no
-+ * going back and subsequent operations must not fail.
-+ */
-+
-+ raw_spin_lock(&pi_state->owner->pi_lock);
-+ WARN_ON(list_empty(&pi_state->list));
-+ list_del_init(&pi_state->list);
-+ raw_spin_unlock(&pi_state->owner->pi_lock);
-+
-+ raw_spin_lock(&new_owner->pi_lock);
-+ WARN_ON(!list_empty(&pi_state->list));
-+ list_add(&pi_state->list, &new_owner->pi_state_list);
-+ pi_state->owner = new_owner;
-+ raw_spin_unlock(&new_owner->pi_lock);
-+
-+ postunlock = __rt_mutex_futex_unlock(&pi_state->pi_mutex, &wake_q);
-+
-+out_unlock:
-+ raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock);
-+
-+ if (postunlock)
-+ rt_mutex_postunlock(&wake_q);
-+
-+ return ret;
-+}
-+
-+/*
-+ * Express the locking dependencies for lockdep:
-+ */
-+static inline void
-+double_lock_hb(struct futex_hash_bucket *hb1, struct futex_hash_bucket *hb2)
-+{
-+ if (hb1 <= hb2) {
-+ spin_lock(&hb1->lock);
-+ if (hb1 < hb2)
-+ spin_lock_nested(&hb2->lock, SINGLE_DEPTH_NESTING);
-+ } else { /* hb1 > hb2 */
-+ spin_lock(&hb2->lock);
-+ spin_lock_nested(&hb1->lock, SINGLE_DEPTH_NESTING);
-+ }
-+}
-+
-+static inline void
-+double_unlock_hb(struct futex_hash_bucket *hb1, struct futex_hash_bucket *hb2)
-+{
-+ spin_unlock(&hb1->lock);
-+ if (hb1 != hb2)
-+ spin_unlock(&hb2->lock);
-+}
-+
-+/*
-+ * Wake up waiters matching bitset queued on this futex (uaddr).
-+ */
-+static int
-+futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset)
-+{
-+ struct futex_hash_bucket *hb;
-+ struct futex_q *this, *next;
-+ union futex_key key = FUTEX_KEY_INIT;
-+ int ret;
-+ DEFINE_WAKE_Q(wake_q);
-+
-+ if (!bitset)
-+ return -EINVAL;
-+
-+ ret = get_futex_key(uaddr, flags & FLAGS_SHARED, &key, FUTEX_READ);
-+ if (unlikely(ret != 0))
-+ return ret;
-+
-+ hb = hash_futex(&key);
-+
-+ /* Make sure we really have tasks to wakeup */
-+ if (!hb_waiters_pending(hb))
-+ return ret;
-+
-+ spin_lock(&hb->lock);
-+
-+ plist_for_each_entry_safe(this, next, &hb->chain, list) {
-+ if (match_futex (&this->key, &key)) {
-+ if (this->pi_state || this->rt_waiter) {
-+ ret = -EINVAL;
-+ break;
-+ }
-+
-+ /* Check if one of the bits is set in both bitsets */
-+ if (!(this->bitset & bitset))
-+ continue;
-+
-+ mark_wake_futex(&wake_q, this);
-+ if (++ret >= nr_wake)
-+ break;
-+ }
-+ }
-+
-+ spin_unlock(&hb->lock);
-+ wake_up_q(&wake_q);
-+ return ret;
-+}
-+
-+static int futex_atomic_op_inuser(unsigned int encoded_op, u32 __user *uaddr)
-+{
-+ unsigned int op = (encoded_op & 0x70000000) >> 28;
-+ unsigned int cmp = (encoded_op & 0x0f000000) >> 24;
-+ int oparg = sign_extend32((encoded_op & 0x00fff000) >> 12, 11);
-+ int cmparg = sign_extend32(encoded_op & 0x00000fff, 11);
-+ int oldval, ret;
-+
-+ if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) {
-+ if (oparg < 0 || oparg > 31) {
-+ char comm[sizeof(current->comm)];
-+ /*
-+ * kill this print and return -EINVAL when userspace
-+ * is sane again
-+ */
-+ pr_info_ratelimited("futex_wake_op: %s tries to shift op by %d; fix this program\n",
-+ get_task_comm(comm, current), oparg);
-+ oparg &= 31;
-+ }
-+ oparg = 1 << oparg;
-+ }
-+
-+ pagefault_disable();
-+ ret = arch_futex_atomic_op_inuser(op, oparg, &oldval, uaddr);
-+ pagefault_enable();
-+ if (ret)
-+ return ret;
-+
-+ switch (cmp) {
-+ case FUTEX_OP_CMP_EQ:
-+ return oldval == cmparg;
-+ case FUTEX_OP_CMP_NE:
-+ return oldval != cmparg;
-+ case FUTEX_OP_CMP_LT:
-+ return oldval < cmparg;
-+ case FUTEX_OP_CMP_GE:
-+ return oldval >= cmparg;
-+ case FUTEX_OP_CMP_LE:
-+ return oldval <= cmparg;
-+ case FUTEX_OP_CMP_GT:
-+ return oldval > cmparg;
-+ default:
-+ return -ENOSYS;
-+ }
-+}
-+
-+/*
-+ * Wake up all waiters hashed on the physical page that is mapped
-+ * to this virtual address:
-+ */
-+static int
-+futex_wake_op(u32 __user *uaddr1, unsigned int flags, u32 __user *uaddr2,
-+ int nr_wake, int nr_wake2, int op)
-+{
-+ union futex_key key1 = FUTEX_KEY_INIT, key2 = FUTEX_KEY_INIT;
-+ struct futex_hash_bucket *hb1, *hb2;
-+ struct futex_q *this, *next;
-+ int ret, op_ret;
-+ DEFINE_WAKE_Q(wake_q);
-+
-+retry:
-+ ret = get_futex_key(uaddr1, flags & FLAGS_SHARED, &key1, FUTEX_READ);
-+ if (unlikely(ret != 0))
-+ return ret;
-+ ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2, FUTEX_WRITE);
-+ if (unlikely(ret != 0))
-+ return ret;
-+
-+ hb1 = hash_futex(&key1);
-+ hb2 = hash_futex(&key2);
-+
-+retry_private:
-+ double_lock_hb(hb1, hb2);
-+ op_ret = futex_atomic_op_inuser(op, uaddr2);
-+ if (unlikely(op_ret < 0)) {
-+ double_unlock_hb(hb1, hb2);
-+
-+ if (!IS_ENABLED(CONFIG_MMU) ||
-+ unlikely(op_ret != -EFAULT && op_ret != -EAGAIN)) {
-+ /*
-+ * we don't get EFAULT from MMU faults if we don't have
-+ * an MMU, but we might get them from range checking
-+ */
-+ ret = op_ret;
-+ return ret;
-+ }
-+
-+ if (op_ret == -EFAULT) {
-+ ret = fault_in_user_writeable(uaddr2);
-+ if (ret)
-+ return ret;
-+ }
-+
-+ if (!(flags & FLAGS_SHARED)) {
-+ cond_resched();
-+ goto retry_private;
-+ }
-+
-+ cond_resched();
-+ goto retry;
-+ }
-+
-+ plist_for_each_entry_safe(this, next, &hb1->chain, list) {
-+ if (match_futex (&this->key, &key1)) {
-+ if (this->pi_state || this->rt_waiter) {
-+ ret = -EINVAL;
-+ goto out_unlock;
-+ }
-+ mark_wake_futex(&wake_q, this);
-+ if (++ret >= nr_wake)
-+ break;
-+ }
-+ }
-+
-+ if (op_ret > 0) {
-+ op_ret = 0;
-+ plist_for_each_entry_safe(this, next, &hb2->chain, list) {
-+ if (match_futex (&this->key, &key2)) {
-+ if (this->pi_state || this->rt_waiter) {
-+ ret = -EINVAL;
-+ goto out_unlock;
-+ }
-+ mark_wake_futex(&wake_q, this);
-+ if (++op_ret >= nr_wake2)
-+ break;
-+ }
-+ }
-+ ret += op_ret;
-+ }
-+
-+out_unlock:
-+ double_unlock_hb(hb1, hb2);
-+ wake_up_q(&wake_q);
-+ return ret;
-+}
-+
-+/**
-+ * requeue_futex() - Requeue a futex_q from one hb to another
-+ * @q: the futex_q to requeue
-+ * @hb1: the source hash_bucket
-+ * @hb2: the target hash_bucket
-+ * @key2: the new key for the requeued futex_q
-+ */
-+static inline
-+void requeue_futex(struct futex_q *q, struct futex_hash_bucket *hb1,
-+ struct futex_hash_bucket *hb2, union futex_key *key2)
-+{
-+
-+ /*
-+ * If key1 and key2 hash to the same bucket, no need to
-+ * requeue.
-+ */
-+ if (likely(&hb1->chain != &hb2->chain)) {
-+ plist_del(&q->list, &hb1->chain);
-+ hb_waiters_dec(hb1);
-+ hb_waiters_inc(hb2);
-+ plist_add(&q->list, &hb2->chain);
-+ q->lock_ptr = &hb2->lock;
-+ }
-+ q->key = *key2;
-+}
-+
-+/**
-+ * requeue_pi_wake_futex() - Wake a task that acquired the lock during requeue
-+ * @q: the futex_q
-+ * @key: the key of the requeue target futex
-+ * @hb: the hash_bucket of the requeue target futex
-+ *
-+ * During futex_requeue, with requeue_pi=1, it is possible to acquire the
-+ * target futex if it is uncontended or via a lock steal. Set the futex_q key
-+ * to the requeue target futex so the waiter can detect the wakeup on the right
-+ * futex, but remove it from the hb and NULL the rt_waiter so it can detect
-+ * atomic lock acquisition. Set the q->lock_ptr to the requeue target hb->lock
-+ * to protect access to the pi_state to fixup the owner later. Must be called
-+ * with both q->lock_ptr and hb->lock held.
-+ */
-+static inline
-+void requeue_pi_wake_futex(struct futex_q *q, union futex_key *key,
-+ struct futex_hash_bucket *hb)
-+{
-+ q->key = *key;
-+
-+ __unqueue_futex(q);
-+
-+ WARN_ON(!q->rt_waiter);
-+ q->rt_waiter = NULL;
-+
-+ q->lock_ptr = &hb->lock;
-+
-+ wake_up_state(q->task, TASK_NORMAL);
-+}
-+
-+/**
-+ * futex_proxy_trylock_atomic() - Attempt an atomic lock for the top waiter
-+ * @pifutex: the user address of the to futex
-+ * @hb1: the from futex hash bucket, must be locked by the caller
-+ * @hb2: the to futex hash bucket, must be locked by the caller
-+ * @key1: the from futex key
-+ * @key2: the to futex key
-+ * @ps: address to store the pi_state pointer
-+ * @exiting: Pointer to store the task pointer of the owner task
-+ * which is in the middle of exiting
-+ * @set_waiters: force setting the FUTEX_WAITERS bit (1) or not (0)
-+ *
-+ * Try and get the lock on behalf of the top waiter if we can do it atomically.
-+ * Wake the top waiter if we succeed. If the caller specified set_waiters,
-+ * then direct futex_lock_pi_atomic() to force setting the FUTEX_WAITERS bit.
-+ * hb1 and hb2 must be held by the caller.
-+ *
-+ * @exiting is only set when the return value is -EBUSY. If so, this holds
-+ * a refcount on the exiting task on return and the caller needs to drop it
-+ * after waiting for the exit to complete.
-+ *
-+ * Return:
-+ * - 0 - failed to acquire the lock atomically;
-+ * - >0 - acquired the lock, return value is vpid of the top_waiter
-+ * - <0 - error
-+ */
-+static int
-+futex_proxy_trylock_atomic(u32 __user *pifutex, struct futex_hash_bucket *hb1,
-+ struct futex_hash_bucket *hb2, union futex_key *key1,
-+ union futex_key *key2, struct futex_pi_state **ps,
-+ struct task_struct **exiting, int set_waiters)
-+{
-+ struct futex_q *top_waiter = NULL;
-+ u32 curval;
-+ int ret, vpid;
-+
-+ if (get_futex_value_locked(&curval, pifutex))
-+ return -EFAULT;
-+
-+ if (unlikely(should_fail_futex(true)))
-+ return -EFAULT;
-+
-+ /*
-+ * Find the top_waiter and determine if there are additional waiters.
-+ * If the caller intends to requeue more than 1 waiter to pifutex,
-+ * force futex_lock_pi_atomic() to set the FUTEX_WAITERS bit now,
-+ * as we have means to handle the possible fault. If not, don't set
-+ * the bit unecessarily as it will force the subsequent unlock to enter
-+ * the kernel.
-+ */
-+ top_waiter = futex_top_waiter(hb1, key1);
-+
-+ /* There are no waiters, nothing for us to do. */
-+ if (!top_waiter)
-+ return 0;
-+
-+ /* Ensure we requeue to the expected futex. */
-+ if (!match_futex(top_waiter->requeue_pi_key, key2))
-+ return -EINVAL;
-+
-+ /*
-+ * Try to take the lock for top_waiter. Set the FUTEX_WAITERS bit in
-+ * the contended case or if set_waiters is 1. The pi_state is returned
-+ * in ps in contended cases.
-+ */
-+ vpid = task_pid_vnr(top_waiter->task);
-+ ret = futex_lock_pi_atomic(pifutex, hb2, key2, ps, top_waiter->task,
-+ exiting, set_waiters);
-+ if (ret == 1) {
-+ requeue_pi_wake_futex(top_waiter, key2, hb2);
-+ return vpid;
-+ }
-+ return ret;
-+}
-+
-+/**
-+ * futex_requeue() - Requeue waiters from uaddr1 to uaddr2
-+ * @uaddr1: source futex user address
-+ * @flags: futex flags (FLAGS_SHARED, etc.)
-+ * @uaddr2: target futex user address
-+ * @nr_wake: number of waiters to wake (must be 1 for requeue_pi)
-+ * @nr_requeue: number of waiters to requeue (0-INT_MAX)
-+ * @cmpval: @uaddr1 expected value (or %NULL)
-+ * @requeue_pi: if we are attempting to requeue from a non-pi futex to a
-+ * pi futex (pi to pi requeue is not supported)
-+ *
-+ * Requeue waiters on uaddr1 to uaddr2. In the requeue_pi case, try to acquire
-+ * uaddr2 atomically on behalf of the top waiter.
-+ *
-+ * Return:
-+ * - >=0 - on success, the number of tasks requeued or woken;
-+ * - <0 - on error
-+ */
-+static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
-+ u32 __user *uaddr2, int nr_wake, int nr_requeue,
-+ u32 *cmpval, int requeue_pi)
++int main(int argc, char *argv[])
+{
-+ union futex_key key1 = FUTEX_KEY_INIT, key2 = FUTEX_KEY_INIT;
-+ int task_count = 0, ret;
-+ struct futex_pi_state *pi_state = NULL;
-+ struct futex_hash_bucket *hb1, *hb2;
-+ struct futex_q *this, *next;
-+ DEFINE_WAKE_Q(wake_q);
-+
-+ if (nr_wake < 0 || nr_requeue < 0)
-+ return -EINVAL;
-+
-+ /*
-+ * When PI not supported: return -ENOSYS if requeue_pi is true,
-+ * consequently the compiler knows requeue_pi is always false past
-+ * this point which will optimize away all the conditional code
-+ * further down.
-+ */
-+ if (!IS_ENABLED(CONFIG_FUTEX_PI) && requeue_pi)
-+ return -ENOSYS;
-+
-+ if (requeue_pi) {
-+ /*
-+ * Requeue PI only works on two distinct uaddrs. This
-+ * check is only valid for private futexes. See below.
-+ */
-+ if (uaddr1 == uaddr2)
-+ return -EINVAL;
-+
-+ /*
-+ * requeue_pi requires a pi_state, try to allocate it now
-+ * without any locks in case it fails.
-+ */
-+ if (refill_pi_state_cache())
-+ return -ENOMEM;
-+ /*
-+ * requeue_pi must wake as many tasks as it can, up to nr_wake
-+ * + nr_requeue, since it acquires the rt_mutex prior to
-+ * returning to userspace, so as to not leave the rt_mutex with
-+ * waiters and no owner. However, second and third wake-ups
-+ * cannot be predicted as they involve race conditions with the
-+ * first wake and a fault while looking up the pi_state. Both
-+ * pthread_cond_signal() and pthread_cond_broadcast() should
-+ * use nr_wake=1.
-+ */
-+ if (nr_wake != 1)
-+ return -EINVAL;
-+ }
-+
-+retry:
-+ ret = get_futex_key(uaddr1, flags & FLAGS_SHARED, &key1, FUTEX_READ);
-+ if (unlikely(ret != 0))
-+ return ret;
-+ ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2,
-+ requeue_pi ? FUTEX_WRITE : FUTEX_READ);
-+ if (unlikely(ret != 0))
-+ return ret;
-+
-+ /*
-+ * The check above which compares uaddrs is not sufficient for
-+ * shared futexes. We need to compare the keys:
-+ */
-+ if (requeue_pi && match_futex(&key1, &key2))
-+ return -EINVAL;
-+
-+ hb1 = hash_futex(&key1);
-+ hb2 = hash_futex(&key2);
-+
-+retry_private:
-+ hb_waiters_inc(hb2);
-+ double_lock_hb(hb1, hb2);
-+
-+ if (likely(cmpval != NULL)) {
-+ u32 curval;
-+
-+ ret = get_futex_value_locked(&curval, uaddr1);
-+
-+ if (unlikely(ret)) {
-+ double_unlock_hb(hb1, hb2);
-+ hb_waiters_dec(hb2);
-+
-+ ret = get_user(curval, uaddr1);
-+ if (ret)
-+ return ret;
-+
-+ if (!(flags & FLAGS_SHARED))
-+ goto retry_private;
-+
-+ goto retry;
-+ }
-+ if (curval != *cmpval) {
-+ ret = -EAGAIN;
-+ goto out_unlock;
-+ }
-+ }
-+
-+ if (requeue_pi && (task_count - nr_wake < nr_requeue)) {
-+ struct task_struct *exiting = NULL;
-+
-+ /*
-+ * Attempt to acquire uaddr2 and wake the top waiter. If we
-+ * intend to requeue waiters, force setting the FUTEX_WAITERS
-+ * bit. We force this here where we are able to easily handle
-+ * faults rather in the requeue loop below.
-+ */
-+ ret = futex_proxy_trylock_atomic(uaddr2, hb1, hb2, &key1,
-+ &key2, &pi_state,
-+ &exiting, nr_requeue);
-+
-+ /*
-+ * At this point the top_waiter has either taken uaddr2 or is
-+ * waiting on it. If the former, then the pi_state will not
-+ * exist yet, look it up one more time to ensure we have a
-+ * reference to it. If the lock was taken, ret contains the
-+ * vpid of the top waiter task.
-+ * If the lock was not taken, we have pi_state and an initial
-+ * refcount on it. In case of an error we have nothing.
-+ */
-+ if (ret > 0) {
-+ WARN_ON(pi_state);
-+ task_count++;
-+ /*
-+ * If we acquired the lock, then the user space value
-+ * of uaddr2 should be vpid. It cannot be changed by
-+ * the top waiter as it is blocked on hb2 lock if it
-+ * tries to do so. If something fiddled with it behind
-+ * our back the pi state lookup might unearth it. So
-+ * we rather use the known value than rereading and
-+ * handing potential crap to lookup_pi_state.
-+ *
-+ * If that call succeeds then we have pi_state and an
-+ * initial refcount on it.
-+ */
-+ ret = lookup_pi_state(uaddr2, ret, hb2, &key2,
-+ &pi_state, &exiting);
-+ }
-+
-+ switch (ret) {
-+ case 0:
-+ /* We hold a reference on the pi state. */
-+ break;
-+
-+ /* If the above failed, then pi_state is NULL */
-+ case -EFAULT:
-+ double_unlock_hb(hb1, hb2);
-+ hb_waiters_dec(hb2);
-+ ret = fault_in_user_writeable(uaddr2);
-+ if (!ret)
-+ goto retry;
-+ return ret;
-+ case -EBUSY:
-+ case -EAGAIN:
-+ /*
-+ * Two reasons for this:
-+ * - EBUSY: Owner is exiting and we just wait for the
-+ * exit to complete.
-+ * - EAGAIN: The user space value changed.
-+ */
-+ double_unlock_hb(hb1, hb2);
-+ hb_waiters_dec(hb2);
-+ /*
-+ * Handle the case where the owner is in the middle of
-+ * exiting. Wait for the exit to complete otherwise
-+ * this task might loop forever, aka. live lock.
-+ */
-+ wait_for_owner_exiting(ret, exiting);
-+ cond_resched();
-+ goto retry;
-+ default:
-+ goto out_unlock;
-+ }
-+ }
-+
-+ plist_for_each_entry_safe(this, next, &hb1->chain, list) {
-+ if (task_count - nr_wake >= nr_requeue)
-+ break;
-+
-+ if (!match_futex(&this->key, &key1))
-+ continue;
-+
-+ /*
-+ * FUTEX_WAIT_REQEUE_PI and FUTEX_CMP_REQUEUE_PI should always
-+ * be paired with each other and no other futex ops.
-+ *
-+ * We should never be requeueing a futex_q with a pi_state,
-+ * which is awaiting a futex_unlock_pi().
-+ */
-+ if ((requeue_pi && !this->rt_waiter) ||
-+ (!requeue_pi && this->rt_waiter) ||
-+ this->pi_state) {
-+ ret = -EINVAL;
-+ break;
-+ }
-+
-+ /*
-+ * Wake nr_wake waiters. For requeue_pi, if we acquired the
-+ * lock, we already woke the top_waiter. If not, it will be
-+ * woken by futex_unlock_pi().
-+ */
-+ if (++task_count <= nr_wake && !requeue_pi) {
-+ mark_wake_futex(&wake_q, this);
-+ continue;
-+ }
++ pthread_t waiter;
++ int res, ret = RET_PASS;
++ int c, i;
+
-+ /* Ensure we requeue to the expected futex for requeue_pi. */
-+ if (requeue_pi && !match_futex(this->requeue_pi_key, &key2)) {
-+ ret = -EINVAL;
++ while ((c = getopt(argc, argv, "cht:v:")) != -1) {
++ switch (c) {
++ case 'c':
++ log_color(1);
+ break;
-+ }
-+
-+ /*
-+ * Requeue nr_requeue waiters and possibly one more in the case
-+ * of requeue_pi if we couldn't acquire the lock atomically.
-+ */
-+ if (requeue_pi) {
-+ /*
-+ * Prepare the waiter to take the rt_mutex. Take a
-+ * refcount on the pi_state and store the pointer in
-+ * the futex_q object of the waiter.
-+ */
-+ get_pi_state(pi_state);
-+ this->pi_state = pi_state;
-+ ret = rt_mutex_start_proxy_lock(&pi_state->pi_mutex,
-+ this->rt_waiter,
-+ this->task);
-+ if (ret == 1) {
-+ /*
-+ * We got the lock. We do neither drop the
-+ * refcount on pi_state nor clear
-+ * this->pi_state because the waiter needs the
-+ * pi_state for cleaning up the user space
-+ * value. It will drop the refcount after
-+ * doing so.
-+ */
-+ requeue_pi_wake_futex(this, &key2, hb2);
-+ continue;
-+ } else if (ret) {
-+ /*
-+ * rt_mutex_start_proxy_lock() detected a
-+ * potential deadlock when we tried to queue
-+ * that waiter. Drop the pi_state reference
-+ * which we took above and remove the pointer
-+ * to the state from the waiters futex_q
-+ * object.
-+ */
-+ this->pi_state = NULL;
-+ put_pi_state(pi_state);
-+ /*
-+ * We stop queueing more waiters and let user
-+ * space deal with the mess.
-+ */
-+ break;
-+ }
-+ }
-+ requeue_futex(this, hb1, hb2, &key2);
-+ }
-+
-+ /*
-+ * We took an extra initial reference to the pi_state either
-+ * in futex_proxy_trylock_atomic() or in lookup_pi_state(). We
-+ * need to drop it here again.
-+ */
-+ put_pi_state(pi_state);
-+
-+out_unlock:
-+ double_unlock_hb(hb1, hb2);
-+ wake_up_q(&wake_q);
-+ hb_waiters_dec(hb2);
-+ return ret ? ret : task_count;
-+}
-+
-+/* The key must be already stored in q->key. */
-+static inline struct futex_hash_bucket *queue_lock(struct futex_q *q)
-+ __acquires(&hb->lock)
-+{
-+ struct futex_hash_bucket *hb;
-+
-+ hb = hash_futex(&q->key);
-+
-+ /*
-+ * Increment the counter before taking the lock so that
-+ * a potential waker won't miss a to-be-slept task that is
-+ * waiting for the spinlock. This is safe as all queue_lock()
-+ * users end up calling queue_me(). Similarly, for housekeeping,
-+ * decrement the counter at queue_unlock() when some error has
-+ * occurred and we don't end up adding the task to the list.
-+ */
-+ hb_waiters_inc(hb); /* implies smp_mb(); (A) */
-+
-+ q->lock_ptr = &hb->lock;
-+
-+ spin_lock(&hb->lock);
-+ return hb;
-+}
-+
-+static inline void
-+queue_unlock(struct futex_hash_bucket *hb)
-+ __releases(&hb->lock)
-+{
-+ spin_unlock(&hb->lock);
-+ hb_waiters_dec(hb);
-+}
-+
-+static inline void __queue_me(struct futex_q *q, struct futex_hash_bucket *hb)
-+{
-+ int prio;
-+
-+ /*
-+ * The priority used to register this element is
-+ * - either the real thread-priority for the real-time threads
-+ * (i.e. threads with a priority lower than MAX_RT_PRIO)
-+ * - or MAX_RT_PRIO for non-RT threads.
-+ * Thus, all RT-threads are woken first in priority order, and
-+ * the others are woken last, in FIFO order.
-+ */
-+ prio = min(current->normal_prio, MAX_RT_PRIO);
-+
-+ plist_node_init(&q->list, prio);
-+ plist_add(&q->list, &hb->chain);
-+ q->task = current;
-+}
-+
-+/**
-+ * queue_me() - Enqueue the futex_q on the futex_hash_bucket
-+ * @q: The futex_q to enqueue
-+ * @hb: The destination hash bucket
-+ *
-+ * The hb->lock must be held by the caller, and is released here. A call to
-+ * queue_me() is typically paired with exactly one call to unqueue_me(). The
-+ * exceptions involve the PI related operations, which may use unqueue_me_pi()
-+ * or nothing if the unqueue is done as part of the wake process and the unqueue
-+ * state is implicit in the state of woken task (see futex_wait_requeue_pi() for
-+ * an example).
-+ */
-+static inline void queue_me(struct futex_q *q, struct futex_hash_bucket *hb)
-+ __releases(&hb->lock)
-+{
-+ __queue_me(q, hb);
-+ spin_unlock(&hb->lock);
-+}
-+
-+/**
-+ * unqueue_me() - Remove the futex_q from its futex_hash_bucket
-+ * @q: The futex_q to unqueue
-+ *
-+ * The q->lock_ptr must not be held by the caller. A call to unqueue_me() must
-+ * be paired with exactly one earlier call to queue_me().
-+ *
-+ * Return:
-+ * - 1 - if the futex_q was still queued (and we removed unqueued it);
-+ * - 0 - if the futex_q was already removed by the waking thread
-+ */
-+static int unqueue_me(struct futex_q *q)
-+{
-+ spinlock_t *lock_ptr;
-+ int ret = 0;
-+
-+ /* In the common case we don't take the spinlock, which is nice. */
-+retry:
-+ /*
-+ * q->lock_ptr can change between this read and the following spin_lock.
-+ * Use READ_ONCE to forbid the compiler from reloading q->lock_ptr and
-+ * optimizing lock_ptr out of the logic below.
-+ */
-+ lock_ptr = READ_ONCE(q->lock_ptr);
-+ if (lock_ptr != NULL) {
-+ spin_lock(lock_ptr);
-+ /*
-+ * q->lock_ptr can change between reading it and
-+ * spin_lock(), causing us to take the wrong lock. This
-+ * corrects the race condition.
-+ *
-+ * Reasoning goes like this: if we have the wrong lock,
-+ * q->lock_ptr must have changed (maybe several times)
-+ * between reading it and the spin_lock(). It can
-+ * change again after the spin_lock() but only if it was
-+ * already changed before the spin_lock(). It cannot,
-+ * however, change back to the original value. Therefore
-+ * we can detect whether we acquired the correct lock.
-+ */
-+ if (unlikely(lock_ptr != q->lock_ptr)) {
-+ spin_unlock(lock_ptr);
-+ goto retry;
-+ }
-+ __unqueue_futex(q);
-+
-+ BUG_ON(q->pi_state);
-+
-+ spin_unlock(lock_ptr);
-+ ret = 1;
-+ }
-+
-+ return ret;
-+}
-+
-+/*
-+ * PI futexes can not be requeued and must remove themself from the
-+ * hash bucket. The hash bucket lock (i.e. lock_ptr) is held on entry
-+ * and dropped here.
-+ */
-+static void unqueue_me_pi(struct futex_q *q)
-+ __releases(q->lock_ptr)
-+{
-+ __unqueue_futex(q);
-+
-+ BUG_ON(!q->pi_state);
-+ put_pi_state(q->pi_state);
-+ q->pi_state = NULL;
-+
-+ spin_unlock(q->lock_ptr);
-+}
-+
-+static int fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q,
-+ struct task_struct *argowner)
-+{
-+ struct futex_pi_state *pi_state = q->pi_state;
-+ u32 uval, curval, newval;
-+ struct task_struct *oldowner, *newowner;
-+ u32 newtid;
-+ int ret, err = 0;
-+
-+ lockdep_assert_held(q->lock_ptr);
-+
-+ raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock);
-+
-+ oldowner = pi_state->owner;
-+
-+ /*
-+ * We are here because either:
-+ *
-+ * - we stole the lock and pi_state->owner needs updating to reflect
-+ * that (@argowner == current),
-+ *
-+ * or:
-+ *
-+ * - someone stole our lock and we need to fix things to point to the
-+ * new owner (@argowner == NULL).
-+ *
-+ * Either way, we have to replace the TID in the user space variable.
-+ * This must be atomic as we have to preserve the owner died bit here.
-+ *
-+ * Note: We write the user space value _before_ changing the pi_state
-+ * because we can fault here. Imagine swapped out pages or a fork
-+ * that marked all the anonymous memory readonly for cow.
-+ *
-+ * Modifying pi_state _before_ the user space value would leave the
-+ * pi_state in an inconsistent state when we fault here, because we
-+ * need to drop the locks to handle the fault. This might be observed
-+ * in the PID check in lookup_pi_state.
-+ */
-+retry:
-+ if (!argowner) {
-+ if (oldowner != current) {
-+ /*
-+ * We raced against a concurrent self; things are
-+ * already fixed up. Nothing to do.
-+ */
-+ ret = 0;
-+ goto out_unlock;
-+ }
-+
-+ if (__rt_mutex_futex_trylock(&pi_state->pi_mutex)) {
-+ /* We got the lock after all, nothing to fix. */
-+ ret = 0;
-+ goto out_unlock;
-+ }
-+
-+ /*
-+ * Since we just failed the trylock; there must be an owner.
-+ */
-+ newowner = rt_mutex_owner(&pi_state->pi_mutex);
-+ BUG_ON(!newowner);
-+ } else {
-+ WARN_ON_ONCE(argowner != current);
-+ if (oldowner == current) {
-+ /*
-+ * We raced against a concurrent self; things are
-+ * already fixed up. Nothing to do.
-+ */
-+ ret = 0;
-+ goto out_unlock;
-+ }
-+ newowner = argowner;
-+ }
-+
-+ newtid = task_pid_vnr(newowner) | FUTEX_WAITERS;
-+ /* Owner died? */
-+ if (!pi_state->owner)
-+ newtid |= FUTEX_OWNER_DIED;
-+
-+ err = get_futex_value_locked(&uval, uaddr);
-+ if (err)
-+ goto handle_err;
-+
-+ for (;;) {
-+ newval = (uval & FUTEX_OWNER_DIED) | newtid;
-+
-+ err = cmpxchg_futex_value_locked(&curval, uaddr, uval, newval);
-+ if (err)
-+ goto handle_err;
-+
-+ if (curval == uval)
++ case 'h':
++ usage(basename(argv[0]));
++ exit(0);
++ case 'v':
++ log_verbosity(atoi(optarg));
+ break;
-+ uval = curval;
-+ }
-+
-+ /*
-+ * We fixed up user space. Now we need to fix the pi_state
-+ * itself.
-+ */
-+ if (pi_state->owner != NULL) {
-+ raw_spin_lock(&pi_state->owner->pi_lock);
-+ WARN_ON(list_empty(&pi_state->list));
-+ list_del_init(&pi_state->list);
-+ raw_spin_unlock(&pi_state->owner->pi_lock);
-+ }
-+
-+ pi_state->owner = newowner;
-+
-+ raw_spin_lock(&newowner->pi_lock);
-+ WARN_ON(!list_empty(&pi_state->list));
-+ list_add(&pi_state->list, &newowner->pi_state_list);
-+ raw_spin_unlock(&newowner->pi_lock);
-+ raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock);
-+
-+ return 0;
-+
-+ /*
-+ * In order to reschedule or handle a page fault, we need to drop the
-+ * locks here. In the case of a fault, this gives the other task
-+ * (either the highest priority waiter itself or the task which stole
-+ * the rtmutex) the chance to try the fixup of the pi_state. So once we
-+ * are back from handling the fault we need to check the pi_state after
-+ * reacquiring the locks and before trying to do another fixup. When
-+ * the fixup has been done already we simply return.
-+ *
-+ * Note: we hold both hb->lock and pi_mutex->wait_lock. We can safely
-+ * drop hb->lock since the caller owns the hb -> futex_q relation.
-+ * Dropping the pi_mutex->wait_lock requires the state revalidate.
-+ */
-+handle_err:
-+ raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock);
-+ spin_unlock(q->lock_ptr);
-+
-+ switch (err) {
-+ case -EFAULT:
-+ ret = fault_in_user_writeable(uaddr);
-+ break;
-+
-+ case -EAGAIN:
-+ cond_resched();
-+ ret = 0;
-+ break;
-+
-+ default:
-+ WARN_ON_ONCE(1);
-+ ret = err;
-+ break;
-+ }
-+
-+ spin_lock(q->lock_ptr);
-+ raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock);
-+
-+ /*
-+ * Check if someone else fixed it for us:
-+ */
-+ if (pi_state->owner != oldowner) {
-+ ret = 0;
-+ goto out_unlock;
-+ }
-+
-+ if (ret)
-+ goto out_unlock;
-+
-+ goto retry;
-+
-+out_unlock:
-+ raw_spin_unlock_irq(&pi_state->pi_mutex.wait_lock);
-+ return ret;
-+}
-+
-+static long futex_wait_restart(struct restart_block *restart);
-+
-+/**
-+ * fixup_owner() - Post lock pi_state and corner case management
-+ * @uaddr: user address of the futex
-+ * @q: futex_q (contains pi_state and access to the rt_mutex)
-+ * @locked: if the attempt to take the rt_mutex succeeded (1) or not (0)
-+ *
-+ * After attempting to lock an rt_mutex, this function is called to cleanup
-+ * the pi_state owner as well as handle race conditions that may allow us to
-+ * acquire the lock. Must be called with the hb lock held.
-+ *
-+ * Return:
-+ * - 1 - success, lock taken;
-+ * - 0 - success, lock not taken;
-+ * - <0 - on error (-EFAULT)
-+ */
-+static int fixup_owner(u32 __user *uaddr, struct futex_q *q, int locked)
-+{
-+ int ret = 0;
-+
-+ if (locked) {
-+ /*
-+ * Got the lock. We might not be the anticipated owner if we
-+ * did a lock-steal - fix up the PI-state in that case:
-+ *
-+ * Speculative pi_state->owner read (we don't hold wait_lock);
-+ * since we own the lock pi_state->owner == current is the
-+ * stable state, anything else needs more attention.
-+ */
-+ if (q->pi_state->owner != current)
-+ ret = fixup_pi_state_owner(uaddr, q, current);
-+ return ret ? ret : locked;
-+ }
-+
-+ /*
-+ * If we didn't get the lock; check if anybody stole it from us. In
-+ * that case, we need to fix up the uval to point to them instead of
-+ * us, otherwise bad things happen. [10]
-+ *
-+ * Another speculative read; pi_state->owner == current is unstable
-+ * but needs our attention.
-+ */
-+ if (q->pi_state->owner == current) {
-+ ret = fixup_pi_state_owner(uaddr, q, NULL);
-+ return ret;
-+ }
-+
-+ /*
-+ * Paranoia check. If we did not take the lock, then we should not be
-+ * the owner of the rt_mutex.
-+ */
-+ if (rt_mutex_owner(&q->pi_state->pi_mutex) == current) {
-+ printk(KERN_ERR "fixup_owner: ret = %d pi-mutex: %p "
-+ "pi-state %p\n", ret,
-+ q->pi_state->pi_mutex.owner,
-+ q->pi_state->owner);
-+ }
-+
-+ return ret;
-+}
-+
-+/**
-+ * futex_wait_queue_me() - queue_me() and wait for wakeup, timeout, or signal
-+ * @hb: the futex hash bucket, must be locked by the caller
-+ * @q: the futex_q to queue up on
-+ * @timeout: the prepared hrtimer_sleeper, or null for no timeout
-+ */
-+static void futex_wait_queue_me(struct futex_hash_bucket *hb, struct futex_q *q,
-+ struct hrtimer_sleeper *timeout)
-+{
-+ /*
-+ * The task state is guaranteed to be set before another task can
-+ * wake it. set_current_state() is implemented using smp_store_mb() and
-+ * queue_me() calls spin_unlock() upon completion, both serializing
-+ * access to the hash list and forcing another memory barrier.
-+ */
-+ set_current_state(TASK_INTERRUPTIBLE);
-+ queue_me(q, hb);
-+
-+ /* Arm the timer */
-+ if (timeout)
-+ hrtimer_sleeper_start_expires(timeout, HRTIMER_MODE_ABS);
-+
-+ /*
-+ * If we have been removed from the hash list, then another task
-+ * has tried to wake us, and we can skip the call to schedule().
-+ */
-+ if (likely(!plist_node_empty(&q->list))) {
-+ /*
-+ * If the timer has already expired, current will already be
-+ * flagged for rescheduling. Only call schedule if there
-+ * is no timeout, or if it has yet to expire.
-+ */
-+ if (!timeout || timeout->task)
-+ freezable_schedule();
-+ }
-+ __set_current_state(TASK_RUNNING);
-+}
-+
-+/**
-+ * futex_wait_setup() - Prepare to wait on a futex
-+ * @uaddr: the futex userspace address
-+ * @val: the expected value
-+ * @flags: futex flags (FLAGS_SHARED, etc.)
-+ * @q: the associated futex_q
-+ * @hb: storage for hash_bucket pointer to be returned to caller
-+ *
-+ * Setup the futex_q and locate the hash_bucket. Get the futex value and
-+ * compare it with the expected value. Handle atomic faults internally.
-+ * Return with the hb lock held and a q.key reference on success, and unlocked
-+ * with no q.key reference on failure.
-+ *
-+ * Return:
-+ * - 0 - uaddr contains val and hb has been locked;
-+ * - <1 - -EFAULT or -EWOULDBLOCK (uaddr does not contain val) and hb is unlocked
-+ */
-+static int futex_wait_setup(u32 __user *uaddr, u32 val, unsigned int flags,
-+ struct futex_q *q, struct futex_hash_bucket **hb)
-+{
-+ u32 uval;
-+ int ret;
-+
-+ /*
-+ * Access the page AFTER the hash-bucket is locked.
-+ * Order is important:
-+ *
-+ * Userspace waiter: val = var; if (cond(val)) futex_wait(&var, val);
-+ * Userspace waker: if (cond(var)) { var = new; futex_wake(&var); }
-+ *
-+ * The basic logical guarantee of a futex is that it blocks ONLY
-+ * if cond(var) is known to be true at the time of blocking, for
-+ * any cond. If we locked the hash-bucket after testing *uaddr, that
-+ * would open a race condition where we could block indefinitely with
-+ * cond(var) false, which would violate the guarantee.
-+ *
-+ * On the other hand, we insert q and release the hash-bucket only
-+ * after testing *uaddr. This guarantees that futex_wait() will NOT
-+ * absorb a wakeup if *uaddr does not match the desired values
-+ * while the syscall executes.
-+ */
-+retry:
-+ ret = get_futex_key(uaddr, flags & FLAGS_SHARED, &q->key, FUTEX_READ);
-+ if (unlikely(ret != 0))
-+ return ret;
-+
-+retry_private:
-+ *hb = queue_lock(q);
-+
-+ ret = get_futex_value_locked(&uval, uaddr);
-+
-+ if (ret) {
-+ queue_unlock(*hb);
-+
-+ ret = get_user(uval, uaddr);
-+ if (ret)
-+ return ret;
-+
-+ if (!(flags & FLAGS_SHARED))
-+ goto retry_private;
-+
-+ goto retry;
-+ }
-+
-+ if (uval != val) {
-+ queue_unlock(*hb);
-+ ret = -EWOULDBLOCK;
-+ }
-+
-+ return ret;
-+}
-+
-+static int futex_wait(u32 __user *uaddr, unsigned int flags, u32 val,
-+ ktime_t *abs_time, u32 bitset)
-+{
-+ struct hrtimer_sleeper timeout, *to;
-+ struct restart_block *restart;
-+ struct futex_hash_bucket *hb;
-+ struct futex_q q = futex_q_init;
-+ int ret;
-+
-+ if (!bitset)
-+ return -EINVAL;
-+ q.bitset = bitset;
-+
-+ to = futex_setup_timer(abs_time, &timeout, flags,
-+ current->timer_slack_ns);
-+retry:
-+ /*
-+ * Prepare to wait on uaddr. On success, holds hb lock and increments
-+ * q.key refs.
-+ */
-+ ret = futex_wait_setup(uaddr, val, flags, &q, &hb);
-+ if (ret)
-+ goto out;
-+
-+ /* queue_me and wait for wakeup, timeout, or a signal. */
-+ futex_wait_queue_me(hb, &q, to);
-+
-+ /* If we were woken (and unqueued), we succeeded, whatever. */
-+ ret = 0;
-+ /* unqueue_me() drops q.key ref */
-+ if (!unqueue_me(&q))
-+ goto out;
-+ ret = -ETIMEDOUT;
-+ if (to && !to->task)
-+ goto out;
-+
-+ /*
-+ * We expect signal_pending(current), but we might be the
-+ * victim of a spurious wakeup as well.
-+ */
-+ if (!signal_pending(current))
-+ goto retry;
-+
-+ ret = -ERESTARTSYS;
-+ if (!abs_time)
-+ goto out;
-+
-+ restart = &current->restart_block;
-+ restart->fn = futex_wait_restart;
-+ restart->futex.uaddr = uaddr;
-+ restart->futex.val = val;
-+ restart->futex.time = *abs_time;
-+ restart->futex.bitset = bitset;
-+ restart->futex.flags = flags | FLAGS_HAS_TIMEOUT;
-+
-+ ret = -ERESTART_RESTARTBLOCK;
-+
-+out:
-+ if (to) {
-+ hrtimer_cancel(&to->timer);
-+ destroy_hrtimer_on_stack(&to->timer);
-+ }
-+ return ret;
-+}
-+
-+
-+static long futex_wait_restart(struct restart_block *restart)
-+{
-+ u32 __user *uaddr = restart->futex.uaddr;
-+ ktime_t t, *tp = NULL;
-+
-+ if (restart->futex.flags & FLAGS_HAS_TIMEOUT) {
-+ t = restart->futex.time;
-+ tp = &t;
-+ }
-+ restart->fn = do_no_restart_syscall;
-+
-+ return (long)futex_wait(uaddr, restart->futex.flags,
-+ restart->futex.val, tp, restart->futex.bitset);
-+}
-+
-+
-+/*
-+ * Userspace tried a 0 -> TID atomic transition of the futex value
-+ * and failed. The kernel side here does the whole locking operation:
-+ * if there are waiters then it will block as a consequence of relying
-+ * on rt-mutexes, it does PI, etc. (Due to races the kernel might see
-+ * a 0 value of the futex too.).
-+ *
-+ * Also serves as futex trylock_pi()'ing, and due semantics.
-+ */
-+static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
-+ ktime_t *time, int trylock)
-+{
-+ struct hrtimer_sleeper timeout, *to;
-+ struct futex_pi_state *pi_state = NULL;
-+ struct task_struct *exiting = NULL;
-+ struct rt_mutex_waiter rt_waiter;
-+ struct futex_hash_bucket *hb;
-+ struct futex_q q = futex_q_init;
-+ int res, ret;
-+
-+ if (!IS_ENABLED(CONFIG_FUTEX_PI))
-+ return -ENOSYS;
-+
-+ if (refill_pi_state_cache())
-+ return -ENOMEM;
-+
-+ to = futex_setup_timer(time, &timeout, FLAGS_CLOCKRT, 0);
-+
-+retry:
-+ ret = get_futex_key(uaddr, flags & FLAGS_SHARED, &q.key, FUTEX_WRITE);
-+ if (unlikely(ret != 0))
-+ goto out;
-+
-+retry_private:
-+ hb = queue_lock(&q);
-+
-+ ret = futex_lock_pi_atomic(uaddr, hb, &q.key, &q.pi_state, current,
-+ &exiting, 0);
-+ if (unlikely(ret)) {
-+ /*
-+ * Atomic work succeeded and we got the lock,
-+ * or failed. Either way, we do _not_ block.
-+ */
-+ switch (ret) {
-+ case 1:
-+ /* We got the lock. */
-+ ret = 0;
-+ goto out_unlock_put_key;
-+ case -EFAULT:
-+ goto uaddr_faulted;
-+ case -EBUSY:
-+ case -EAGAIN:
-+ /*
-+ * Two reasons for this:
-+ * - EBUSY: Task is exiting and we just wait for the
-+ * exit to complete.
-+ * - EAGAIN: The user space value changed.
-+ */
-+ queue_unlock(hb);
-+ /*
-+ * Handle the case where the owner is in the middle of
-+ * exiting. Wait for the exit to complete otherwise
-+ * this task might loop forever, aka. live lock.
-+ */
-+ wait_for_owner_exiting(ret, exiting);
-+ cond_resched();
-+ goto retry;
+ default:
-+ goto out_unlock_put_key;
++ usage(basename(argv[0]));
++ exit(1);
+ }
+ }
+
-+ WARN_ON(!q.pi_state);
-+
-+ /*
-+ * Only actually queue now that the atomic ops are done:
-+ */
-+ __queue_me(&q, hb);
-+
-+ if (trylock) {
-+ ret = rt_mutex_futex_trylock(&q.pi_state->pi_mutex);
-+ /* Fixup the trylock return value: */
-+ ret = ret ? 0 : -EWOULDBLOCK;
-+ goto no_block;
-+ }
-+
-+ rt_mutex_init_waiter(&rt_waiter);
-+
-+ /*
-+ * On PREEMPT_RT_FULL, when hb->lock becomes an rt_mutex, we must not
-+ * hold it while doing rt_mutex_start_proxy(), because then it will
-+ * include hb->lock in the blocking chain, even through we'll not in
-+ * fact hold it while blocking. This will lead it to report -EDEADLK
-+ * and BUG when futex_unlock_pi() interleaves with this.
-+ *
-+ * Therefore acquire wait_lock while holding hb->lock, but drop the
-+ * latter before calling __rt_mutex_start_proxy_lock(). This
-+ * interleaves with futex_unlock_pi() -- which does a similar lock
-+ * handoff -- such that the latter can observe the futex_q::pi_state
-+ * before __rt_mutex_start_proxy_lock() is done.
-+ */
-+ raw_spin_lock_irq(&q.pi_state->pi_mutex.wait_lock);
-+ spin_unlock(q.lock_ptr);
-+ /*
-+ * __rt_mutex_start_proxy_lock() unconditionally enqueues the @rt_waiter
-+ * such that futex_unlock_pi() is guaranteed to observe the waiter when
-+ * it sees the futex_q::pi_state.
-+ */
-+ ret = __rt_mutex_start_proxy_lock(&q.pi_state->pi_mutex, &rt_waiter, current);
-+ raw_spin_unlock_irq(&q.pi_state->pi_mutex.wait_lock);
-+
-+ if (ret) {
-+ if (ret == 1)
-+ ret = 0;
-+ goto cleanup;
-+ }
-+
-+ if (unlikely(to))
-+ hrtimer_sleeper_start_expires(to, HRTIMER_MODE_ABS);
-+
-+ ret = rt_mutex_wait_proxy_lock(&q.pi_state->pi_mutex, to, &rt_waiter);
-+
-+cleanup:
-+ spin_lock(q.lock_ptr);
-+ /*
-+ * If we failed to acquire the lock (deadlock/signal/timeout), we must
-+ * first acquire the hb->lock before removing the lock from the
-+ * rt_mutex waitqueue, such that we can keep the hb and rt_mutex wait
-+ * lists consistent.
-+ *
-+ * In particular; it is important that futex_unlock_pi() can not
-+ * observe this inconsistency.
-+ */
-+ if (ret && !rt_mutex_cleanup_proxy_lock(&q.pi_state->pi_mutex, &rt_waiter))
-+ ret = 0;
-+
-+no_block:
-+ /*
-+ * Fixup the pi_state owner and possibly acquire the lock if we
-+ * haven't already.
-+ */
-+ res = fixup_owner(uaddr, &q, !ret);
-+ /*
-+ * If fixup_owner() returned an error, proprogate that. If it acquired
-+ * the lock, clear our -ETIMEDOUT or -EINTR.
-+ */
-+ if (res)
-+ ret = (res < 0) ? res : 0;
-+
-+ /*
-+ * If fixup_owner() faulted and was unable to handle the fault, unlock
-+ * it and return the fault to userspace.
-+ */
-+ if (ret && (rt_mutex_owner(&q.pi_state->pi_mutex) == current)) {
-+ pi_state = q.pi_state;
-+ get_pi_state(pi_state);
-+ }
-+
-+ /* Unqueue and drop the lock */
-+ unqueue_me_pi(&q);
-+
-+ if (pi_state) {
-+ rt_mutex_futex_unlock(&pi_state->pi_mutex);
-+ put_pi_state(pi_state);
-+ }
-+
-+ goto out;
-+
-+out_unlock_put_key:
-+ queue_unlock(hb);
++ ksft_print_header();
++ ksft_set_plan(2);
++ ksft_print_msg("%s: Test FUTEX2_WAITV\n",
++ basename(argv[0]));
+
-+out:
-+ if (to) {
-+ hrtimer_cancel(&to->timer);
-+ destroy_hrtimer_on_stack(&to->timer);
++ //info("Calling private futex2_wait on f1: %u @ %p with val=%u\n", *f1, f1, *f1);
++
++ for (i = 0; i < NR_FUTEXES; i++) {
++ waitv[i].uaddr = &futexes[i];
++ waitv[i].flags = FUTEX_32;
++ waitv[i].val = 0;
+ }
-+ return ret != -EINTR ? ret : -ERESTARTNOINTR;
-+
-+uaddr_faulted:
-+ queue_unlock(hb);
-+
-+ ret = fault_in_user_writeable(uaddr);
-+ if (ret)
-+ goto out;
-+
-+ if (!(flags & FLAGS_SHARED))
-+ goto retry_private;
+
-+ goto retry;
-+}
-+
-+/*
-+ * Userspace attempted a TID -> 0 atomic transition, and failed.
-+ * This is the in-kernel slowpath: we look up the PI state (if any),
-+ * and do the rt-mutex unlock.
-+ */
-+static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags)
-+{
-+ u32 curval, uval, vpid = task_pid_vnr(current);
-+ union futex_key key = FUTEX_KEY_INIT;
-+ struct futex_hash_bucket *hb;
-+ struct futex_q *top_waiter;
-+ int ret;
-+
-+ if (!IS_ENABLED(CONFIG_FUTEX_PI))
-+ return -ENOSYS;
-+
-+retry:
-+ if (get_user(uval, uaddr))
-+ return -EFAULT;
-+ /*
-+ * We release only a lock we actually own:
-+ */
-+ if ((uval & FUTEX_TID_MASK) != vpid)
-+ return -EPERM;
-+
-+ ret = get_futex_key(uaddr, flags & FLAGS_SHARED, &key, FUTEX_WRITE);
-+ if (ret)
-+ return ret;
-+
-+ hb = hash_futex(&key);
-+ spin_lock(&hb->lock);
-+
-+ /*
-+ * Check waiters first. We do not trust user space values at
-+ * all and we at least want to know if user space fiddled
-+ * with the futex value instead of blindly unlocking.
-+ */
-+ top_waiter = futex_top_waiter(hb, &key);
-+ if (top_waiter) {
-+ struct futex_pi_state *pi_state = top_waiter->pi_state;
-+
-+ ret = -EINVAL;
-+ if (!pi_state)
-+ goto out_unlock;
-+
-+ /*
-+ * If current does not own the pi_state then the futex is
-+ * inconsistent and user space fiddled with the futex value.
-+ */
-+ if (pi_state->owner != current)
-+ goto out_unlock;
-+
-+ get_pi_state(pi_state);
-+ /*
-+ * By taking wait_lock while still holding hb->lock, we ensure
-+ * there is no point where we hold neither; and therefore
-+ * wake_futex_pi() must observe a state consistent with what we
-+ * observed.
-+ *
-+ * In particular; this forces __rt_mutex_start_proxy() to
-+ * complete such that we're guaranteed to observe the
-+ * rt_waiter. Also see the WARN in wake_futex_pi().
-+ */
-+ raw_spin_lock_irq(&pi_state->pi_mutex.wait_lock);
-+ spin_unlock(&hb->lock);
-+
-+ /* drops pi_state->pi_mutex.wait_lock */
-+ ret = wake_futex_pi(uaddr, uval, pi_state);
++ if (pthread_create(&waiter, NULL, waiterfn, NULL))
++ error("pthread_create failed\n", errno);
+
-+ put_pi_state(pi_state);
++ usleep(WAKE_WAIT_US);
+
-+ /*
-+ * Success, we're done! No tricky corner cases.
-+ */
-+ if (!ret)
-+ goto out_putkey;
-+ /*
-+ * The atomic access to the futex value generated a
-+ * pagefault, so retry the user-access and the wakeup:
-+ */
-+ if (ret == -EFAULT)
-+ goto pi_faulted;
-+ /*
-+ * A unconditional UNLOCK_PI op raced against a waiter
-+ * setting the FUTEX_WAITERS bit. Try again.
-+ */
-+ if (ret == -EAGAIN)
-+ goto pi_retry;
-+ /*
-+ * wake_futex_pi has detected invalid state. Tell user
-+ * space.
-+ */
-+ goto out_putkey;
++ // info("Calling private futex2_wake on f1: %u @ %p with val=%u\n", *f1, f1, *f1);
++ res = futex2_wake(waitv[NR_FUTEXES - 1].uaddr, 1, FUTEX_32);
++ if (res != 1) {
++ ksft_test_result_fail("futex2_wake private returned: %d %s\n",
++ res ? errno : res,
++ res ? strerror(errno) : "");
++ ret = RET_FAIL;
++ } else {
++ ksft_test_result_pass("futex2_waitv private succeeds\n");
+ }
+
-+ /*
-+ * We have no kernel internal state, i.e. no waiters in the
-+ * kernel. Waiters which are about to queue themselves are stuck
-+ * on hb->lock. So we can safely ignore them. We do neither
-+ * preserve the WAITERS bit not the OWNER_DIED one. We are the
-+ * owner.
-+ */
-+ if ((ret = cmpxchg_futex_value_locked(&curval, uaddr, uval, 0))) {
-+ spin_unlock(&hb->lock);
-+ switch (ret) {
-+ case -EFAULT:
-+ goto pi_faulted;
-+
-+ case -EAGAIN:
-+ goto pi_retry;
-+
-+ default:
-+ WARN_ON_ONCE(1);
-+ goto out_putkey;
++ for (i = 0; i < NR_FUTEXES; i++) {
++ int shm_id = shmget(IPC_PRIVATE, 4096, IPC_CREAT | 0666);
++ if (shm_id < 0) {
++ perror("shmget");
++ exit(1);
+ }
-+ }
-+
-+ /*
-+ * If uval has changed, let user space handle it.
-+ */
-+ ret = (curval == uval) ? 0 : -EAGAIN;
-+
-+out_unlock:
-+ spin_unlock(&hb->lock);
-+out_putkey:
-+ return ret;
-+
-+pi_retry:
-+ cond_resched();
-+ goto retry;
-+
-+pi_faulted:
-+
-+ ret = fault_in_user_writeable(uaddr);
-+ if (!ret)
-+ goto retry;
-+
-+ return ret;
-+}
-+
-+/**
-+ * handle_early_requeue_pi_wakeup() - Detect early wakeup on the initial futex
-+ * @hb: the hash_bucket futex_q was original enqueued on
-+ * @q: the futex_q woken while waiting to be requeued
-+ * @key2: the futex_key of the requeue target futex
-+ * @timeout: the timeout associated with the wait (NULL if none)
-+ *
-+ * Detect if the task was woken on the initial futex as opposed to the requeue
-+ * target futex. If so, determine if it was a timeout or a signal that caused
-+ * the wakeup and return the appropriate error code to the caller. Must be
-+ * called with the hb lock held.
-+ *
-+ * Return:
-+ * - 0 = no early wakeup detected;
-+ * - <0 = -ETIMEDOUT or -ERESTARTNOINTR
-+ */
-+static inline
-+int handle_early_requeue_pi_wakeup(struct futex_hash_bucket *hb,
-+ struct futex_q *q, union futex_key *key2,
-+ struct hrtimer_sleeper *timeout)
-+{
-+ int ret = 0;
-+
-+ /*
-+ * With the hb lock held, we avoid races while we process the wakeup.
-+ * We only need to hold hb (and not hb2) to ensure atomicity as the
-+ * wakeup code can't change q.key from uaddr to uaddr2 if we hold hb.
-+ * It can't be requeued from uaddr2 to something else since we don't
-+ * support a PI aware source futex for requeue.
-+ */
-+ if (!match_futex(&q->key, key2)) {
-+ WARN_ON(q->lock_ptr && (&hb->lock != q->lock_ptr));
-+ /*
-+ * We were woken prior to requeue by a timeout or a signal.
-+ * Unqueue the futex_q and determine which it was.
-+ */
-+ plist_del(&q->list, &hb->chain);
-+ hb_waiters_dec(hb);
-+
-+ /* Handle spurious wakeups gracefully */
-+ ret = -EWOULDBLOCK;
-+ if (timeout && !timeout->task)
-+ ret = -ETIMEDOUT;
-+ else if (signal_pending(current))
-+ ret = -ERESTARTNOINTR;
-+ }
-+ return ret;
-+}
-+
-+/**
-+ * futex_wait_requeue_pi() - Wait on uaddr and take uaddr2
-+ * @uaddr: the futex we initially wait on (non-pi)
-+ * @flags: futex flags (FLAGS_SHARED, FLAGS_CLOCKRT, etc.), they must be
-+ * the same type, no requeueing from private to shared, etc.
-+ * @val: the expected value of uaddr
-+ * @abs_time: absolute timeout
-+ * @bitset: 32 bit wakeup bitset set by userspace, defaults to all
-+ * @uaddr2: the pi futex we will take prior to returning to user-space
-+ *
-+ * The caller will wait on uaddr and will be requeued by futex_requeue() to
-+ * uaddr2 which must be PI aware and unique from uaddr. Normal wakeup will wake
-+ * on uaddr2 and complete the acquisition of the rt_mutex prior to returning to
-+ * userspace. This ensures the rt_mutex maintains an owner when it has waiters;
-+ * without one, the pi logic would not know which task to boost/deboost, if
-+ * there was a need to.
-+ *
-+ * We call schedule in futex_wait_queue_me() when we enqueue and return there
-+ * via the following--
-+ * 1) wakeup on uaddr2 after an atomic lock acquisition by futex_requeue()
-+ * 2) wakeup on uaddr2 after a requeue
-+ * 3) signal
-+ * 4) timeout
-+ *
-+ * If 3, cleanup and return -ERESTARTNOINTR.
-+ *
-+ * If 2, we may then block on trying to take the rt_mutex and return via:
-+ * 5) successful lock
-+ * 6) signal
-+ * 7) timeout
-+ * 8) other lock acquisition failure
-+ *
-+ * If 6, return -EWOULDBLOCK (restarting the syscall would do the same).
-+ *
-+ * If 4 or 7, we cleanup and return with -ETIMEDOUT.
-+ *
-+ * Return:
-+ * - 0 - On success;
-+ * - <0 - On error
-+ */
-+static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
-+ u32 val, ktime_t *abs_time, u32 bitset,
-+ u32 __user *uaddr2)
-+{
-+ struct hrtimer_sleeper timeout, *to;
-+ struct futex_pi_state *pi_state = NULL;
-+ struct rt_mutex_waiter rt_waiter;
-+ struct futex_hash_bucket *hb;
-+ union futex_key key2 = FUTEX_KEY_INIT;
-+ struct futex_q q = futex_q_init;
-+ int res, ret;
-+
-+ if (!IS_ENABLED(CONFIG_FUTEX_PI))
-+ return -ENOSYS;
-+
-+ if (uaddr == uaddr2)
-+ return -EINVAL;
-+
-+ if (!bitset)
-+ return -EINVAL;
+
-+ to = futex_setup_timer(abs_time, &timeout, flags,
-+ current->timer_slack_ns);
-+
-+ /*
-+ * The waiter is allocated on our stack, manipulated by the requeue
-+ * code while we sleep on uaddr.
-+ */
-+ rt_mutex_init_waiter(&rt_waiter);
-+
-+ ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2, FUTEX_WRITE);
-+ if (unlikely(ret != 0))
-+ goto out;
-+
-+ q.bitset = bitset;
-+ q.rt_waiter = &rt_waiter;
-+ q.requeue_pi_key = &key2;
-+
-+ /*
-+ * Prepare to wait on uaddr. On success, increments q.key (key1) ref
-+ * count.
-+ */
-+ ret = futex_wait_setup(uaddr, val, flags, &q, &hb);
-+ if (ret)
-+ goto out;
++ unsigned int *shared_data = shmat(shm_id, NULL, 0);
++ *shared_data = 0;
+
-+ /*
-+ * The check above which compares uaddrs is not sufficient for
-+ * shared futexes. We need to compare the keys:
-+ */
-+ if (match_futex(&q.key, &key2)) {
-+ queue_unlock(hb);
-+ ret = -EINVAL;
-+ goto out;
++ waitv[i].uaddr = shared_data;
++ waitv[i].flags = FUTEX_32 | FUTEX_SHARED_FLAG;
++ waitv[i].val = 0;
+ }
+
-+ /* Queue the futex_q, drop the hb lock, wait for wakeup. */
-+ futex_wait_queue_me(hb, &q, to);
++ //info("Calling shared futex2_wait on f1: %u @ %p with val=%u\n", *f1, f1, *f1);
+
-+ spin_lock(&hb->lock);
-+ ret = handle_early_requeue_pi_wakeup(hb, &q, &key2, to);
-+ spin_unlock(&hb->lock);
-+ if (ret)
-+ goto out;
++ if (pthread_create(&waiter, NULL, waiterfn, NULL))
++ error("pthread_create failed\n", errno);
+
-+ /*
-+ * In order for us to be here, we know our q.key == key2, and since
-+ * we took the hb->lock above, we also know that futex_requeue() has
-+ * completed and we no longer have to concern ourselves with a wakeup
-+ * race with the atomic proxy lock acquisition by the requeue code. The
-+ * futex_requeue dropped our key1 reference and incremented our key2
-+ * reference count.
-+ */
++ usleep(WAKE_WAIT_US);
+
-+ /* Check if the requeue code acquired the second futex for us. */
-+ if (!q.rt_waiter) {
-+ /*
-+ * Got the lock. We might not be the anticipated owner if we
-+ * did a lock-steal - fix up the PI-state in that case.
-+ */
-+ if (q.pi_state && (q.pi_state->owner != current)) {
-+ spin_lock(q.lock_ptr);
-+ ret = fixup_pi_state_owner(uaddr2, &q, current);
-+ if (ret && rt_mutex_owner(&q.pi_state->pi_mutex) == current) {
-+ pi_state = q.pi_state;
-+ get_pi_state(pi_state);
-+ }
-+ /*
-+ * Drop the reference to the pi state which
-+ * the requeue_pi() code acquired for us.
-+ */
-+ put_pi_state(q.pi_state);
-+ spin_unlock(q.lock_ptr);
-+ }
++ // info("Calling shared futex2_wake on f1: %u @ %p with val=%u\n", *f1, f1, *f1);
++ res = futex2_wake(waitv[NR_FUTEXES - 1].uaddr, 1, FUTEX_32 | FUTEX_SHARED_FLAG);
++ if (res != 1) {
++ ksft_test_result_fail("futex2_wake shared returned: %d %s\n",
++ res ? errno : res,
++ res ? strerror(errno) : "");
++ ret = RET_FAIL;
+ } else {
-+ struct rt_mutex *pi_mutex;
-+
-+ /*
-+ * We have been woken up by futex_unlock_pi(), a timeout, or a
-+ * signal. futex_unlock_pi() will not destroy the lock_ptr nor
-+ * the pi_state.
-+ */
-+ WARN_ON(!q.pi_state);
-+ pi_mutex = &q.pi_state->pi_mutex;
-+ ret = rt_mutex_wait_proxy_lock(pi_mutex, to, &rt_waiter);
-+
-+ spin_lock(q.lock_ptr);
-+ if (ret && !rt_mutex_cleanup_proxy_lock(pi_mutex, &rt_waiter))
-+ ret = 0;
-+
-+ debug_rt_mutex_free_waiter(&rt_waiter);
-+ /*
-+ * Fixup the pi_state owner and possibly acquire the lock if we
-+ * haven't already.
-+ */
-+ res = fixup_owner(uaddr2, &q, !ret);
-+ /*
-+ * If fixup_owner() returned an error, proprogate that. If it
-+ * acquired the lock, clear -ETIMEDOUT or -EINTR.
-+ */
-+ if (res)
-+ ret = (res < 0) ? res : 0;
-+
-+ /*
-+ * If fixup_pi_state_owner() faulted and was unable to handle
-+ * the fault, unlock the rt_mutex and return the fault to
-+ * userspace.
-+ */
-+ if (ret && rt_mutex_owner(&q.pi_state->pi_mutex) == current) {
-+ pi_state = q.pi_state;
-+ get_pi_state(pi_state);
-+ }
-+
-+ /* Unqueue and drop the lock. */
-+ unqueue_me_pi(&q);
-+ }
-+
-+ if (pi_state) {
-+ rt_mutex_futex_unlock(&pi_state->pi_mutex);
-+ put_pi_state(pi_state);
++ ksft_test_result_pass("futex2_wake shared succeeds\n");
+ }
+
-+ if (ret == -EINTR) {
-+ /*
-+ * We've already been requeued, but cannot restart by calling
-+ * futex_lock_pi() directly. We could restart this syscall, but
-+ * it would detect that the user space "val" changed and return
-+ * -EWOULDBLOCK. Save the overhead of the restart and return
-+ * -EWOULDBLOCK directly.
-+ */
-+ ret = -EWOULDBLOCK;
-+ }
++ for (i = 0; i < NR_FUTEXES; i++)
++ shmdt(waitv[i].uaddr);
+
-+out:
-+ if (to) {
-+ hrtimer_cancel(&to->timer);
-+ destroy_hrtimer_on_stack(&to->timer);
-+ }
++ ksft_print_cnts();
+ return ret;
+}
-+
-+static long do_futex1(u32 __user *uaddr, int op, u32 val, ktime_t *timeout,
-+ u32 __user *uaddr2, u32 val2, u32 val3)
-+{
-+ int cmd = op & FUTEX_CMD_MASK;
-+ unsigned int flags = 0;
-+
-+ if (!(op & FUTEX_PRIVATE_FLAG))
-+ flags |= FLAGS_SHARED;
-+
-+ if (op & FUTEX_CLOCK_REALTIME) {
-+ flags |= FLAGS_CLOCKRT;
-+ if (cmd != FUTEX_WAIT && cmd != FUTEX_WAIT_BITSET && \
-+ cmd != FUTEX_WAIT_REQUEUE_PI)
-+ return -ENOSYS;
-+ }
-+
-+ switch (cmd) {
-+ case FUTEX_LOCK_PI:
-+ case FUTEX_UNLOCK_PI:
-+ case FUTEX_TRYLOCK_PI:
-+ case FUTEX_WAIT_REQUEUE_PI:
-+ case FUTEX_CMP_REQUEUE_PI:
-+ if (!futex_cmpxchg_enabled)
-+ return -ENOSYS;
-+ }
-+
-+ switch (cmd) {
-+ case FUTEX_WAIT:
-+ val3 = FUTEX_BITSET_MATCH_ANY;
-+ fallthrough;
-+ case FUTEX_WAIT_BITSET:
-+ return futex_wait(uaddr, flags, val, timeout, val3);
-+ case FUTEX_WAKE:
-+ val3 = FUTEX_BITSET_MATCH_ANY;
-+ fallthrough;
-+ case FUTEX_WAKE_BITSET:
-+ return futex_wake(uaddr, flags, val, val3);
-+ case FUTEX_REQUEUE:
-+ return futex_requeue(uaddr, flags, uaddr2, val, val2, NULL, 0);
-+ case FUTEX_CMP_REQUEUE:
-+ return futex_requeue(uaddr, flags, uaddr2, val, val2, &val3, 0);
-+ case FUTEX_WAKE_OP:
-+ return futex_wake_op(uaddr, flags, uaddr2, val, val2, val3);
-+ case FUTEX_LOCK_PI:
-+ return futex_lock_pi(uaddr, flags, timeout, 0);
-+ case FUTEX_UNLOCK_PI:
-+ return futex_unlock_pi(uaddr, flags);
-+ case FUTEX_TRYLOCK_PI:
-+ return futex_lock_pi(uaddr, flags, NULL, 1);
-+ case FUTEX_WAIT_REQUEUE_PI:
-+ val3 = FUTEX_BITSET_MATCH_ANY;
-+ return futex_wait_requeue_pi(uaddr, flags, val, timeout, val3,
-+ uaddr2);
-+ case FUTEX_CMP_REQUEUE_PI:
-+ return futex_requeue(uaddr, flags, uaddr2, val, val2, &val3, 1);
-+ }
-+ return -ENOSYS;
-+}
-+
-+
-+SYSCALL_DEFINE6(futex1, u32 __user *, uaddr, int, op, u32, val,
-+ struct __kernel_timespec __user *, utime, u32 __user *, uaddr2,
-+ u32, val3)
-+{
-+ struct timespec64 ts;
-+ ktime_t t, *tp = NULL;
-+ u32 val2 = 0;
-+ int cmd = op & FUTEX_CMD_MASK;
-+
-+ if (utime && (cmd == FUTEX_WAIT || cmd == FUTEX_LOCK_PI ||
-+ cmd == FUTEX_WAIT_BITSET ||
-+ cmd == FUTEX_WAIT_REQUEUE_PI)) {
-+ if (unlikely(should_fail_futex(!(op & FUTEX_PRIVATE_FLAG))))
-+ return -EFAULT;
-+ if (get_timespec64(&ts, utime))
-+ return -EFAULT;
-+ if (!timespec64_valid(&ts))
-+ return -EINVAL;
-+
-+ t = timespec64_to_ktime(ts);
-+ if (cmd == FUTEX_WAIT)
-+ t = ktime_add_safe(ktime_get(), t);
-+ tp = &t;
-+ }
-+ /*
-+ * requeue parameter in 'utime' if cmd == FUTEX_*_REQUEUE_*.
-+ * number of waiters to wake in 'utime' if cmd == FUTEX_WAKE_OP.
-+ */
-+ if (cmd == FUTEX_REQUEUE || cmd == FUTEX_CMP_REQUEUE ||
-+ cmd == FUTEX_CMP_REQUEUE_PI || cmd == FUTEX_WAKE_OP)
-+ val2 = (u32) (unsigned long) utime;
-+
-+ return do_futex1(uaddr, op, val, tp, uaddr2, val2, val3);
-+}
-+
-+static void __init futex_detect_cmpxchg(void)
-+{
-+#ifndef CONFIG_HAVE_FUTEX_CMPXCHG
-+ u32 curval;
-+
-+ /*
-+ * This will fail and we want it. Some arch implementations do
-+ * runtime detection of the futex_atomic_cmpxchg_inatomic()
-+ * functionality. We want to know that before we call in any
-+ * of the complex code paths. Also we want to prevent
-+ * registration of robust lists in that case. NULL is
-+ * guaranteed to fault and we get -EFAULT on functional
-+ * implementation, the non-functional ones will return
-+ * -ENOSYS.
-+ */
-+ if (cmpxchg_futex_value_locked(&curval, NULL, 0, 0) == -EFAULT)
-+ futex_cmpxchg_enabled = 1;
-+#endif
-+}
-+
-+static int __init futex_init(void)
-+{
-+ unsigned int futex_shift;
-+ unsigned long i;
-+
-+#if CONFIG_BASE_SMALL
-+ futex_hashsize = 16;
-+#else
-+ futex_hashsize = roundup_pow_of_two(256 * num_possible_cpus());
-+#endif
-+
-+ futex_queues = alloc_large_system_hash("futex1", sizeof(*futex_queues),
-+ futex_hashsize, 0,
-+ futex_hashsize < 256 ? HASH_SMALL : 0,
-+ &futex_shift, NULL,
-+ futex_hashsize, futex_hashsize);
-+ futex_hashsize = 1UL << futex_shift;
-+
-+ futex_detect_cmpxchg();
-+
-+ for (i = 0; i < futex_hashsize; i++) {
-+ atomic_set(&futex_queues[i].waiters, 0);
-+ plist_head_init(&futex_queues[i].chain);
-+ spin_lock_init(&futex_queues[i].lock);
-+ }
-+
-+ return 0;
-+}
-+core_initcall(futex_init);
-diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c
-index 3e1a713d3e57..b53a24a99a14 100644
---- a/kernel/sys_ni.c
-+++ b/kernel/sys_ni.c
-@@ -153,6 +153,8 @@ COND_SYSCALL(futex_wait);
- COND_SYSCALL(futex_wake);
- COND_SYSCALL(futex_waitv);
+diff --git a/tools/testing/selftests/futex/functional/run.sh b/tools/testing/selftests/futex/functional/run.sh
+index 3730159c8..18b3883d7 100755
+--- a/tools/testing/selftests/futex/functional/run.sh
++++ b/tools/testing/selftests/futex/functional/run.sh
+@@ -76,3 +76,6 @@ echo
-+COND_SYSCALL(futex1);
+ echo
+ ./futex2_wait $COLOR
+
- /* kernel/hrtimer.c */
-
- /* kernel/itimer.c */
-diff --git a/tools/arch/x86/include/asm/unistd_64.h b/tools/arch/x86/include/asm/unistd_64.h
-index 4205ed4158bf..43de5a59ac1c 100644
---- a/tools/arch/x86/include/asm/unistd_64.h
-+++ b/tools/arch/x86/include/asm/unistd_64.h
-@@ -17,3 +17,15 @@
- #ifndef __NR_setns
- #define __NR_setns 308
++echo
++./futex2_waitv $COLOR
+diff --git a/tools/testing/selftests/futex/include/futex2test.h b/tools/testing/selftests/futex/include/futex2test.h
+index 807b8b57f..10be0c504 100644
+--- a/tools/testing/selftests/futex/include/futex2test.h
++++ b/tools/testing/selftests/futex/include/futex2test.h
+@@ -27,10 +27,18 @@
+ #ifndef FUTEX_32
+ #define FUTEX_32 2
#endif
+-#ifdef __x86_64__
+-# ifndef FUTEX_64
+-# define FUTEX_64 3
+-# endif
+
-+#ifndef __NR_futex_wait
-+#define __NR_futex_wait 440
-+#endif
-+
-+#ifndef __NR_futex_wake
-+#define __NR_futex_wake 441
-+#endif
-+
-+#ifndef __NR_futex1
-+#define __NR_futex1 442
++#ifndef FUTEX_SHARED_FLAG
++#define FUTEX_SHARED_FLAG 8
+#endif
-diff --git a/tools/include/uapi/asm-generic/unistd.h b/tools/include/uapi/asm-generic/unistd.h
-index dd457de21bad..f737eaeecbb6 100644
---- a/tools/include/uapi/asm-generic/unistd.h
-+++ b/tools/include/uapi/asm-generic/unistd.h
-@@ -862,11 +862,15 @@ __SYSCALL(__NR_faccessat2, sys_faccessat2)
-
- #define __NR_futex_wait 440
- __SYSCALL(__NR_futex_wait, sys_futex_wait)
-+
- #define __NR_futex_wake 441
- __SYSCALL(__NR_futex_wake, sys_futex_wake)
-
-+#define __NR_futex1 442
-+__SYSCALL(__NR_futex1, sys_futex1)
+
- #undef __NR_syscalls
--#define __NR_syscalls 442
-+#define __NR_syscalls 443
++#ifndef FUTEX_WAITV_MAX
++#define FUTEX_WAITV_MAX 128
++struct futex_waitv {
++ void *uaddr;
++ unsigned int val;
++ unsigned int flags;
++};
+ #endif
/*
- * 32 bit systems traditionally used different
-diff --git a/tools/perf/arch/x86/entry/syscalls/syscall_64.tbl b/tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
-index f30d6ae9a688..1a516b081207 100644
---- a/tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
-+++ b/tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
-@@ -361,6 +361,9 @@
- 437 common openat2 sys_openat2
- 438 common pidfd_getfd sys_pidfd_getfd
- 439 common faccessat2 sys_faccessat2
-+440 common futex_wait sys_futex_wait
-+441 common futex_wake sys_futex_wake
-+442 common futex1 sys_futex1
-
- #
- # x32-specific system call numbers start at 512 to avoid cache impact
-diff --git a/tools/perf/bench/futex.h b/tools/perf/bench/futex.h
-index 31b53cc7d5bc..baf6a0d077ac 100644
---- a/tools/perf/bench/futex.h
-+++ b/tools/perf/bench/futex.h
-@@ -8,10 +8,14 @@
- #ifndef _FUTEX_H
- #define _FUTEX_H
-
-+//#define FUTEX1 0
-+#define UNUSED(x) (void)(x)
-+
- #include <unistd.h>
- #include <sys/syscall.h>
- #include <sys/types.h>
- #include <linux/futex.h>
-+#include <linux/unistd.h>
-
- /**
- * futex() - SYS_futex syscall wrapper
-@@ -34,7 +38,13 @@
- * like-named arguments in the following wrappers except where noted below.
- */
- #define futex(uaddr, op, val, timeout, uaddr2, val3, opflags) \
-- syscall(SYS_futex, uaddr, op | opflags, val, timeout, uaddr2, val3)
-+ syscall(__NR_futex1, uaddr, op | opflags, val, timeout, uaddr2, val3)
-+
-+#define futex2_wake(uaddr, nr, flags) \
-+ syscall(__NR_futex_wake, uaddr, nr, flags | FUTEX_32)
-+
-+#define futex2_wait(uaddr, val, flags, timeout) \
-+ syscall(__NR_futex_wait, uaddr, val, flags | FUTEX_32, timeout)
-
- /**
- * futex_wait() - block on uaddr with optional timeout
-@@ -43,7 +53,13 @@
- static inline int
- futex_wait(u_int32_t *uaddr, u_int32_t val, struct timespec *timeout, int opflags)
- {
-+#ifdef FUTEX1
- return futex(uaddr, FUTEX_WAIT, val, timeout, NULL, 0, opflags);
-+#else
-+ UNUSED(timeout);
-+ UNUSED(opflags);
-+ return futex2_wait(uaddr, val, 0, NULL);
-+#endif
- }
-
- /**
-@@ -53,7 +69,12 @@ futex_wait(u_int32_t *uaddr, u_int32_t val, struct timespec *timeout, int opflag
- static inline int
- futex_wake(u_int32_t *uaddr, int nr_wake, int opflags)
+@@ -75,3 +83,12 @@ static inline int futex2_wake(volatile void *uaddr, unsigned int nr, unsigned lo
{
-+#ifdef FUTEX1
- return futex(uaddr, FUTEX_WAKE, nr_wake, NULL, NULL, 0, opflags);
-+#else
-+ UNUSED(opflags);
-+ return futex2_wake(uaddr, nr_wake, 0);
-+#endif
+ return syscall(__NR_futex_wake, uaddr, nr, flags);
}
-
- /**
++
++/*
++ * wait for uaddr if (*uaddr == val)
++ */
++static inline int futex2_waitv(volatile struct futex_waitv *waiters, unsigned long nr_waiters,
++ unsigned long flags, struct timespec64 *timo)
++{
++ return syscall(__NR_futex_waitv, waiters, nr_waiters, flags, timo);
++}
--
-2.28.0
+2.29.2
+
-From 2f5e38a4191ac6fd5040435f6a41433add3711a6 Mon Sep 17 00:00:00 2001
+From 9358bbdf929a90bc144d13e002fed8f4223d3178 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Almeida?= <andrealmeid@collabora.com>
-Date: Thu, 15 Oct 2020 18:06:40 -0300
-Subject: [PATCH 07/13] futex2: Add support for shared futexes
+Date: Fri, 4 Dec 2020 19:12:23 -0300
+Subject: [PATCH 8/9] futex2: Add sysfs entry for syscall numbers
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
-Add support for shared futexes for cross-process resources.
-
Signed-off-by: André Almeida <andrealmeid@collabora.com>
+Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
---
- kernel/futex2.c | 169 +++++++++++++++++++++++++++++++++++++++++-------
- 1 file changed, 146 insertions(+), 23 deletions(-)
+ kernel/futex2.c | 42 ++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 42 insertions(+)
diff --git a/kernel/futex2.c b/kernel/futex2.c
-index 4b782b5ef615..ae743ddf223e 100644
+index 5ddb9922d..58cd8a868 100644
--- a/kernel/futex2.c
+++ b/kernel/futex2.c
-@@ -6,7 +6,9 @@
- */
-
- #include <linux/freezer.h>
-+#include <linux/hugetlb.h>
- #include <linux/jhash.h>
-+#include <linux/pagemap.h>
- #include <linux/sched/wake_q.h>
- #include <linux/spinlock.h>
- #include <linux/syscalls.h>
-@@ -15,6 +17,7 @@
-
- /**
- * struct futex_waiter - List entry for a waiter
-+ * @uaddr: Memory address of userspace futex
- * @key.address: Memory address of userspace futex
- * @key.mm: Pointer to memory management struct of this process
- * @key: Stores information that uniquely identify a futex
-@@ -25,6 +28,7 @@
- * @index: Index of waiter in futexv list
- */
- struct futex_waiter {
-+ uintptr_t uaddr;
- struct futex_key {
- uintptr_t address;
- struct mm_struct *mm;
-@@ -125,16 +129,109 @@ static inline int bucket_get_waiters(struct futex_bucket *bucket)
- #endif
+@@ -762,6 +762,48 @@ SYSCALL_DEFINE3(futex_wake, void __user *, uaddr, unsigned int, nr_wake,
+ return ret;
}
-+static u64 get_inode_sequence_number(struct inode *inode)
++static ssize_t wait_show(struct kobject *kobj, struct kobj_attribute *attr,
++ char *buf)
+{
-+ static atomic64_t i_seq;
-+ u64 old;
-+
-+ /* Does the inode already have a sequence number? */
-+ old = atomic64_read(&inode->i_sequence);
-+ if (likely(old))
-+ return old;
-+
-+ for (;;) {
-+ u64 new = atomic64_add_return(1, &i_seq);
-+ if (WARN_ON_ONCE(!new))
-+ continue;
++ return sprintf(buf, "%u\n", __NR_futex_wait);
+
-+ old = atomic64_cmpxchg_relaxed(&inode->i_sequence, 0, new);
-+ if (old)
-+ return old;
-+ return new;
-+ }
+}
++static struct kobj_attribute futex2_wait_attr = __ATTR_RO(wait);
+
-+static int futex_get_shared_key(uintptr_t address, struct mm_struct *mm,
-+ struct futex_key *key)
++static ssize_t wake_show(struct kobject *kobj, struct kobj_attribute *attr,
++ char *buf)
+{
-+ int err;
-+ struct page *page, *tail;
-+ struct address_space *mapping;
-+
-+again:
-+ err = get_user_pages_fast(address, 1, 0, &page);
-+
-+ if (err < 0)
-+ return err;
-+ else
-+ err = 0;
-+
-+
-+ tail = page;
-+ page = compound_head(page);
-+ mapping = READ_ONCE(page->mapping);
-+
-+
-+ if (unlikely(!mapping)) {
-+ int shmem_swizzled;
-+
-+ lock_page(page);
-+ shmem_swizzled = PageSwapCache(page) || page->mapping;
-+ unlock_page(page);
-+ put_page(page);
-+
-+ if (shmem_swizzled)
-+ goto again;
-+
-+ return -EFAULT;
-+ }
-+
-+ if (PageAnon(page)) {
-+
-+ key->mm = mm;
-+ key->address = address;
-+
-+ } else {
-+ struct inode *inode;
-+
-+ rcu_read_lock();
-+
-+ if (READ_ONCE(page->mapping) != mapping) {
-+ rcu_read_unlock();
-+ put_page(page);
-+
-+ goto again;
-+ }
-+
-+ inode = READ_ONCE(mapping->host);
-+ if (!inode) {
-+ rcu_read_unlock();
-+ put_page(page);
-+
-+ goto again;
-+ }
-+
-+ key->address = get_inode_sequence_number(inode);
-+ key->mm = (struct mm_struct *) basepage_index(tail);
-+ rcu_read_unlock();
-+ }
++ return sprintf(buf, "%u\n", __NR_futex_wake);
+
-+ put_page(page);
-+ return err;
+}
++static struct kobj_attribute futex2_wake_attr = __ATTR_RO(wake);
+
- /**
- * futex_get_bucket - Check if the user address is valid, prepare internal
- * data and calculate the hash
- * @uaddr: futex user address
- * @key: data that uniquely identifies a futex
-+ * @shared: is this a shared futex?
- *
- * Return: address of bucket on success, error code otherwise
- */
- static struct futex_bucket *futex_get_bucket(void __user *uaddr,
-- struct futex_key *key)
-+ struct futex_key *key,
-+ bool shared)
- {
- uintptr_t address = (uintptr_t) uaddr;
- u32 hash_key;
-@@ -145,8 +242,12 @@ static struct futex_bucket *futex_get_bucket(void __user *uaddr,
- if (unlikely(!access_ok(address, sizeof(u32))))
- return ERR_PTR(-EFAULT);
-
-- key->address = address;
-- key->mm = current->mm;
-+ if (!shared) {
-+ key->address = address;
-+ key->mm = current->mm;
-+ } else {
-+ futex_get_shared_key(address, current->mm, key);
-+ }
-
- /* Generate hash key for this futex using uaddr and current->mm */
- hash_key = jhash2((u32 *) key, sizeof(*key) / sizeof(u32), 0);
-@@ -275,9 +376,10 @@ static int futex_dequeue_multiple(struct futexv *futexv, unsigned int nr)
- * Return: 0 on success, error code otherwise
- */
- static int futex_enqueue(struct futexv *futexv, unsigned int nr_futexes,
-- unsigned int *awaken)
-+ int *awaken)
- {
- int i, ret;
-+ bool shared;
- u32 uval, *uaddr, val;
- struct futex_bucket *bucket;
-
-@@ -285,9 +387,13 @@ static int futex_enqueue(struct futexv *futexv, unsigned int nr_futexes,
- set_current_state(TASK_INTERRUPTIBLE);
-
- for (i = 0; i < nr_futexes; i++) {
-- uaddr = (u32 * __user) futexv->objects[i].key.address;
-+ uaddr = (u32 * __user) futexv->objects[i].uaddr;
- val = (u32) futexv->objects[i].val;
-- bucket = futexv->objects[i].bucket;
-+ shared = (futexv->objects[i].flags & FUTEX_SHARED_FLAG) ? true : false;
-+ if (shared)
-+ bucket = futex_get_bucket((void *) uaddr, &futexv->objects[i].key, true);
-+ else
-+ bucket = futexv->objects[i].bucket;
-
- bucket_inc_waiters(bucket);
- spin_lock(&bucket->lock);
-@@ -301,11 +407,14 @@ static int futex_enqueue(struct futexv *futexv, unsigned int nr_futexes,
- __set_current_state(TASK_RUNNING);
- *awaken = futex_dequeue_multiple(futexv, i);
-
-+ if (shared)
-+ goto retry;
++static ssize_t waitv_show(struct kobject *kobj, struct kobj_attribute *attr,
++ char *buf)
++{
++ return sprintf(buf, "%u\n", __NR_futex_waitv);
+
- if (__get_user(uval, uaddr))
- return -EFAULT;
-
- if (*awaken >= 0)
-- return 0;
-+ return 1;
-
- goto retry;
- }
-@@ -313,12 +422,14 @@ static int futex_enqueue(struct futexv *futexv, unsigned int nr_futexes,
- if (uval != val) {
- spin_unlock(&bucket->lock);
-
++}
++static struct kobj_attribute futex2_waitv_attr = __ATTR_RO(waitv);
+
- bucket_dec_waiters(bucket);
- __set_current_state(TASK_RUNNING);
- *awaken = futex_dequeue_multiple(futexv, i);
-
-- if (*awaken >= 0)
-- return 0;
-+ if (*awaken >= 0) {
-+ return 1;
-+ }
-
- return -EWOULDBLOCK;
- }
-@@ -336,19 +447,18 @@ static int __futex_wait(struct futexv *futexv,
- struct hrtimer_sleeper *timeout)
- {
- int ret;
-- unsigned int awaken = -1;
-
-- while (1) {
-- ret = futex_enqueue(futexv, nr_futexes, &awaken);
-
-- if (ret < 0)
-- break;
-+ while (1) {
-+ int awaken = -1;
-
-- if (awaken <= 0) {
-- return awaken;
-+ ret = futex_enqueue(futexv, nr_futexes, &awaken);
-+ if (ret) {
-+ if (awaken >= 0)
-+ return awaken;
-+ return ret;
- }
-
--
- /* Before sleeping, check if someone was woken */
- if (!futexv->hint && (!timeout || timeout->task))
- freezable_schedule();
-@@ -419,6 +529,7 @@ static int futex_wait(struct futexv *futexv, unsigned int nr_futexes,
- hrtimer_sleeper_start_expires(timeout, HRTIMER_MODE_ABS);
- }
-
++static struct attribute *futex2_sysfs_attrs[] = {
++ &futex2_wait_attr.attr,
++ &futex2_wake_attr.attr,
++ &futex2_waitv_attr.attr,
++ NULL,
++};
+
- ret = __futex_wait(futexv, nr_futexes, timo ? timeout : NULL);
-
-
-@@ -438,9 +549,10 @@ static int futex_wait(struct futexv *futexv, unsigned int nr_futexes,
- SYSCALL_DEFINE4(futex_wait, void __user *, uaddr, unsigned int, val,
- unsigned int, flags, struct __kernel_timespec __user *, timo)
- {
-+ bool shared = (flags & FUTEX_SHARED_FLAG) ? true : false;
- unsigned int size = flags & FUTEX_SIZE_MASK;
-- struct hrtimer_sleeper timeout;
- struct futex_single_waiter wait_single;
-+ struct hrtimer_sleeper timeout;
- struct futex_waiter *waiter;
- struct futexv *futexv;
- int ret;
-@@ -452,6 +564,7 @@ SYSCALL_DEFINE4(futex_wait, void __user *, uaddr, unsigned int, val,
- waiter = &wait_single.waiter;
- waiter->index = 0;
- waiter->val = val;
-+ waiter->uaddr = (uintptr_t) uaddr;
-
- INIT_LIST_HEAD(&waiter->list);
-
-@@ -462,11 +575,14 @@ SYSCALL_DEFINE4(futex_wait, void __user *, uaddr, unsigned int, val,
- return -EINVAL;
-
- /* Get an unlocked hash bucket */
-- waiter->bucket = futex_get_bucket(uaddr, &waiter->key);
-- if (IS_ERR(waiter->bucket))
-+ waiter->bucket = futex_get_bucket(uaddr, &waiter->key, shared);
-+ if (IS_ERR(waiter->bucket)) {
- return PTR_ERR(waiter->bucket);
-+ }
-
- ret = futex_wait(futexv, 1, timo, &timeout, flags);
-+ if (ret > 0)
-+ ret = 0;
-
- return ret;
- }
-@@ -486,8 +602,10 @@ static int futex_parse_waitv(struct futexv *futexv,
- struct futex_waitv waitv;
- unsigned int i;
- struct futex_bucket *bucket;
-+ bool shared;
-
- for (i = 0; i < nr_futexes; i++) {
++static const struct attribute_group futex2_sysfs_attr_group = {
++ .attrs = futex2_sysfs_attrs,
++ .name = "futex2",
++};
+
- if (copy_from_user(&waitv, &uwaitv[i], sizeof(waitv)))
- return -EFAULT;
-
-@@ -495,8 +613,10 @@ static int futex_parse_waitv(struct futexv *futexv,
- (waitv.flags & FUTEX_SIZE_MASK) != FUTEX_32)
- return -EINVAL;
-
-+ shared = (waitv.flags & FUTEX_SHARED_FLAG) ? true : false;
++static int __init futex2_sysfs_init(void)
++{
++ return sysfs_create_group(kernel_kobj, &futex2_sysfs_attr_group);
++}
++subsys_initcall(futex2_sysfs_init);
+
- bucket = futex_get_bucket(waitv.uaddr,
-- &futexv->objects[i].key);
-+ &futexv->objects[i].key, shared);
- if (IS_ERR(bucket))
- return PTR_ERR(bucket);
-
-@@ -505,6 +625,7 @@ static int futex_parse_waitv(struct futexv *futexv,
- futexv->objects[i].flags = waitv.flags;
- futexv->objects[i].index = i;
- INIT_LIST_HEAD(&futexv->objects[i].list);
-+ futexv->objects[i].uaddr = (uintptr_t) waitv.uaddr;
- }
-
- return 0;
-@@ -573,6 +694,7 @@ static struct futexv *futex_get_parent(uintptr_t waiter, u8 index)
- SYSCALL_DEFINE3(futex_wake, void __user *, uaddr, unsigned int, nr_wake,
- unsigned int, flags)
+ static int __init futex2_init(void)
{
-+ bool shared = (flags & FUTEX_SHARED_FLAG) ? true : false;
- unsigned int size = flags & FUTEX_SIZE_MASK;
- struct futex_waiter waiter, *aux, *tmp;
- struct futex_bucket *bucket;
-@@ -586,9 +708,10 @@ SYSCALL_DEFINE3(futex_wake, void __user *, uaddr, unsigned int, nr_wake,
- if (size != FUTEX_32)
- return -EINVAL;
-
-- bucket = futex_get_bucket(uaddr, &waiter.key);
-- if (IS_ERR(bucket))
-+ bucket = futex_get_bucket(uaddr, &waiter.key, shared);
-+ if (IS_ERR(bucket)) {
- return PTR_ERR(bucket);
-+ }
-
- if (!bucket_get_waiters(bucket))
- return 0;
+ int i;
--
-2.28.0
+2.29.2
-From 909eb056421668b5d42f8c4dfa92339851a43dd8 Mon Sep 17 00:00:00 2001
-From: Gabriel Krisman Bertazi <krisman@collabora.com>
-Date: Mon, 2 Nov 2020 18:41:38 -0500
-Subject: [PATCH 08/13] Revert "futex: Remove needless goto's"
-This reverts commit d7c5ed73b19c4640426d9c106f70ec2cb532034d.
----
- kernel/futex.c | 40 ++++++++++++++++++++++++----------------
- 1 file changed, 24 insertions(+), 16 deletions(-)
-
-diff --git a/kernel/futex.c b/kernel/futex.c
-index 6c00c0952313..a671d371b11f 100644
---- a/kernel/futex.c
-+++ b/kernel/futex.c
-@@ -1593,13 +1593,13 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset)
-
- ret = get_futex_key(uaddr, flags & FLAGS_SHARED, &key, FUTEX_READ);
- if (unlikely(ret != 0))
-- return ret;
-+ goto out;
-
- hb = hash_futex(&key);
-
- /* Make sure we really have tasks to wakeup */
- if (!hb_waiters_pending(hb))
-- return ret;
-+ goto out;
-
- spin_lock(&hb->lock);
-
-@@ -1622,6 +1622,7 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset)
-
- spin_unlock(&hb->lock);
- wake_up_q(&wake_q);
-+out:
- return ret;
- }
-
-@@ -1688,10 +1689,10 @@ futex_wake_op(u32 __user *uaddr1, unsigned int flags, u32 __user *uaddr2,
- retry:
- ret = get_futex_key(uaddr1, flags & FLAGS_SHARED, &key1, FUTEX_READ);
- if (unlikely(ret != 0))
-- return ret;
-+ goto out;
- ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2, FUTEX_WRITE);
- if (unlikely(ret != 0))
-- return ret;
-+ goto out;
-
- hb1 = hash_futex(&key1);
- hb2 = hash_futex(&key2);
-@@ -1709,13 +1710,13 @@ futex_wake_op(u32 __user *uaddr1, unsigned int flags, u32 __user *uaddr2,
- * an MMU, but we might get them from range checking
- */
- ret = op_ret;
-- return ret;
-+ goto out;
- }
-
- if (op_ret == -EFAULT) {
- ret = fault_in_user_writeable(uaddr2);
- if (ret)
-- return ret;
-+ goto out;
- }
-
- if (!(flags & FLAGS_SHARED)) {
-@@ -1758,6 +1759,7 @@ futex_wake_op(u32 __user *uaddr1, unsigned int flags, u32 __user *uaddr2,
- out_unlock:
- double_unlock_hb(hb1, hb2);
- wake_up_q(&wake_q);
-+out:
- return ret;
- }
-
-@@ -1964,18 +1966,20 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
- retry:
- ret = get_futex_key(uaddr1, flags & FLAGS_SHARED, &key1, FUTEX_READ);
- if (unlikely(ret != 0))
-- return ret;
-+ goto out;
- ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2,
- requeue_pi ? FUTEX_WRITE : FUTEX_READ);
- if (unlikely(ret != 0))
-- return ret;
-+ goto out;
-
- /*
- * The check above which compares uaddrs is not sufficient for
- * shared futexes. We need to compare the keys:
- */
-- if (requeue_pi && match_futex(&key1, &key2))
-- return -EINVAL;
-+ if (requeue_pi && match_futex(&key1, &key2)) {
-+ ret = -EINVAL;
-+ goto out;
-+ }
-
- hb1 = hash_futex(&key1);
- hb2 = hash_futex(&key2);
-@@ -1995,7 +1999,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
-
- ret = get_user(curval, uaddr1);
- if (ret)
-- return ret;
-+ goto out;
-
- if (!(flags & FLAGS_SHARED))
- goto retry_private;
-@@ -2061,7 +2065,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
- ret = fault_in_user_writeable(uaddr2);
- if (!ret)
- goto retry;
-- return ret;
-+ goto out;
- case -EBUSY:
- case -EAGAIN:
- /*
-@@ -2180,6 +2184,8 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
- double_unlock_hb(hb1, hb2);
- wake_up_q(&wake_q);
- hb_waiters_dec(hb2);
-+
-+out:
- return ret ? ret : task_count;
- }
-
-@@ -2537,7 +2543,7 @@ static int fixup_owner(u32 __user *uaddr, struct futex_q *q, int locked)
- */
- if (q->pi_state->owner != current)
- ret = fixup_pi_state_owner(uaddr, q, current);
-- return ret ? ret : locked;
-+ goto out;
- }
-
- /*
-@@ -2550,7 +2556,7 @@ static int fixup_owner(u32 __user *uaddr, struct futex_q *q, int locked)
- */
- if (q->pi_state->owner == current) {
- ret = fixup_pi_state_owner(uaddr, q, NULL);
-- return ret;
-+ goto out;
- }
-
- /*
-@@ -2564,7 +2570,8 @@ static int fixup_owner(u32 __user *uaddr, struct futex_q *q, int locked)
- q->pi_state->owner);
- }
-
-- return ret;
-+out:
-+ return ret ? ret : locked;
- }
-
- /**
-@@ -2661,7 +2668,7 @@ static int futex_wait_setup(u32 __user *uaddr, u32 val, unsigned int flags,
-
- ret = get_user(uval, uaddr);
- if (ret)
-- return ret;
-+ goto out;
-
- if (!(flags & FLAGS_SHARED))
- goto retry_private;
-@@ -2674,6 +2681,7 @@ static int futex_wait_setup(u32 __user *uaddr, u32 val, unsigned int flags,
- ret = -EWOULDBLOCK;
- }
-
-+out:
- return ret;
- }
-
---
-2.28.0
+From f7b1c9a2ad05933e559ef78bc7753b2fac1698fd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Almeida?= <andrealmeid@collabora.com>
+Date: Tue, 5 Jan 2021 15:44:02 -0300
+Subject: [PATCH 9/9] perf bench: Add futex2 benchmark tests
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
-From fee513186b69c4a65534fd790545877974ef17d3 Mon Sep 17 00:00:00 2001
-From: Gabriel Krisman Bertazi <krisman@collabora.com>
-Date: Mon, 2 Nov 2020 18:41:54 -0500
-Subject: [PATCH 09/13] Revert "futex: Remove put_futex_key()"
+Port existing futex infrastructure to use futex2 calls.
-This reverts commit 9180bd467f9abdb44afde650d07e3b9dd66d837c.
+Signed-off-by: André Almeida <andrealmeid@collabora.com>
+Signed-off-by: Jan200101 <sentrycraft123@gmail.com>
---
- kernel/futex.c | 61 ++++++++++++++++++++++++++++++++++++++++----------
- 1 file changed, 49 insertions(+), 12 deletions(-)
+ tools/arch/x86/include/asm/unistd_64.h | 8 +++++
+ tools/perf/bench/bench.h | 3 ++
+ tools/perf/bench/futex-hash.c | 24 ++++++++++++---
+ tools/perf/bench/futex-wake-parallel.c | 41 ++++++++++++++++++++++----
+ tools/perf/bench/futex-wake.c | 36 ++++++++++++++++++----
+ tools/perf/bench/futex.h | 17 +++++++++++
+ tools/perf/builtin-bench.c | 17 ++++++++---
+ 7 files changed, 127 insertions(+), 19 deletions(-)
-diff --git a/kernel/futex.c b/kernel/futex.c
-index a671d371b11f..647de692c874 100644
---- a/kernel/futex.c
-+++ b/kernel/futex.c
-@@ -661,6 +661,10 @@ static int get_futex_key(u32 __user *uaddr, bool fshared, union futex_key *key,
- return err;
- }
-
-+static inline void put_futex_key(union futex_key *key)
-+{
-+}
+diff --git a/tools/arch/x86/include/asm/unistd_64.h b/tools/arch/x86/include/asm/unistd_64.h
+index 4205ed415..151a41ceb 100644
+--- a/tools/arch/x86/include/asm/unistd_64.h
++++ b/tools/arch/x86/include/asm/unistd_64.h
+@@ -17,3 +17,11 @@
+ #ifndef __NR_setns
+ #define __NR_setns 308
+ #endif
+
- /**
- * fault_in_user_writeable() - Fault in user address and verify RW access
- * @uaddr: pointer to faulting user space address
-@@ -1599,7 +1603,7 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset)
-
- /* Make sure we really have tasks to wakeup */
- if (!hb_waiters_pending(hb))
-- goto out;
-+ goto out_put_key;
-
- spin_lock(&hb->lock);
-
-@@ -1622,6 +1626,8 @@ futex_wake(u32 __user *uaddr, unsigned int flags, int nr_wake, u32 bitset)
-
- spin_unlock(&hb->lock);
- wake_up_q(&wake_q);
-+out_put_key:
-+ put_futex_key(&key);
- out:
- return ret;
- }
-@@ -1692,7 +1698,7 @@ futex_wake_op(u32 __user *uaddr1, unsigned int flags, u32 __user *uaddr2,
- goto out;
- ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2, FUTEX_WRITE);
- if (unlikely(ret != 0))
-- goto out;
-+ goto out_put_key1;
-
- hb1 = hash_futex(&key1);
- hb2 = hash_futex(&key2);
-@@ -1710,13 +1716,13 @@ futex_wake_op(u32 __user *uaddr1, unsigned int flags, u32 __user *uaddr2,
- * an MMU, but we might get them from range checking
- */
- ret = op_ret;
-- goto out;
-+ goto out_put_keys;
- }
-
- if (op_ret == -EFAULT) {
- ret = fault_in_user_writeable(uaddr2);
- if (ret)
-- goto out;
-+ goto out_put_keys;
- }
-
- if (!(flags & FLAGS_SHARED)) {
-@@ -1724,6 +1730,8 @@ futex_wake_op(u32 __user *uaddr1, unsigned int flags, u32 __user *uaddr2,
- goto retry_private;
- }
-
-+ put_futex_key(&key2);
-+ put_futex_key(&key1);
- cond_resched();
- goto retry;
- }
-@@ -1759,6 +1767,10 @@ futex_wake_op(u32 __user *uaddr1, unsigned int flags, u32 __user *uaddr2,
- out_unlock:
- double_unlock_hb(hb1, hb2);
- wake_up_q(&wake_q);
-+out_put_keys:
-+ put_futex_key(&key2);
-+out_put_key1:
-+ put_futex_key(&key1);
- out:
- return ret;
- }
-@@ -1970,7 +1982,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
- ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2,
- requeue_pi ? FUTEX_WRITE : FUTEX_READ);
- if (unlikely(ret != 0))
-- goto out;
-+ goto out_put_key1;
-
- /*
- * The check above which compares uaddrs is not sufficient for
-@@ -1978,7 +1990,7 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
- */
- if (requeue_pi && match_futex(&key1, &key2)) {
- ret = -EINVAL;
-- goto out;
-+ goto out_put_keys;
- }
-
- hb1 = hash_futex(&key1);
-@@ -1999,11 +2011,13 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
-
- ret = get_user(curval, uaddr1);
- if (ret)
-- goto out;
-+ goto out_put_keys;
-
- if (!(flags & FLAGS_SHARED))
- goto retry_private;
-
-+ put_futex_key(&key2);
-+ put_futex_key(&key1);
- goto retry;
- }
- if (curval != *cmpval) {
-@@ -2062,6 +2076,8 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
- case -EFAULT:
- double_unlock_hb(hb1, hb2);
- hb_waiters_dec(hb2);
-+ put_futex_key(&key2);
-+ put_futex_key(&key1);
- ret = fault_in_user_writeable(uaddr2);
- if (!ret)
- goto retry;
-@@ -2076,6 +2092,8 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
++#ifndef __NR_futex_wait
++# define __NR_futex_wait 441
++#endif
++
++#ifndef __NR_futex_wake
++# define __NR_futex_wake 442
++#endif
+diff --git a/tools/perf/bench/bench.h b/tools/perf/bench/bench.h
+index eac36afab..f6f881a05 100644
+--- a/tools/perf/bench/bench.h
++++ b/tools/perf/bench/bench.h
+@@ -38,8 +38,11 @@ int bench_mem_memcpy(int argc, const char **argv);
+ int bench_mem_memset(int argc, const char **argv);
+ int bench_mem_find_bit(int argc, const char **argv);
+ int bench_futex_hash(int argc, const char **argv);
++int bench_futex2_hash(int argc, const char **argv);
+ int bench_futex_wake(int argc, const char **argv);
++int bench_futex2_wake(int argc, const char **argv);
+ int bench_futex_wake_parallel(int argc, const char **argv);
++int bench_futex2_wake_parallel(int argc, const char **argv);
+ int bench_futex_requeue(int argc, const char **argv);
+ /* pi futexes */
+ int bench_futex_lock_pi(int argc, const char **argv);
+diff --git a/tools/perf/bench/futex-hash.c b/tools/perf/bench/futex-hash.c
+index 915bf3da7..72921c22b 100644
+--- a/tools/perf/bench/futex-hash.c
++++ b/tools/perf/bench/futex-hash.c
+@@ -34,7 +34,7 @@ static unsigned int nthreads = 0;
+ static unsigned int nsecs = 10;
+ /* amount of futexes per thread */
+ static unsigned int nfutexes = 1024;
+-static bool fshared = false, done = false, silent = false;
++static bool fshared = false, done = false, silent = false, futex2 = false;
+ static int futex_flag = 0;
+
+ struct timeval bench__start, bench__end, bench__runtime;
+@@ -86,7 +86,10 @@ static void *workerfn(void *arg)
+ * such as internal waitqueue handling, thus enlarging
+ * the critical region protected by hb->lock.
*/
- double_unlock_hb(hb1, hb2);
- hb_waiters_dec(hb2);
-+ put_futex_key(&key2);
-+ put_futex_key(&key1);
- /*
- * Handle the case where the owner is in the middle of
- * exiting. Wait for the exit to complete otherwise
-@@ -2185,6 +2203,10 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags,
- wake_up_q(&wake_q);
- hb_waiters_dec(hb2);
-
-+out_put_keys:
-+ put_futex_key(&key2);
-+out_put_key1:
-+ put_futex_key(&key1);
- out:
- return ret ? ret : task_count;
- }
-@@ -2673,6 +2695,7 @@ static int futex_wait_setup(u32 __user *uaddr, u32 val, unsigned int flags,
- if (!(flags & FLAGS_SHARED))
- goto retry_private;
-
-+ put_futex_key(&q->key);
- goto retry;
- }
-
-@@ -2682,6 +2705,8 @@ static int futex_wait_setup(u32 __user *uaddr, u32 val, unsigned int flags,
- }
-
- out:
-+ if (ret)
-+ put_futex_key(&q->key);
- return ret;
+- ret = futex_wait(&w->futex[i], 1234, NULL, futex_flag);
++ if (!futex2)
++ ret = futex_wait(&w->futex[i], 1234, NULL, futex_flag);
++ else
++ ret = futex2_wait(&w->futex[i], 1234, futex_flag, NULL);
+ if (!silent &&
+ (!ret || errno != EAGAIN || errno != EWOULDBLOCK))
+ warn("Non-expected futex return call");
+@@ -117,7 +120,7 @@ static void print_summary(void)
+ (int)bench__runtime.tv_sec);
}
-@@ -2826,6 +2851,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
- * - EAGAIN: The user space value changed.
- */
- queue_unlock(hb);
-+ put_futex_key(&q.key);
- /*
- * Handle the case where the owner is in the middle of
- * exiting. Wait for the exit to complete otherwise
-@@ -2933,11 +2959,13 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
- put_pi_state(pi_state);
- }
-
-- goto out;
-+ goto out_put_key;
-
- out_unlock_put_key:
- queue_unlock(hb);
-
-+out_put_key:
-+ put_futex_key(&q.key);
- out:
- if (to) {
- hrtimer_cancel(&to->timer);
-@@ -2950,11 +2978,12 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
-
- ret = fault_in_user_writeable(uaddr);
- if (ret)
-- goto out;
-+ goto out_put_key;
-
- if (!(flags & FLAGS_SHARED))
- goto retry_private;
-
-+ put_futex_key(&q.key);
- goto retry;
+-int bench_futex_hash(int argc, const char **argv)
++static int bench_futex_hash_common(int argc, const char **argv)
+ {
+ int ret = 0;
+ cpu_set_t cpuset;
+@@ -149,7 +152,9 @@ int bench_futex_hash(int argc, const char **argv)
+ if (!worker)
+ goto errmem;
+
+- if (!fshared)
++ if (futex2)
++ futex_flag = FUTEX_32 | (fshared * FUTEX_SHARED_FLAG);
++ else if (!fshared)
+ futex_flag = FUTEX_PRIVATE_FLAG;
+
+ printf("Run summary [PID %d]: %d threads, each operating on %d [%s] futexes for %d secs.\n\n",
+@@ -229,3 +234,14 @@ int bench_futex_hash(int argc, const char **argv)
+ errmem:
+ err(EXIT_FAILURE, "calloc");
}
-
-@@ -3083,13 +3112,16 @@ static int futex_unlock_pi(u32 __user *uaddr, unsigned int flags)
- out_unlock:
- spin_unlock(&hb->lock);
- out_putkey:
-+ put_futex_key(&key);
- return ret;
-
- pi_retry:
-+ put_futex_key(&key);
- cond_resched();
- goto retry;
-
- pi_faulted:
-+ put_futex_key(&key);
-
- ret = fault_in_user_writeable(uaddr);
- if (!ret)
-@@ -3231,7 +3263,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
- */
- ret = futex_wait_setup(uaddr, val, flags, &q, &hb);
- if (ret)
-- goto out;
-+ goto out_key2;
-
- /*
- * The check above which compares uaddrs is not sufficient for
-@@ -3240,7 +3272,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
- if (match_futex(&q.key, &key2)) {
- queue_unlock(hb);
- ret = -EINVAL;
-- goto out;
-+ goto out_put_keys;
- }
-
- /* Queue the futex_q, drop the hb lock, wait for wakeup. */
-@@ -3250,7 +3282,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
- ret = handle_early_requeue_pi_wakeup(hb, &q, &key2, to);
- spin_unlock(&hb->lock);
- if (ret)
-- goto out;
-+ goto out_put_keys;
-
- /*
- * In order for us to be here, we know our q.key == key2, and since
-@@ -3340,6 +3372,11 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
- ret = -EWOULDBLOCK;
- }
-
-+out_put_keys:
-+ put_futex_key(&q.key);
-+out_key2:
-+ put_futex_key(&key2);
+
- out:
- if (to) {
- hrtimer_cancel(&to->timer);
---
-2.28.0
-
-From 3b1489448a277fc1c34ca12e859193c3a7f3446c Mon Sep 17 00:00:00 2001
-From: Gabriel Krisman Bertazi <krisman@collabora.com>
-Date: Fri, 12 Jul 2019 14:16:20 -0400
-Subject: [PATCH 10/13] futex: Split key setup from key queue locking and read
-
-split the futex key setup from the queue locking and key reading. This
-is usefull to support the setup of multiple keys at the same time, like
-what is done in futex_requeue() and what will be done for the
-FUTEX_WAIT_MULTIPLE command.
-
-Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com>
----
- kernel/futex.c | 71 +++++++++++++++++++++++++++++---------------------
- 1 file changed, 42 insertions(+), 29 deletions(-)
-
-diff --git a/kernel/futex.c b/kernel/futex.c
-index 647de692c874..f05349def492 100644
---- a/kernel/futex.c
-+++ b/kernel/futex.c
-@@ -2634,6 +2634,39 @@ static void futex_wait_queue_me(struct futex_hash_bucket *hb, struct futex_q *q,
- __set_current_state(TASK_RUNNING);
- }
-
-+static int __futex_wait_setup(u32 __user *uaddr, u32 val, unsigned int flags,
-+ struct futex_q *q, struct futex_hash_bucket **hb)
++int bench_futex_hash(int argc, const char **argv)
+{
++ return bench_futex_hash_common(argc, argv);
++}
+
-+ u32 uval;
-+ int ret;
-+
-+retry_private:
-+ *hb = queue_lock(q);
-+
-+ ret = get_futex_value_locked(&uval, uaddr);
-+
-+ if (ret) {
-+ queue_unlock(*hb);
-+
-+ ret = get_user(uval, uaddr);
-+ if (ret)
-+ return ret;
-+
-+ if (!(flags & FLAGS_SHARED))
-+ goto retry_private;
-+
-+ return 1;
-+ }
-+
-+ if (uval != val) {
-+ queue_unlock(*hb);
-+ ret = -EWOULDBLOCK;
-+ }
++int bench_futex2_hash(int argc, const char **argv)
++{
++ futex2 = true;
++ return bench_futex_hash_common(argc, argv);
++}
+diff --git a/tools/perf/bench/futex-wake-parallel.c b/tools/perf/bench/futex-wake-parallel.c
+index cd2b81a84..540104538 100644
+--- a/tools/perf/bench/futex-wake-parallel.c
++++ b/tools/perf/bench/futex-wake-parallel.c
+@@ -17,6 +17,12 @@ int bench_futex_wake_parallel(int argc __maybe_unused, const char **argv __maybe
+ pr_err("%s: pthread_barrier_t unavailable, disabling this test...\n", __func__);
+ return 0;
+ }
+
-+ return ret;
++int bench_futex2_wake_parallel(int argc __maybe_unused, const char **argv __maybe_unused)
++{
++ pr_err("%s: pthread_barrier_t unavailable, disabling this test...\n", __func__);
++ return 0;
+}
+ #else /* HAVE_PTHREAD_BARRIER */
+ /* For the CLR_() macros */
+ #include <string.h>
+@@ -48,7 +54,7 @@ static unsigned int nwakes = 1;
+ static u_int32_t futex = 0;
+
+ static pthread_t *blocked_worker;
+-static bool done = false, silent = false, fshared = false;
++static bool done = false, silent = false, fshared = false, futex2 = false;
+ static unsigned int nblocked_threads = 0, nwaking_threads = 0;
+ static pthread_mutex_t thread_lock;
+ static pthread_cond_t thread_parent, thread_worker;
+@@ -79,7 +85,11 @@ static void *waking_workerfn(void *arg)
+
+ gettimeofday(&start, NULL);
+
+- waker->nwoken = futex_wake(&futex, nwakes, futex_flag);
++ if (!futex2)
++ waker->nwoken = futex_wake(&futex, nwakes, futex_flag);
++ else
++ waker->nwoken = futex2_wake(&futex, nwakes, futex_flag);
+
- /**
- * futex_wait_setup() - Prepare to wait on a futex
- * @uaddr: the futex userspace address
-@@ -2654,7 +2687,6 @@ static void futex_wait_queue_me(struct futex_hash_bucket *hb, struct futex_q *q,
- static int futex_wait_setup(u32 __user *uaddr, u32 val, unsigned int flags,
- struct futex_q *q, struct futex_hash_bucket **hb)
- {
-- u32 uval;
- int ret;
-
- /*
-@@ -2675,38 +2707,19 @@ static int futex_wait_setup(u32 __user *uaddr, u32 val, unsigned int flags,
- * absorb a wakeup if *uaddr does not match the desired values
- * while the syscall executes.
- */
--retry:
-- ret = get_futex_key(uaddr, flags & FLAGS_SHARED, &q->key, FUTEX_READ);
-- if (unlikely(ret != 0))
-- return ret;
--
--retry_private:
-- *hb = queue_lock(q);
-+ do {
-+ ret = get_futex_key(uaddr, flags & FLAGS_SHARED,
-+ &q->key, FUTEX_READ);
-+ if (unlikely(ret != 0))
-+ return ret;
+ if (waker->nwoken != nwakes)
+ warnx("couldn't wakeup all tasks (%d/%d)",
+ waker->nwoken, nwakes);
+@@ -130,8 +140,13 @@ static void *blocked_workerfn(void *arg __maybe_unused)
+ pthread_mutex_unlock(&thread_lock);
-- ret = get_futex_value_locked(&uval, uaddr);
-+ ret = __futex_wait_setup(uaddr, val, flags, q, hb);
+ while (1) { /* handle spurious wakeups */
+- if (futex_wait(&futex, 0, NULL, futex_flag) != EINTR)
+- break;
++ if (!futex2) {
++ if (futex_wait(&futex, 0, NULL, futex_flag) != EINTR)
++ break;
++ } else {
++ if (futex2_wait(&futex, 0, futex_flag, NULL) != EINTR)
++ break;
++ }
+ }
-- if (ret) {
-- queue_unlock(*hb);
--
-- ret = get_user(uval, uaddr);
-+ /* Drop key reference if retry or error. */
- if (ret)
-- goto out;
-+ put_futex_key(&q->key);
-+ } while (ret > 0);
-
-- if (!(flags & FLAGS_SHARED))
-- goto retry_private;
--
-- put_futex_key(&q->key);
-- goto retry;
-- }
--
-- if (uval != val) {
-- queue_unlock(*hb);
-- ret = -EWOULDBLOCK;
-- }
--
--out:
-- if (ret)
-- put_futex_key(&q->key);
- return ret;
+ pthread_exit(NULL);
+@@ -218,7 +233,7 @@ static void toggle_done(int sig __maybe_unused,
+ done = true;
}
---
-2.28.0
-
-From 539862895e53b9a774f3a2271d1e7db57879d0d7 Mon Sep 17 00:00:00 2001
-From: Gabriel Krisman Bertazi <krisman@collabora.com>
-Date: Mon, 8 Jul 2019 09:44:09 -0400
-Subject: [PATCH 11/13] futex: Implement FUTEX_WAIT_MULTIPLE
-
-This is a new futex operation to allow a thread to wait on several
-futexes at the same time, and wake up on any of them. In a sense, it
-implements one of the features that was supported by pooling on the old
-FUTEX_FD interface.
-
-My use case for this feature lies in Wine, where we want to implement a
-similar function available in Windows, mainly for event handling. The
-wine folks have an implementation of the userspace side using eventfd,
-but it suffers from bad performance, as shown in the measurements below.
-
-Technically, the old FUTEX_WAIT implementation can be easily
-reimplemented using do_futex_wait_multiple, with a count one, and I have
-a patch demonstrating how it works. I'm not proposing it, since futex
-is such a tricky code, that I'd be more confortable to have
-FUTEX_WAIT_MULTIPLE running upstream for a couple development cycles,
-before considering modifying FUTEX_WAIT.
-
-This was tested using three mechanisms:
-
-1) By reimplementing FUTEX_WAIT in terms of FUTEX_WAIT_MULTIPLE and
-running tools/testing/selftests/futex and a full linux distro on top of
-this kernel.
-
-2) By an example code that exercises the FUTEX_WAIT_MULTIPLE path on a
-multi thread, event handling setup.
-
-3) By running the Wine fsync implementation and executing multi-threaded
-applications, in particular modern games on top of the implementation.
-
-Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
-Signed-off-by: Steven Noonan <steven@valvesoftware.com>
-Signed-off-by: Pierre-Loup A. Griffais <pgriffais@valvesoftware.com>
-Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com>
----
- include/uapi/linux/futex.h | 7 ++
- kernel/futex.c | 159 ++++++++++++++++++++++++++++++++++++-
- 2 files changed, 162 insertions(+), 4 deletions(-)
-
-diff --git a/include/uapi/linux/futex.h b/include/uapi/linux/futex.h
-index 35a5bf1cd41b..aefb0b83b784 100644
---- a/include/uapi/linux/futex.h
-+++ b/include/uapi/linux/futex.h
-@@ -21,6 +21,7 @@
- #define FUTEX_WAKE_BITSET 10
- #define FUTEX_WAIT_REQUEUE_PI 11
- #define FUTEX_CMP_REQUEUE_PI 12
-+#define FUTEX_WAIT_MULTIPLE 13
-
- #define FUTEX_PRIVATE_FLAG 128
- #define FUTEX_CLOCK_REALTIME 256
-@@ -190,4 +191,10 @@ struct robust_list_head {
- (((op & 0xf) << 28) | ((cmp & 0xf) << 24) \
- | ((oparg & 0xfff) << 12) | (cmparg & 0xfff))
-
-+struct futex_wait_block {
-+ __u32 __user *uaddr;
-+ __u32 val;
-+ __u32 bitset;
-+};
-+
- #endif /* _UAPI_LINUX_FUTEX_H */
-diff --git a/kernel/futex.c b/kernel/futex.c
-index f05349def492..775f780a96c4 100644
---- a/kernel/futex.c
-+++ b/kernel/futex.c
-@@ -166,6 +166,7 @@ static int __read_mostly futex_cmpxchg_enabled;
- #endif
- #define FLAGS_CLOCKRT 0x02
- #define FLAGS_HAS_TIMEOUT 0x04
-+#define FLAGS_WAKE_MULTIPLE 0x08
-
- /*
- * Priority Inheritance state:
-@@ -2723,6 +2724,148 @@ static int futex_wait_setup(u32 __user *uaddr, u32 val, unsigned int flags,
+-int bench_futex_wake_parallel(int argc, const char **argv)
++static int bench_futex_wake_parallel_common(int argc, const char **argv)
+ {
+ int ret = 0;
+ unsigned int i, j;
+@@ -262,7 +277,9 @@ int bench_futex_wake_parallel(int argc, const char **argv)
+ if (!blocked_worker)
+ err(EXIT_FAILURE, "calloc");
+
+- if (!fshared)
++ if (futex2)
++ futex_flag = FUTEX_32 | (fshared * FUTEX_SHARED_FLAG);
++ else if (!fshared)
+ futex_flag = FUTEX_PRIVATE_FLAG;
+
+ printf("Run summary [PID %d]: blocking on %d threads (at [%s] "
+@@ -322,4 +339,16 @@ int bench_futex_wake_parallel(int argc, const char **argv)
+ free(blocked_worker);
return ret;
}
-
-+static int do_futex_wait_multiple(struct futex_wait_block *wb,
-+ u32 count, unsigned int flags,
-+ ktime_t *abs_time)
-+{
-+
-+ struct hrtimer_sleeper timeout, *to;
-+ struct futex_hash_bucket *hb;
-+ struct futex_q *qs = NULL;
-+ int ret;
-+ int i;
-+
-+ qs = kcalloc(count, sizeof(struct futex_q), GFP_KERNEL);
-+ if (!qs)
-+ return -ENOMEM;
-+
-+ to = futex_setup_timer(abs_time, &timeout, flags,
-+ current->timer_slack_ns);
-+ retry:
-+ for (i = 0; i < count; i++) {
-+ qs[i].key = FUTEX_KEY_INIT;
-+ qs[i].bitset = wb[i].bitset;
-+
-+ ret = get_futex_key(wb[i].uaddr, flags & FLAGS_SHARED,
-+ &qs[i].key, FUTEX_READ);
-+ if (unlikely(ret != 0)) {
-+ for (--i; i >= 0; i--)
-+ put_futex_key(&qs[i].key);
-+ goto out;
-+ }
-+ }
-+
-+ set_current_state(TASK_INTERRUPTIBLE);
-+
-+ for (i = 0; i < count; i++) {
-+ ret = __futex_wait_setup(wb[i].uaddr, wb[i].val,
-+ flags, &qs[i], &hb);
-+ if (ret) {
-+ /* Drop the failed key directly. keys 0..(i-1)
-+ * will be put by unqueue_me. */
-+ put_futex_key(&qs[i].key);
-+
-+ /* Undo the partial work we did. */
-+ for (--i; i >= 0; i--)
-+ unqueue_me(&qs[i]);
+
-+ __set_current_state(TASK_RUNNING);
-+ if (ret > 0)
-+ goto retry;
-+ goto out;
-+ }
-+
-+ /* We can't hold to the bucket lock when dealing with
-+ * the next futex. Queue ourselves now so we can unlock
-+ * it before moving on. */
-+ queue_me(&qs[i], hb);
-+ }
-+
-+ if (to)
-+ hrtimer_start_expires(&to->timer, HRTIMER_MODE_ABS);
-+
-+ /* There is no easy to way to check if we are wake already on
-+ * multiple futexes without waking through each one of them. So
-+ * just sleep and let the scheduler handle it.
-+ */
-+ if (!to || to->task)
-+ freezable_schedule();
-+
-+ __set_current_state(TASK_RUNNING);
-+
-+ ret = -ETIMEDOUT;
-+ /* If we were woken (and unqueued), we succeeded. */
-+ for (i = 0; i < count; i++)
-+ if (!unqueue_me(&qs[i]))
-+ ret = i;
-+
-+ /* Succeed wakeup */
-+ if (ret >= 0)
-+ goto out;
-+
-+ /* Woken by triggered timeout */
-+ if (to && !to->task)
-+ goto out;
-+
-+ /*
-+ * We expect signal_pending(current), but we might be the
-+ * victim of a spurious wakeup as well.
-+ */
-+ if (!signal_pending(current))
-+ goto retry;
-+
-+ ret = -ERESTARTSYS;
-+ if (!abs_time)
-+ goto out;
-+
-+ ret = -ERESTART_RESTARTBLOCK;
-+ out:
-+ if (to) {
-+ hrtimer_cancel(&to->timer);
-+ destroy_hrtimer_on_stack(&to->timer);
-+ }
-+
-+ kfree(qs);
-+ return ret;
++int bench_futex_wake_parallel(int argc, const char **argv)
++{
++ return bench_futex_wake_parallel_common(argc, argv);
+}
+
-+static int futex_wait_multiple(u32 __user *uaddr, unsigned int flags,
-+ u32 count, ktime_t *abs_time)
++int bench_futex2_wake_parallel(int argc, const char **argv)
+{
-+ struct futex_wait_block *wb;
-+ struct restart_block *restart;
-+ int ret;
-+
-+ if (!count)
-+ return -EINVAL;
-+
-+ wb = kcalloc(count, sizeof(struct futex_wait_block), GFP_KERNEL);
-+ if (!wb)
-+ return -ENOMEM;
-+
-+ if (copy_from_user(wb, uaddr,
-+ count * sizeof(struct futex_wait_block))) {
-+ ret = -EFAULT;
-+ goto out;
-+ }
-+
-+ ret = do_futex_wait_multiple(wb, count, flags, abs_time);
-+
-+ if (ret == -ERESTART_RESTARTBLOCK) {
-+ restart = &current->restart_block;
-+ restart->fn = futex_wait_restart;
-+ restart->futex.uaddr = uaddr;
-+ restart->futex.val = count;
-+ restart->futex.time = *abs_time;
-+ restart->futex.flags = (flags | FLAGS_HAS_TIMEOUT |
-+ FLAGS_WAKE_MULTIPLE);
-+ }
-+
-+out:
-+ kfree(wb);
-+ return ret;
++ futex2 = true;
++ return bench_futex_wake_parallel_common(argc, argv);
+}
+
- static int futex_wait(u32 __user *uaddr, unsigned int flags, u32 val,
- ktime_t *abs_time, u32 bitset)
- {
-@@ -2800,6 +2943,10 @@ static long futex_wait_restart(struct restart_block *restart)
- }
- restart->fn = do_no_restart_syscall;
+ #endif /* HAVE_PTHREAD_BARRIER */
+diff --git a/tools/perf/bench/futex-wake.c b/tools/perf/bench/futex-wake.c
+index 2dfcef3e3..b98b84e7b 100644
+--- a/tools/perf/bench/futex-wake.c
++++ b/tools/perf/bench/futex-wake.c
+@@ -46,6 +46,9 @@ static struct stats waketime_stats, wakeup_stats;
+ static unsigned int threads_starting, nthreads = 0;
+ static int futex_flag = 0;
-+ if (restart->futex.flags & FLAGS_WAKE_MULTIPLE)
-+ return (long)futex_wait_multiple(uaddr, restart->futex.flags,
-+ restart->futex.val, tp);
++/* Should we use futex2 API? */
++static bool futex2 = false;
+
- return (long)futex_wait(uaddr, restart->futex.flags,
- restart->futex.val, tp, restart->futex.bitset);
- }
-@@ -3843,6 +3990,8 @@ long do_futex(u32 __user *uaddr, int op, u32 val, ktime_t *timeout,
- uaddr2);
- case FUTEX_CMP_REQUEUE_PI:
- return futex_requeue(uaddr, flags, uaddr2, val, val2, &val3, 1);
-+ case FUTEX_WAIT_MULTIPLE:
-+ return futex_wait_multiple(uaddr, flags, val, timeout);
+ static const struct option options[] = {
+ OPT_UINTEGER('t', "threads", &nthreads, "Specify amount of threads"),
+ OPT_UINTEGER('w', "nwakes", &nwakes, "Specify amount of threads to wake at once"),
+@@ -69,8 +72,13 @@ static void *workerfn(void *arg __maybe_unused)
+ pthread_mutex_unlock(&thread_lock);
+
+ while (1) {
+- if (futex_wait(&futex1, 0, NULL, futex_flag) != EINTR)
+- break;
++ if (!futex2) {
++ if (futex_wait(&futex1, 0, NULL, futex_flag) != EINTR)
++ break;
++ } else {
++ if (futex2_wait(&futex1, 0, futex_flag, NULL) != EINTR)
++ break;
++ }
}
- return -ENOSYS;
+
+ pthread_exit(NULL);
+@@ -118,7 +126,7 @@ static void toggle_done(int sig __maybe_unused,
+ done = true;
}
-@@ -3859,7 +4008,8 @@ SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,
-
- if (utime && (cmd == FUTEX_WAIT || cmd == FUTEX_LOCK_PI ||
- cmd == FUTEX_WAIT_BITSET ||
-- cmd == FUTEX_WAIT_REQUEUE_PI)) {
-+ cmd == FUTEX_WAIT_REQUEUE_PI ||
-+ cmd == FUTEX_WAIT_MULTIPLE)) {
- if (unlikely(should_fail_futex(!(op & FUTEX_PRIVATE_FLAG))))
- return -EFAULT;
- if (get_timespec64(&ts, utime))
-@@ -3868,7 +4018,7 @@ SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,
- return -EINVAL;
- t = timespec64_to_ktime(ts);
-- if (cmd == FUTEX_WAIT)
-+ if (cmd == FUTEX_WAIT || cmd == FUTEX_WAIT_MULTIPLE)
- t = ktime_add_safe(ktime_get(), t);
- else if (!(op & FUTEX_CLOCK_REALTIME))
- t = timens_ktime_to_host(CLOCK_MONOTONIC, t);
-@@ -4055,14 +4205,15 @@ SYSCALL_DEFINE6(futex_time32, u32 __user *, uaddr, int, op, u32, val,
-
- if (utime && (cmd == FUTEX_WAIT || cmd == FUTEX_LOCK_PI ||
- cmd == FUTEX_WAIT_BITSET ||
-- cmd == FUTEX_WAIT_REQUEUE_PI)) {
-+ cmd == FUTEX_WAIT_REQUEUE_PI ||
-+ cmd == FUTEX_WAIT_MULTIPLE)) {
- if (get_old_timespec32(&ts, utime))
- return -EFAULT;
- if (!timespec64_valid(&ts))
- return -EINVAL;
+-int bench_futex_wake(int argc, const char **argv)
++static int bench_futex_wake_common(int argc, const char **argv)
+ {
+ int ret = 0;
+ unsigned int i, j;
+@@ -148,7 +156,9 @@ int bench_futex_wake(int argc, const char **argv)
+ if (!worker)
+ err(EXIT_FAILURE, "calloc");
+
+- if (!fshared)
++ if (futex2)
++ futex_flag = FUTEX_32 | (fshared * FUTEX_SHARED_FLAG);
++ else if (!fshared)
+ futex_flag = FUTEX_PRIVATE_FLAG;
+
+ printf("Run summary [PID %d]: blocking on %d threads (at [%s] futex %p), "
+@@ -181,8 +191,13 @@ int bench_futex_wake(int argc, const char **argv)
+ /* Ok, all threads are patiently blocked, start waking folks up */
+ gettimeofday(&start, NULL);
+ while (nwoken != nthreads)
+- nwoken += futex_wake(&futex1, nwakes, futex_flag);
++ if (!futex2) {
++ nwoken += futex_wake(&futex1, nwakes, futex_flag);
++ } else {
++ nwoken += futex2_wake(&futex1, nwakes, futex_flag);
++ }
+ gettimeofday(&end, NULL);
++
+ timersub(&end, &start, &runtime);
- t = timespec64_to_ktime(ts);
-- if (cmd == FUTEX_WAIT)
-+ if (cmd == FUTEX_WAIT || cmd == FUTEX_WAIT_MULTIPLE)
- t = ktime_add_safe(ktime_get(), t);
- else if (!(op & FUTEX_CLOCK_REALTIME))
- t = timens_ktime_to_host(CLOCK_MONOTONIC, t);
---
-2.28.0
-
-From f56b85af005d46e9ef920a6728e61f7c47cf561e Mon Sep 17 00:00:00 2001
-From: Gabriel Krisman Bertazi <krisman@collabora.com>
-Date: Mon, 2 Nov 2020 18:50:26 -0500
-Subject: [PATCH 12/13] futex: Change WAIT_MULTIPLE opcode to 31
-
-Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com>
----
- include/uapi/linux/futex.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/uapi/linux/futex.h b/include/uapi/linux/futex.h
-index aefb0b83b784..fe2b67ac0c5e 100644
---- a/include/uapi/linux/futex.h
-+++ b/include/uapi/linux/futex.h
-@@ -21,7 +21,7 @@
- #define FUTEX_WAKE_BITSET 10
- #define FUTEX_WAIT_REQUEUE_PI 11
- #define FUTEX_CMP_REQUEUE_PI 12
--#define FUTEX_WAIT_MULTIPLE 13
-+#define FUTEX_WAIT_MULTIPLE 31
-
- #define FUTEX_PRIVATE_FLAG 128
- #define FUTEX_CLOCK_REALTIME 256
---
-2.28.0
-
-From 022e2f888a50fb8d062e26bc385abf02c0be84a3 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andr=C3=A9=20Almeida?= <andrealmeid@collabora.com>
-Date: Mon, 16 Nov 2020 21:22:21 -0300
-Subject: [PATCH 13/13] futex2: Add sysfs entry for syscall numbers
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: André Almeida <andrealmeid@collabora.com>
----
- kernel/futex2.c | 42 ++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 42 insertions(+)
-
-diff --git a/kernel/futex2.c b/kernel/futex2.c
-index ae743ddf223e..4bdff8bfc78d 100644
---- a/kernel/futex2.c
-+++ b/kernel/futex2.c
-@@ -742,6 +742,48 @@ SYSCALL_DEFINE3(futex_wake, void __user *, uaddr, unsigned int, nr_wake,
+ update_stats(&wakeup_stats, nwoken);
+@@ -212,3 +227,14 @@ int bench_futex_wake(int argc, const char **argv)
+ free(worker);
return ret;
}
-
-+static ssize_t wait_show(struct kobject *kobj, struct kobj_attribute *attr,
-+ char *buf)
-+{
-+ return sprintf(buf, "%u\n", __NR_futex_wait);
+
++int bench_futex_wake(int argc, const char **argv)
++{
++ return bench_futex_wake_common(argc, argv);
+}
-+static struct kobj_attribute futex2_wait_attr = __ATTR_RO(wait);
+
-+static ssize_t wake_show(struct kobject *kobj, struct kobj_attribute *attr,
-+ char *buf)
++int bench_futex2_wake(int argc, const char **argv)
+{
-+ return sprintf(buf, "%u\n", __NR_futex_wake);
-+
++ futex2 = true;
++ return bench_futex_wake_common(argc, argv);
+}
-+static struct kobj_attribute futex2_wake_attr = __ATTR_RO(wake);
+diff --git a/tools/perf/bench/futex.h b/tools/perf/bench/futex.h
+index 31b53cc7d..5111799b5 100644
+--- a/tools/perf/bench/futex.h
++++ b/tools/perf/bench/futex.h
+@@ -86,4 +86,21 @@ futex_cmp_requeue(u_int32_t *uaddr, u_int32_t val, u_int32_t *uaddr2, int nr_wak
+ return futex(uaddr, FUTEX_CMP_REQUEUE, nr_wake, nr_requeue, uaddr2,
+ val, opflags);
+ }
+
-+static ssize_t waitv_show(struct kobject *kobj, struct kobj_attribute *attr,
-+ char *buf)
++/*
++ * wait for uaddr if (*uaddr == val)
++ */
++static inline int futex2_wait(volatile void *uaddr, unsigned long val,
++ unsigned long flags, struct timespec *timo)
+{
-+ return sprintf(buf, "%u\n", __NR_futex_waitv);
-+
++ return syscall(__NR_futex_wait, uaddr, val, flags, timo);
+}
-+static struct kobj_attribute futex2_waitv_attr = __ATTR_RO(waitv);
-+
-+static struct attribute *futex2_sysfs_attrs[] = {
-+ &futex2_wait_attr.attr,
-+ &futex2_wake_attr.attr,
-+ &futex2_waitv_attr.attr,
-+ NULL,
-+};
-+
-+static const struct attribute_group futex2_sysfs_attr_group = {
-+ .attrs = futex2_sysfs_attrs,
-+ .name = "futex2",
-+};
+
-+static int __init futex2_sysfs_init(void)
++/*
++ * wake nr futexes waiting for uaddr
++ */
++static inline int futex2_wake(volatile void *uaddr, unsigned int nr, unsigned long flags)
+{
-+ return sysfs_create_group(kernel_kobj, &futex2_sysfs_attr_group);
++ return syscall(__NR_futex_wake, uaddr, nr, flags);
+}
-+subsys_initcall(futex2_sysfs_init);
+ #endif /* _FUTEX_H */
+diff --git a/tools/perf/builtin-bench.c b/tools/perf/builtin-bench.c
+index 62a7b7420..200ecacad 100644
+--- a/tools/perf/builtin-bench.c
++++ b/tools/perf/builtin-bench.c
+@@ -12,10 +12,11 @@
+ *
+ * sched ... scheduler and IPC performance
+ * syscall ... System call performance
+- * mem ... memory access performance
+- * numa ... NUMA scheduling and MM performance
+- * futex ... Futex performance
+- * epoll ... Event poll performance
++ * mem ... memory access performance
++ * numa ... NUMA scheduling and MM performance
++ * futex ... Futex performance
++ * futex2 ... Futex2 performance
++ * epoll ... Event poll performance
+ */
+ #include <subcmd/parse-options.h>
+ #include "builtin.h"
+@@ -75,6 +76,13 @@ static struct bench futex_benchmarks[] = {
+ { NULL, NULL, NULL }
+ };
+
++static struct bench futex2_benchmarks[] = {
++ { "hash", "Benchmark for futex2 hash table", bench_futex2_hash },
++ { "wake", "Benchmark for futex2 wake calls", bench_futex2_wake },
++ { "wake-parallel", "Benchmark for parallel futex2 wake calls", bench_futex2_wake_parallel },
++ { NULL, NULL, NULL }
++};
+
- static int __init futex2_init(void)
- {
- int i;
+ #ifdef HAVE_EVENTFD_SUPPORT
+ static struct bench epoll_benchmarks[] = {
+ { "wait", "Benchmark epoll concurrent epoll_waits", bench_epoll_wait },
+@@ -105,6 +113,7 @@ static struct collection collections[] = {
+ { "numa", "NUMA scheduling and MM benchmarks", numa_benchmarks },
+ #endif
+ {"futex", "Futex stressing benchmarks", futex_benchmarks },
++ {"futex2", "Futex2 stressing benchmarks", futex2_benchmarks },
+ #ifdef HAVE_EVENTFD_SUPPORT
+ {"epoll", "Epoll stressing benchmarks", epoll_benchmarks },
+ #endif
--
-2.28.0
+2.29.2
diff --git a/SOURCES/iommu-tegra-smmu-Fix-TLB-line-for-Tegra210.patch b/SOURCES/iommu-tegra-smmu-Fix-TLB-line-for-Tegra210.patch
deleted file mode 100644
index 381fb36..0000000
--- a/SOURCES/iommu-tegra-smmu-Fix-TLB-line-for-Tegra210.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From c461469e12073007ac4bbddd3a4830632c065738 Mon Sep 17 00:00:00 2001
-From: Peter Robinson <pbrobinson@gmail.com>
-Date: Mon, 28 Sep 2020 11:34:09 +0100
-Subject: [PATCH] These two patches fix ACTIVE_TLB_LINES field setting in
- tegra-smmu driver for Tegra210 platforms.
-
-This resend in series groups two previous seperate changes that're
-corelated, being pointed out by Thierry. Also adding his Acked-by.
-
-Nicolin Chen (2):
- iommu/tegra-smmu: Fix tlb_mask
- memory: tegra: Correct num_tlb_lines for tegra210
-
-Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
----
- drivers/iommu/tegra-smmu.c | 2 +-
- drivers/memory/tegra/tegra210.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c
-index 7426b7666e2b..d5f1384ef6a1 100644
---- a/drivers/iommu/tegra-smmu.c
-+++ b/drivers/iommu/tegra-smmu.c
-@@ -1022,7 +1022,7 @@ struct tegra_smmu *tegra_smmu_probe(struct device *dev,
- smmu->pfn_mask = BIT_MASK(mc->soc->num_address_bits - PAGE_SHIFT) - 1;
- dev_dbg(dev, "address bits: %u, PFN mask: %#lx\n",
- mc->soc->num_address_bits, smmu->pfn_mask);
-- smmu->tlb_mask = (smmu->soc->num_tlb_lines << 1) - 1;
-+ smmu->tlb_mask = (1 << fls(smmu->soc->num_tlb_lines)) - 1;
- dev_dbg(dev, "TLB lines: %u, mask: %#lx\n", smmu->soc->num_tlb_lines,
- smmu->tlb_mask);
-
-diff --git a/drivers/memory/tegra/tegra210.c b/drivers/memory/tegra/tegra210.c
-index cc0482434c75..7212d1d7b348 100644
---- a/drivers/memory/tegra/tegra210.c
-+++ b/drivers/memory/tegra/tegra210.c
-@@ -1073,7 +1073,7 @@ static const struct tegra_smmu_soc tegra210_smmu_soc = {
- .num_groups = ARRAY_SIZE(tegra210_groups),
- .supports_round_robin_arbitration = true,
- .supports_request_limit = true,
-- .num_tlb_lines = 32,
-+ .num_tlb_lines = 48,
- .num_asids = 128,
- };
-
---
-2.26.2
-
diff --git a/SOURCES/iwlwifi-make-some-killer-wireless-ac-1550-cards-work-again.patch b/SOURCES/iwlwifi-make-some-killer-wireless-ac-1550-cards-work-again.patch
deleted file mode 100644
index 8bbbd79..0000000
--- a/SOURCES/iwlwifi-make-some-killer-wireless-ac-1550-cards-work-again.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From MAILER-DAEMON Wed Jul 15 12:54:09 2020
-From: Alessio Bonfiglio <alessio.bonfiglio@mail.polimi.it>
-To: linux-wireless@vger.kernel.org
-Cc: Alessio Bonfiglio <alessio.bonfiglio@mail.polimi.it>, Johannes Berg <johannes.berg@intel.com>, Emmanuel Grumbach <emmanuel.grumbach@intel.com>, Luca Coelho <luciano.coelho@intel.com>, Intel Linux Wireless <linuxwifi@intel.com>
-Subject: [PATCH v2] iwlwifi: Make some Killer Wireless-AC 1550 cards work again
-Date: Tue, 14 Jul 2020 11:19:11 +0200
-Message-Id: <20200714091911.4442-1-alessio.bonfiglio@mail.polimi.it>
-In-Reply-To: <87imeqcwbt.fsf@tynnyri.adurom.net>
-References: <87imeqcwbt.fsf@tynnyri.adurom.net>
-Sender: linux-wireless-owner@vger.kernel.org
-List-ID: <linux-wireless.vger.kernel.org>
-X-Mailing-List: linux-wireless@vger.kernel.org
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 7bit
-
-Fix the regression introduced by commit c8685937d07f ("iwlwifi: move
-pu devices to new table") by adding the ids and the configurations of
-two missing Killer 1550 cards in order to configure and let them work
-correctly again (following the new table convention).
-Resolve bug 208141 ("Wireless ac 9560 not working kernel 5.7.2",
-https://bugzilla.kernel.org/show_bug.cgi?id=208141).
-
-Fixes: c8685937d07f ("iwlwifi: move pu devices to new table")
-Signed-off-by: Alessio Bonfiglio <alessio.bonfiglio@mail.polimi.it>
----
- drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
-index 65d65c6baf4c..e02bafb8921f 100644
---- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
-+++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
-@@ -582,6 +582,8 @@ static const struct iwl_dev_info iwl_dev_info_table[] = {
- IWL_DEV_INFO(0x30DC, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name),
- IWL_DEV_INFO(0x31DC, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name),
- IWL_DEV_INFO(0x31DC, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name),
-+ IWL_DEV_INFO(0xA370, 0x1551, iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name),
-+ IWL_DEV_INFO(0xA370, 0x1552, iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name),
-
- IWL_DEV_INFO(0x271C, 0x0214, iwl9260_2ac_cfg, iwl9260_1_name),
-
---
-2.27.0
-
-
diff --git a/SOURCES/kernel-aarch64-debug-fedora.config b/SOURCES/kernel-aarch64-debug-fedora.config
index 8ff33f4..8e7f2d8 100644
--- a/SOURCES/kernel-aarch64-debug-fedora.config
+++ b/SOURCES/kernel-aarch64-debug-fedora.config
@@ -1,5 +1,6 @@
# arm64
# 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
+# beginning with "crc=". If the string "crc=0" is found, the
# CONFIG_60XX_WDT is not set
CONFIG_64BIT=y
CONFIG_6LOWPAN_DEBUGFS=y
@@ -56,6 +57,7 @@ CONFIG_ACPI_CUSTOM_METHOD=m
# CONFIG_ACPI_DEBUGGER is not set
CONFIG_ACPI_DEBUG=y
CONFIG_ACPI_DOCK=y
+# CONFIG_ACPI_DPTF is not set
CONFIG_ACPI_EC_DEBUGFS=y
CONFIG_ACPI_FAN=y
CONFIG_ACPI_HED=y
@@ -157,6 +159,7 @@ CONFIG_ADUX1020=m
# CONFIG_ADXL345_SPI is not set
CONFIG_ADXL372_I2C=m
CONFIG_ADXL372_SPI=m
+CONFIG_ADXRS290=m
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -287,11 +290,13 @@ CONFIG_ARCH_TEGRA_132_SOC=y
CONFIG_ARCH_TEGRA_186_SOC=y
CONFIG_ARCH_TEGRA_194_SOC=y
CONFIG_ARCH_TEGRA_210_SOC=y
+# CONFIG_ARCH_TEGRA_234_SOC is not set
CONFIG_ARCH_TEGRA=y
CONFIG_ARCH_THUNDER2=y
CONFIG_ARCH_THUNDER=y
# CONFIG_ARCH_UNIPHIER is not set
CONFIG_ARCH_VEXPRESS=y
+# CONFIG_ARCH_VISCONTI is not set
CONFIG_ARCH_XGENE=y
# CONFIG_ARCH_ZX is not set
CONFIG_ARCH_ZYNQMP=y
@@ -312,6 +317,7 @@ CONFIG_ARM64_ERRATUM_1286807=y
CONFIG_ARM64_ERRATUM_1319367=y
CONFIG_ARM64_ERRATUM_1418040=y
CONFIG_ARM64_ERRATUM_1463225=y
+CONFIG_ARM64_ERRATUM_1508412=y
CONFIG_ARM64_ERRATUM_1530923=y
CONFIG_ARM64_ERRATUM_1542419=y
CONFIG_ARM64_ERRATUM_819472=y
@@ -326,6 +332,7 @@ CONFIG_ARM64_ERRATUM_858921=y
# CONFIG_ARM64_FORCE_52BIT is not set
CONFIG_ARM64_HW_AFDBM=y
CONFIG_ARM64_LSE_ATOMICS=y
+CONFIG_ARM64_MTE=y
CONFIG_ARM64_PA_BITS_48=y
CONFIG_ARM64_PAN=y
CONFIG_ARM64_PMEM=y
@@ -364,6 +371,7 @@ CONFIG_ARM_CCI_PMU=m
CONFIG_ARM_CCI=y
CONFIG_ARM_CCN=y
# CONFIG_ARM_CHARLCD is not set
+# CONFIG_ARM_CMN is not set
CONFIG_ARM_CPUIDLE=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8
@@ -406,6 +414,7 @@ CONFIG_ARM_SMC_WATCHDOG=m
CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT=y
# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set
CONFIG_ARM_SMMU_V3_PMU=m
+CONFIG_ARM_SMMU_V3_SVA=y
CONFIG_ARM_SMMU_V3=y
CONFIG_ARM_SMMU=y
CONFIG_ARM_SP805_WATCHDOG=m
@@ -418,6 +427,7 @@ CONFIG_ARM_TEGRA_DEVFREQ=m
CONFIG_ARM_TIMER_SP804=y
CONFIG_ARMV8_DEPRECATED=y
# CONFIG_AS3935 is not set
+# CONFIG_AS73211 is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE=m
CONFIG_ASYNC_RAID6_TEST=m
@@ -443,9 +453,11 @@ CONFIG_ATH10K_SNOC=m
# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
+CONFIG_ATH11K_AHB=m
CONFIG_ATH11K_DEBUGFS=y
# CONFIG_ATH11K_DEBUG is not set
CONFIG_ATH11K=m
+CONFIG_ATH11K_PCI=m
# CONFIG_ATH11K_SPECTRAL is not set
# CONFIG_ATH11K_TRACING is not set
CONFIG_ATH5K_DEBUG=y
@@ -556,6 +568,7 @@ CONFIG_BACKLIGHT_ARCXCNN=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=m
CONFIG_BACKLIGHT_GPIO=m
+CONFIG_BACKLIGHT_KTD253=m
CONFIG_BACKLIGHT_LED=m
# CONFIG_BACKLIGHT_LM3630A is not set
# CONFIG_BACKLIGHT_LM3639 is not set
@@ -591,7 +604,7 @@ CONFIG_BATTERY_CW2015=m
CONFIG_BATTERY_GAUGE_LTC2941=m
# CONFIG_BATTERY_LEGO_EV3 is not set
CONFIG_BATTERY_MAX17040=m
-# CONFIG_BATTERY_MAX17042 is not set
+CONFIG_BATTERY_MAX17042=m
# CONFIG_BATTERY_MAX1721X is not set
CONFIG_BATTERY_SBS=m
CONFIG_BAYCOM_EPP=m
@@ -731,6 +744,8 @@ CONFIG_BPF_JIT=y
CONFIG_BPF_KPROBE_OVERRIDE=y
CONFIG_BPF_LIRC_MODE2=y
CONFIG_BPF_LSM=y
+CONFIG_BPF_PRELOAD_UMD=m
+CONFIG_BPF_PRELOAD=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -865,6 +880,7 @@ CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_ISOTP is not set
# CONFIG_CAN_J1939 is not set
# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
@@ -874,6 +890,7 @@ CONFIG_CAN_M_CAN=m
# CONFIG_CAN_M_CAN_PLATFORM is not set
# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
+# CONFIG_CAN_MCP251XFD is not set
CONFIG_CAN_MCP251X=m
CONFIG_CAN_PEAK_PCIEC=y
CONFIG_CAN_PEAK_PCIEFD=m
@@ -968,6 +985,7 @@ CONFIG_CHARGER_BD99954=m
CONFIG_CHARGER_BQ24735=m
CONFIG_CHARGER_BQ2515X=m
# CONFIG_CHARGER_BQ25890 is not set
+CONFIG_CHARGER_BQ25980=m
CONFIG_CHARGER_CROS_USBPD=m
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
# CONFIG_CHARGER_GPIO is not set
@@ -986,7 +1004,8 @@ CONFIG_CHARLCD_BL_FLASH=y
# CONFIG_CHARLCD_BL_OFF is not set
# CONFIG_CHARLCD_BL_ON is not set
CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_CHELSIO_IPSEC_INLINE=y
+CONFIG_CHELSIO_INLINE_CRYPTO=y
+CONFIG_CHELSIO_IPSEC_INLINE=m
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -994,7 +1013,7 @@ CONFIG_CHELSIO_T4_DCB=y
# CONFIG_CHELSIO_T4_FCOE is not set
CONFIG_CHELSIO_T4=m
CONFIG_CHELSIO_T4VF=m
-CONFIG_CHELSIO_TLS_DEVICE=y
+CONFIG_CHELSIO_TLS_DEVICE=m
CONFIG_CHR_DEV_SCH=m
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_ST=m
@@ -1026,8 +1045,19 @@ CONFIG_CLK_IMX8MN=y
CONFIG_CLK_IMX8MQ=y
CONFIG_CLK_IMX8QXP=y
CONFIG_CLK_LS1028A_PLLDIG=y
+CONFIG_CLK_PX30=y
CONFIG_CLK_QORIQ=y
CONFIG_CLK_RASPBERRYPI=y
+CONFIG_CLK_RK3036=y
+CONFIG_CLK_RK312X=y
+CONFIG_CLK_RK3188=y
+CONFIG_CLK_RK322X=y
+CONFIG_CLK_RK3288=y
+CONFIG_CLK_RK3308=y
+CONFIG_CLK_RK3328=y
+CONFIG_CLK_RK3368=y
+CONFIG_CLK_RK3399=y
+CONFIG_CLK_RV110X=y
# CONFIG_CLK_SIFIVE is not set
CONFIG_CLK_SP810=y
# CONFIG_CLKSRC_STM32_LP is not set
@@ -1078,12 +1108,14 @@ CONFIG_COMMON_CLK_HI6220=y
CONFIG_COMMON_CLK_HI655X=m
CONFIG_COMMON_CLK_MAX77686=y
# CONFIG_COMMON_CLK_MAX9485 is not set
+CONFIG_COMMON_CLK_MESON8B=y
CONFIG_COMMON_CLK_MESON_PHASE=y
CONFIG_COMMON_CLK_MESON_SCLK_DIV=y
# CONFIG_COMMON_CLK_MMP2_AUDIO is not set
CONFIG_COMMON_CLK_PWM=m
CONFIG_COMMON_CLK_QCOM=y
CONFIG_COMMON_CLK_RK808=y
+CONFIG_COMMON_CLK_ROCKCHIP=y
CONFIG_COMMON_CLK_SCMI=m
CONFIG_COMMON_CLK_SCPI=m
# CONFIG_COMMON_CLK_SI514 is not set
@@ -1113,7 +1145,17 @@ CONFIG_CONTEXT_SWITCH_TRACER=y
# CONFIG_CONTEXT_TRACKING_FORCE is not set
CONFIG_CORDIC=m
CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
-# CONFIG_CORESIGHT is not set
+CONFIG_CORESIGHT_CATU=m
+CONFIG_CORESIGHT_CPU_DEBUG=m
+# CONFIG_CORESIGHT_CTI_INTEGRATION_REGS is not set
+CONFIG_CORESIGHT_CTI=m
+CONFIG_CORESIGHT_LINK_AND_SINK_TMC=m
+CONFIG_CORESIGHT_LINKS_AND_SINKS=m
+CONFIG_CORESIGHT=m
+CONFIG_CORESIGHT_SINK_ETBV10=m
+CONFIG_CORESIGHT_SINK_TPIU=m
+CONFIG_CORESIGHT_SOURCE_ETM4X=m
+CONFIG_CORESIGHT_STM=m
CONFIG_CORTINA_PHY=m
# CONFIG_COUNTER is not set
CONFIG_CP15_BARRIER_EMULATION=y
@@ -1275,9 +1317,14 @@ CONFIG_CRYPTO_DEV_SP_CCP=y
CONFIG_CRYPTO_DEV_SUN4I_SS=m
CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y
# CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG is not set
+CONFIG_CRYPTO_DEV_SUN8I_CE_HASH=y
CONFIG_CRYPTO_DEV_SUN8I_CE=m
+CONFIG_CRYPTO_DEV_SUN8I_CE_PRNG=y
+CONFIG_CRYPTO_DEV_SUN8I_CE_TRNG=y
# CONFIG_CRYPTO_DEV_SUN8I_SS_DEBUG is not set
+CONFIG_CRYPTO_DEV_SUN8I_SS_HASH=y
CONFIG_CRYPTO_DEV_SUN8I_SS=m
+CONFIG_CRYPTO_DEV_SUN8I_SS_PRNG=y
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DEV_ZYNQMP_AES=m
CONFIG_CRYPTO_DH=y
@@ -1344,7 +1391,9 @@ CONFIG_CRYPTO_SHA3=m
CONFIG_CRYPTO_SHA512_ARM64_CE=m
CONFIG_CRYPTO_SHA512_ARM64=m
CONFIG_CRYPTO_SHA512_ARM=y
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
+CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_SM3_ARM64_CE=m
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4_ARM64_CE=m
@@ -1356,7 +1405,9 @@ CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_USER_API_AEAD=y
+# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
CONFIG_CRYPTO_USER_API_HASH=y
+# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER=m
@@ -1367,6 +1418,7 @@ CONFIG_CRYPTO_XTS=y
CONFIG_CRYPTO_XXHASH=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ZSTD=m
+# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
# CONFIG_CUSE is not set
CONFIG_CW1200=m
CONFIG_CW1200_WLAN_SDIO=m
@@ -1504,6 +1556,7 @@ CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
# CONFIG_DMA_FENCE_TRACE is not set
CONFIG_DMA_OF=y
+# CONFIG_DMA_PERNUMA_CMA is not set
# CONFIG_DMARD06 is not set
# CONFIG_DMARD09 is not set
CONFIG_DMARD10=m
@@ -1559,6 +1612,7 @@ CONFIG_DP83869_PHY=m
CONFIG_DPAA2_CONSOLE=m
CONFIG_DPOT_DAC=m
# CONFIG_DPS310 is not set
+# CONFIG_DPTF_PCH_FIVR is not set
CONFIG_DRAGONRISE_FF=y
CONFIG_DRBD_FAULT_INJECTION=y
CONFIG_DRM_AMD_ACP=y
@@ -1566,6 +1620,7 @@ CONFIG_DRM_AMD_DC_DCN2_0=y
CONFIG_DRM_AMD_DC_DCN3_0=y
CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
CONFIG_DRM_AMD_DC_HDCP=y
+CONFIG_DRM_AMD_DC_SI=y
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMDGPU_CIK=y
# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
@@ -1580,6 +1635,7 @@ CONFIG_DRM_ANALOGIX_DP=m
CONFIG_DRM_AST=m
CONFIG_DRM_BOCHS=m
# CONFIG_DRM_CDNS_DSI is not set
+CONFIG_DRM_CDNS_MHDP8546=m
CONFIG_DRM_CHRONTEL_CH7033=m
CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_SELFTEST is not set
@@ -1609,11 +1665,13 @@ CONFIG_DRM_I2C_CH7006=m
# CONFIG_DRM_I2C_NXP_TDA9950 is not set
# CONFIG_DRM_I2C_NXP_TDA998X is not set
CONFIG_DRM_I2C_SIL164=m
+CONFIG_DRM_IMX_DCSS=m
# CONFIG_DRM_KOMEDA_ERROR_PRINT is not set
CONFIG_DRM_KOMEDA=m
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LIMA=m
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+CONFIG_DRM_LONTIUM_LT9611=m
# CONFIG_DRM_LVDS_CODEC is not set
# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
@@ -1623,11 +1681,13 @@ CONFIG_DRM_MESON_DW_HDMI=m
CONFIG_DRM_MESON=m
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
+CONFIG_DRM_MSM_DP=y
CONFIG_DRM_MSM_DSI_10NM_PHY=y
CONFIG_DRM_MSM_DSI_14NM_PHY=y
CONFIG_DRM_MSM_DSI_20NM_PHY=y
CONFIG_DRM_MSM_DSI_28NM_8960_PHY=y
CONFIG_DRM_MSM_DSI_28NM_PHY=y
+CONFIG_DRM_MSM_DSI_7NM_PHY=y
CONFIG_DRM_MSM_DSI_PLL=y
CONFIG_DRM_MSM_DSI=y
CONFIG_DRM_MSM_HDMI_HDCP=y
@@ -1657,6 +1717,7 @@ CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m
# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
CONFIG_DRM_PANEL_LVDS=m
+CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m
# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
CONFIG_DRM_PANEL_NOVATEK_NT35510=m
# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
@@ -1682,7 +1743,7 @@ CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_PANEL_SITRONIX_ST7701=m
CONFIG_DRM_PANEL_SITRONIX_ST7703=m
-# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+CONFIG_DRM_PANEL_SITRONIX_ST7789V=m
# CONFIG_DRM_PANEL_SONY_ACX424AKP is not set
# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
@@ -1725,9 +1786,11 @@ CONFIG_DRM_TIDSS=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TI_TPD12S015=m
+CONFIG_DRM_TOSHIBA_TC358762=m
CONFIG_DRM_TOSHIBA_TC358764=m
CONFIG_DRM_TOSHIBA_TC358767=m
CONFIG_DRM_TOSHIBA_TC358768=m
+CONFIG_DRM_TOSHIBA_TC358775=m
CONFIG_DRM_UDL=m
CONFIG_DRM_V3D=m
# CONFIG_DRM_VBOXVIDEO is not set
@@ -1837,6 +1900,7 @@ CONFIG_DW_EDMA_PCIE=m
CONFIG_DWMAC_DWC_QOS_ETH=m
CONFIG_DWMAC_GENERIC=m
CONFIG_DWMAC_IMX8=m
+CONFIG_DWMAC_INTEL_PLAT=m
CONFIG_DWMAC_IPQ806X=m
CONFIG_DWMAC_MESON=m
CONFIG_DWMAC_QCOM_ETHQOS=m
@@ -1916,7 +1980,10 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
CONFIG_ETHTOOL_NETLINK=y
# CONFIG_EUROTECH_WDT is not set
-# CONFIG_EVM is not set
+# CONFIG_EVM_ADD_XATTRS is not set
+CONFIG_EVM_ATTR_FSUUID=y
+# CONFIG_EVM_LOAD_X509 is not set
+CONFIG_EVM=y
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
CONFIG_EXFAT_FS=m
# CONFIG_EXPERT is not set
@@ -1975,6 +2042,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
CONFIG_FAT_FS=m
CONFIG_FAULT_INJECTION_DEBUG_FS=y
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
+# CONFIG_FAULT_INJECTION_USERCOPY is not set
CONFIG_FAULT_INJECTION=y
# CONFIG_FB_3DFX is not set
# CONFIG_FB_ARK is not set
@@ -2135,6 +2203,7 @@ CONFIG_FUJITSU_ERRATUM_010001=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_FUNCTION_TRACER=y
+CONFIG_FUSE_DAX=y
CONFIG_FUSE_FS=m
CONFIG_FUSION_CTL=m
CONFIG_FUSION_FC=m
@@ -2192,7 +2261,10 @@ CONFIG_GIGASET_CAPI=y
CONFIG_GIGASET_M101=m
CONFIG_GIGASET_M105=m
# CONFIG_GLOB_SELFTEST is not set
-# CONFIG_GNSS is not set
+CONFIG_GNSS=m
+CONFIG_GNSS_MTK_SERIAL=m
+CONFIG_GNSS_SIRF_SERIAL=m
+CONFIG_GNSS_UBX_SERIAL=m
# CONFIG_GOLDFISH is not set
# CONFIG_GOOGLE_FIRMWARE is not set
CONFIG_GP2AP002=m
@@ -2208,6 +2280,7 @@ CONFIG_GPIO_AGGREGATOR=m
# CONFIG_GPIO_BCM_XGS_IPROC is not set
CONFIG_GPIO_BD9571MWV=m
CONFIG_GPIO_CADENCE=m
+CONFIG_GPIO_CDEV_V1=y
CONFIG_GPIO_DWAPB=m
CONFIG_GPIO_EXAR=m
# CONFIG_GPIO_FTGPIO010 is not set
@@ -2234,6 +2307,7 @@ CONFIG_GPIO_MLXBF=m
CONFIG_GPIO_MOXTET=m
CONFIG_GPIO_MPC8XXX=y
CONFIG_GPIO_MVEBU=y
+CONFIG_GPIO_MXC=m
CONFIG_GPIO_PCA953X_IRQ=y
CONFIG_GPIO_PCA953X=y
CONFIG_GPIO_PCA9570=m
@@ -2286,6 +2360,7 @@ CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HD44780=m
CONFIG_HDC100X=m
+CONFIG_HDC2010=m
CONFIG_HEADERS_CHECK=y
CONFIG_HEADERS_INSTALL=y
CONFIG_HEADER_TEST=y
@@ -2402,6 +2477,7 @@ CONFIG_HID_U2FZERO=m
CONFIG_HID_UCLOGIC=m
CONFIG_HID_UDRAW_PS3=m
CONFIG_HID_VIEWSONIC=m
+CONFIG_HID_VIVALDI=m
CONFIG_HID_WACOM=m
CONFIG_HID_WALTOP=m
CONFIG_HID_WIIMOTE=m
@@ -2412,6 +2488,7 @@ CONFIG_HID_ZYDACRON=m
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_HIPPI is not set
CONFIG_HISI_DMA=m
+CONFIG_HISI_HIKEY_USB=m
CONFIG_HISILICON_ERRATUM_161010101=y
CONFIG_HISILICON_ERRATUM_161600802=y
CONFIG_HISILICON_IRQ_MBIGEN=y
@@ -2471,6 +2548,7 @@ CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=y
CONFIG_HW_RANDOM_XGENE=m
+CONFIG_HW_RANDOM_XIPHERA=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK_QCOM=m
CONFIG_HWSPINLOCK=y
@@ -2527,6 +2605,7 @@ CONFIG_I2C_IMX_LPI2C=m
CONFIG_I2C_IMX=m
# CONFIG_I2C_ISCH is not set
CONFIG_I2C_MESON=m
+CONFIG_I2C_MLXBF=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MUX_GPIO=m
CONFIG_I2C_MUX_GPMUX=m
@@ -2560,6 +2639,7 @@ CONFIG_I2C_SIMTEC=m
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
CONFIG_I2C_SLAVE_EEPROM=m
+# CONFIG_I2C_SLAVE_TESTUNIT is not set
CONFIG_I2C_SLAVE=y
CONFIG_I2C_STUB=m
CONFIG_I2C_SYNQUACER=m
@@ -2615,6 +2695,8 @@ CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IGC=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_DMAENGINE=m
+CONFIG_IIO_BUFFER_DMA=m
CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
@@ -2649,6 +2731,7 @@ CONFIG_IIO_SW_TRIGGER=m
CONFIG_IIO_SYSFS_TRIGGER=m
CONFIG_IIO_TIGHTLOOP_TRIGGER=m
CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_TRIGGERED_EVENT=m
CONFIG_IIO_TRIGGER=y
# CONFIG_IKCONFIG is not set
CONFIG_IKHEADERS=m
@@ -2659,6 +2742,7 @@ CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
+CONFIG_IMA_DEFAULT_HASH="sha256"
CONFIG_IMA_DEFAULT_HASH_SHA256=y
# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
@@ -2683,7 +2767,7 @@ CONFIG_IMX_DSP=m
CONFIG_IMX_GPCV2_PM_DOMAINS=y
CONFIG_IMX_GPCV2=y
# CONFIG_IMX_IPUV3_CORE is not set
-# CONFIG_IMX_IRQSTEER is not set
+CONFIG_IMX_IRQSTEER=y
CONFIG_IMX_MBOX=m
CONFIG_IMX_REMOTEPROC=m
CONFIG_IMX_SC_THERMAL=m
@@ -2707,6 +2791,7 @@ CONFIG_INET_ESPINTCP=y
CONFIG_INET_ESP=m
CONFIG_INET_ESP_OFFLOAD=m
CONFIG_INET_IPCOMP=m
+CONFIG_INET_MPTCP_DIAG=m
CONFIG_INET_RAW_DIAG=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_UDP_DIAG=m
@@ -2823,6 +2908,7 @@ CONFIG_INTEGRITY=y
# CONFIG_INTEL_IDMA64 is not set
CONFIG_INTEL_IDXD=m
# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
+# CONFIG_INTEL_MEI_VIRTIO is not set
# CONFIG_INTEL_SCU_PCI is not set
# CONFIG_INTEL_SCU_PLATFORM is not set
CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m
@@ -2842,6 +2928,8 @@ CONFIG_INTERCONNECT_QCOM_OSM_L3=m
# CONFIG_INTERCONNECT_QCOM_QCS404 is not set
CONFIG_INTERCONNECT_QCOM_SC7180=m
CONFIG_INTERCONNECT_QCOM_SDM845=m
+CONFIG_INTERCONNECT_QCOM_SM8150=m
+CONFIG_INTERCONNECT_QCOM_SM8250=m
CONFIG_INTERCONNECT_QCOM=y
CONFIG_INTERCONNECT=y
# CONFIG_INTERVAL_TREE_TEST is not set
@@ -3108,6 +3196,7 @@ CONFIG_JFS_SECURITY=y
CONFIG_JME=m
CONFIG_JOLIET=y
CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADC=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
@@ -3124,23 +3213,23 @@ CONFIG_JOYSTICK_IFORCE=m
CONFIG_JOYSTICK_IFORCE_USB=m
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
-CONFIG_JOYSTICK_MAGELLAN=m
+# CONFIG_JOYSTICK_MAGELLAN is not set
CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_PXRC=m
CONFIG_JOYSTICK_SIDEWINDER=m
-CONFIG_JOYSTICK_SPACEBALL=m
-CONFIG_JOYSTICK_SPACEORB=m
-CONFIG_JOYSTICK_STINGER=m
+# CONFIG_JOYSTICK_SPACEBALL is not set
+# CONFIG_JOYSTICK_SPACEORB is not set
+# CONFIG_JOYSTICK_STINGER is not set
CONFIG_JOYSTICK_TMDC=m
CONFIG_JOYSTICK_TURBOGRAFX=m
-CONFIG_JOYSTICK_TWIDJOY=m
+# CONFIG_JOYSTICK_TWIDJOY is not set
CONFIG_JOYSTICK_WALKERA0701=m
-CONFIG_JOYSTICK_WARRIOR=m
+# CONFIG_JOYSTICK_WARRIOR is not set
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
CONFIG_JOYSTICK_XPAD=m
-CONFIG_JOYSTICK_ZHENHUA=m
+# CONFIG_JOYSTICK_ZHENHUA is not set
# CONFIG_JSA1212 is not set
CONFIG_JUMP_LABEL=y
CONFIG_K3_DMA=m
@@ -3148,6 +3237,7 @@ CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS=y
CONFIG_KARMA_PARTITION=y
# CONFIG_KASAN is not set
+# CONFIG_KASAN_SW_TAGS is not set
CONFIG_KASAN_VMALLOC=y
# CONFIG_KCOV is not set
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
@@ -3163,7 +3253,8 @@ CONFIG_KERNEL_MODE_NEON=y
# CONFIG_KERNEL_UNCOMPRESSED is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_ZSTD is not set
-# CONFIG_KEXEC_FILE is not set
+CONFIG_KEXEC_FILE=y
+CONFIG_KEXEC_IMAGE_VERIFY_SIG=y
CONFIG_KEXEC_SIG=y
CONFIG_KEXEC=y
CONFIG_KEYBOARD_ADC=m
@@ -3208,6 +3299,7 @@ CONFIG_KEY_DH_OPERATIONS=y
CONFIG_KEY_NOTIFICATIONS=y
CONFIG_KEYS_REQUEST_CACHE=y
CONFIG_KEYS=y
+CONFIG_KGDB_HONOUR_BLOCKLIST=y
CONFIG_KGDB_KDB=y
CONFIG_KGDB_LOW_LEVEL_TRAP=y
CONFIG_KGDB_SERIAL_CONSOLE=y
@@ -3263,6 +3355,7 @@ CONFIG_LDISC_AUTOLOAD=y
CONFIG_LDM_PARTITION=y
# CONFIG_LEDS_AAT1290 is not set
CONFIG_LEDS_AN30259A=m
+# CONFIG_LEDS_ARIEL is not set
CONFIG_LEDS_AS3645A=m
# CONFIG_LEDS_AW2013 is not set
# CONFIG_LEDS_BCM6328 is not set
@@ -3289,6 +3382,7 @@ CONFIG_LEDS_LM3601X=m
CONFIG_LEDS_LM3692X=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
+CONFIG_LEDS_LP50XX=m
# CONFIG_LEDS_LP5521 is not set
# CONFIG_LEDS_LP5523 is not set
# CONFIG_LEDS_LP5562 is not set
@@ -3605,9 +3699,12 @@ CONFIG_MFD_CROS_EC_DEV=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
+CONFIG_MFD_ENE_KB3930=m
# CONFIG_MFD_GATEWORKS_GSC is not set
CONFIG_MFD_HI6421_PMIC=m
+# CONFIG_MFD_HI6421_SPMI is not set
CONFIG_MFD_HI655X_PMIC=m
+CONFIG_MFD_INTEL_M10_BMC=m
# CONFIG_MFD_INTEL_PMC_BXT is not set
# CONFIG_MFD_IQS62X is not set
# CONFIG_MFD_JANZ_CMODIO is not set
@@ -3651,6 +3748,7 @@ CONFIG_MFD_ROHM_BD718XX=y
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SL28CPLD is not set
CONFIG_MFD_SM501_GPIO=y
CONFIG_MFD_SM501=m
# CONFIG_MFD_SMSC is not set
@@ -3692,6 +3790,7 @@ CONFIG_MFD_WL1273_CORE=m
# CONFIG_MFD_WM8994 is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
+# CONFIG_MHI_BUS_DEBUG is not set
CONFIG_MHI_BUS=m
# CONFIG_MICREL_KS8995MA is not set
CONFIG_MICREL_PHY=m
@@ -3997,6 +4096,7 @@ CONFIG_MVMDIO=m
CONFIG_MVNETA_BM_ENABLE=m
CONFIG_MVNETA=m
CONFIG_MVPP2=m
+CONFIG_MVPP2_PTP=y
CONFIG_MV_XOR_V2=y
CONFIG_MV_XOR=y
CONFIG_MWAVE=m
@@ -4438,6 +4538,7 @@ CONFIG_NFS_V3=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
CONFIG_NFS_V4_1=y
+# CONFIG_NFS_V4_2_READ_PLUS is not set
CONFIG_NFS_V4_2=y
CONFIG_NFS_V4=m
CONFIG_NF_TABLES_ARP=y
@@ -4741,6 +4842,7 @@ CONFIG_PCIE_DW_PLAT_HOST=y
CONFIG_PCIE_DW=y
CONFIG_PCIE_ECRC=y
CONFIG_PCIE_EDR=y
+# CONFIG_PCIE_HISI_ERR is not set
CONFIG_PCIE_HISI_STB=y
CONFIG_PCIE_KIRIN=y
CONFIG_PCIE_LAYERSCAPE_GEN4=y
@@ -4799,6 +4901,7 @@ CONFIG_PCMCIA_SMC91C92=m
CONFIG_PCMCIA_XIRC2PS=m
CONFIG_PCMCIA_XIRCOM=m
CONFIG_PCNET32=m
+CONFIG_PCS_XPCS=m
CONFIG_PD6729=m
# CONFIG_PDA_POWER is not set
CONFIG_PDC_ADMA=m
@@ -4818,10 +4921,13 @@ CONFIG_PHY_CADENCE_TORRENT=m
# CONFIG_PHY_DM816X_USB is not set
CONFIG_PHY_FSL_IMX8MQ_USB=m
CONFIG_PHY_HI3660_USB=m
+# CONFIG_PHY_HI3670_USB is not set
CONFIG_PHY_HI6220_USB=m
CONFIG_PHY_HISI_INNO_USB2=m
CONFIG_PHY_HISTB_COMBPHY=m
# CONFIG_PHY_INTEL_EMMC is not set
+# CONFIG_PHY_INTEL_KEEMBAY_EMMC is not set
+# CONFIG_PHY_INTEL_LGM_EMMC is not set
CONFIG_PHYLIB=y
CONFIG_PHYLINK=m
# CONFIG_PHY_MAPPHONE_MDM6600 is not set
@@ -4874,7 +4980,7 @@ CONFIG_PHY_TEGRA_XUSB=m
CONFIG_PHY_XGENE=y
CONFIG_PHY_XILINX_ZYNQMP=m
# CONFIG_PI433 is not set
-# CONFIG_PID_IN_CONTEXTIDR is not set
+CONFIG_PID_IN_CONTEXTIDR=y
CONFIG_PID_NS=y
CONFIG_PINCONF=y
CONFIG_PINCTRL_AMD=y
@@ -4913,6 +5019,7 @@ CONFIG_PINCTRL_MESON_AXG=y
CONFIG_PINCTRL_MESON_G12A=y
CONFIG_PINCTRL_MESON_GXBB=y
CONFIG_PINCTRL_MESON_GXL=y
+CONFIG_PINCTRL_MSM8226=m
# CONFIG_PINCTRL_MSM8660 is not set
CONFIG_PINCTRL_MSM8916=y
# CONFIG_PINCTRL_MSM8960 is not set
@@ -4937,6 +5044,8 @@ CONFIG_PINCTRL_SINGLE=y
# CONFIG_PINCTRL_SM8250 is not set
# CONFIG_PINCTRL_STMFX is not set
# CONFIG_PINCTRL_SUN4I_A10 is not set
+# CONFIG_PINCTRL_SUN50I_A100 is not set
+# CONFIG_PINCTRL_SUN50I_A100_R is not set
CONFIG_PINCTRL_SUN50I_A64_R=y
CONFIG_PINCTRL_SUN50I_A64=y
CONFIG_PINCTRL_SUN50I_H5=y
@@ -4996,7 +5105,6 @@ CONFIG_POSIX_MQUEUE=y
# CONFIG_POWER7_CPU is not set
# CONFIG_POWER8_CPU is not set
# CONFIG_POWER9_CPU is not set
-CONFIG_POWER_AVS=y
CONFIG_POWERCAP=y
CONFIG_POWER_RESET_AS3722=y
# CONFIG_POWER_RESET_BRCMKONA is not set
@@ -5009,8 +5117,8 @@ CONFIG_POWER_RESET_HISI=y
CONFIG_POWER_RESET_MSM=y
CONFIG_POWER_RESET_QCOM_PON=m
CONFIG_POWER_RESET_RESTART=y
-# CONFIG_POWER_RESET_SYSCON is not set
-# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
+CONFIG_POWER_RESET_SYSCON=y
CONFIG_POWER_RESET_VERSATILE=y
CONFIG_POWER_RESET_VEXPRESS=y
CONFIG_POWER_RESET_XGENE=y
@@ -5021,6 +5129,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_PPC_PROT_SAO_LPAR is not set
# CONFIG_PPC_PTDUMP is not set
# CONFIG_PPC_QUEUED_SPINLOCKS is not set
+CONFIG_PPC_RTAS_FILTER=y
CONFIG_PPDEV=m
CONFIG_PPP_ASYNC=m
CONFIG_PPP_BSDCOMP=m
@@ -5044,6 +5153,8 @@ CONFIG_PPTP=m
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PRESTERA=m
+CONFIG_PRESTERA_PCI=m
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_PRIME_NUMBERS is not set
CONFIG_PRINTER=m
@@ -5263,6 +5374,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_PERF_TEST is not set
CONFIG_RCU_REF_SCALE_TEST=m
+# CONFIG_RCU_SCALE_TEST is not set
CONFIG_RCU_TORTURE_TEST=m
# CONFIG_RCU_TRACE is not set
CONFIG_RC_XBOX_DVD=m
@@ -5344,7 +5456,10 @@ CONFIG_REGULATOR_QCOM_RPMH=y
CONFIG_REGULATOR_QCOM_SMD_RPM=m
CONFIG_REGULATOR_QCOM_SPMI=m
CONFIG_REGULATOR_QCOM_USB_VBUS=m
+CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m
CONFIG_REGULATOR_RK808=y
+CONFIG_REGULATOR_RT4801=m
+CONFIG_REGULATOR_RTMV20=m
# CONFIG_REGULATOR_SLG51000 is not set
CONFIG_REGULATOR_SY8106A=m
# CONFIG_REGULATOR_SY8824X is not set
@@ -5354,7 +5469,7 @@ CONFIG_REGULATOR_SY8827N=m
# CONFIG_REGULATOR_TPS65023 is not set
# CONFIG_REGULATOR_TPS6507X is not set
CONFIG_REGULATOR_TPS65086=m
-# CONFIG_REGULATOR_TPS65132 is not set
+CONFIG_REGULATOR_TPS65132=m
# CONFIG_REGULATOR_TPS6524X is not set
CONFIG_REGULATOR_USERSPACE_CONSUMER=m
CONFIG_REGULATOR_VCTRL=m
@@ -5383,6 +5498,7 @@ CONFIG_RESET_IMX7=y
CONFIG_RESET_MESON_AUDIO_ARB=m
CONFIG_RESET_QCOM_AOSS=y
CONFIG_RESET_QCOM_PDC=m
+CONFIG_RESET_RASPBERRYPI=y
CONFIG_RESET_SCMI=y
CONFIG_RESET_SIMPLE=y
# CONFIG_RESET_TI_SCI is not set
@@ -5405,6 +5521,7 @@ CONFIG_RMI4_F11=y
CONFIG_RMI4_F12=y
CONFIG_RMI4_F30=y
CONFIG_RMI4_F34=y
+CONFIG_RMI4_F3A=y
# CONFIG_RMI4_F54 is not set
CONFIG_RMI4_F55=y
CONFIG_RMI4_I2C=m
@@ -5555,6 +5672,7 @@ CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_RV3028=m
CONFIG_RTC_DRV_RV3029C2=m
CONFIG_RTC_DRV_RV3029_HWMON=y
+CONFIG_RTC_DRV_RV3032=m
# CONFIG_RTC_DRV_RV8803 is not set
CONFIG_RTC_DRV_RX4581=m
# CONFIG_RTC_DRV_RX6110 is not set
@@ -5579,7 +5697,7 @@ CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_SYSFS=y
-# CONFIG_RTC_NVMEM is not set
+CONFIG_RTC_NVMEM=y
# CONFIG_RTC_SYSTOHC is not set
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_RTL8180=m
@@ -5650,6 +5768,7 @@ CONFIG_SCD30_CORE=m
CONFIG_SCD30_I2C=m
CONFIG_SCD30_SERIAL=m
# CONFIG_SC_DISPCC_7180 is not set
+# CONFIG_SCF_TORTURE_TEST is not set
CONFIG_SC_GCC_7180=m
# CONFIG_SC_GPUCC_7180 is not set
CONFIG_SCHED_AUTOGROUP=y
@@ -5796,7 +5915,7 @@ CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0
CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_DISABLE=y
+# CONFIG_SECURITY_SELINUX_DISABLE is not set
CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
CONFIG_SECURITY_SELINUX=y
@@ -5817,6 +5936,7 @@ CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
# CONFIG_SENSORS_ADM1177 is not set
+CONFIG_SENSORS_ADM1266=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ADS7828=m
@@ -5868,6 +5988,7 @@ CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
# CONFIG_SENSORS_INSPUR_IPSPS is not set
+CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -5932,6 +6053,8 @@ CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_MLXREG_FAN=m
+CONFIG_SENSORS_MP2975=m
+CONFIG_SENSORS_MR75203=m
CONFIG_SENSORS_NCT6683=m
CONFIG_SENSORS_NCT6775=m
CONFIG_SENSORS_NCT7802=m
@@ -6125,6 +6248,7 @@ CONFIG_SMC911X=m
CONFIG_SMC91X=m
CONFIG_SMC_DIAG=m
CONFIG_SMC=m
+# CONFIG_SM_DISPCC_8250 is not set
# CONFIG_SM_FTL is not set
CONFIG_SM_GCC_8150=y
CONFIG_SM_GCC_8250=m
@@ -6140,6 +6264,8 @@ CONFIG_SMS_SDIO_DRV=m
CONFIG_SMS_SIANO_MDTV=m
CONFIG_SMS_SIANO_RC=y
CONFIG_SMS_USB_DRV=m
+# CONFIG_SM_VIDEOCC_8150 is not set
+# CONFIG_SM_VIDEOCC_8250 is not set
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AD1889=m
@@ -6269,7 +6395,6 @@ CONFIG_SND_MESON_GX_SOUND_CARD=m
CONFIG_SND_MIA=m
CONFIG_SND_MIXART=m
CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_MMP_SOC_SSPA=m
CONFIG_SND_MONA=m
CONFIG_SND_MPU401=m
CONFIG_SND_MTPAV=m
@@ -6328,6 +6453,7 @@ CONFIG_SND_SOC_CROS_EC_CODEC=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
+CONFIG_SND_SOC_CS4234=m
CONFIG_SND_SOC_CS4265=m
# CONFIG_SND_SOC_CS4270 is not set
CONFIG_SND_SOC_CS4271_I2C=m
@@ -6354,9 +6480,9 @@ CONFIG_SND_SOC_ES8328_SPI=m
CONFIG_SND_SOC_FSL_ASOC_CARD=m
CONFIG_SND_SOC_FSL_ASRC=m
CONFIG_SND_SOC_FSL_AUDMIX=m
-# CONFIG_SND_SOC_FSL_EASRC is not set
+CONFIG_SND_SOC_FSL_EASRC=m
CONFIG_SND_SOC_FSL_ESAI=m
-# CONFIG_SND_SOC_FSL_MICFIL is not set
+CONFIG_SND_SOC_FSL_MICFIL=m
CONFIG_SND_SOC_FSL_MQS=m
CONFIG_SND_SOC_FSL_SAI=m
CONFIG_SND_SOC_FSL_SPDIF=m
@@ -6375,12 +6501,14 @@ CONFIG_SND_SOC_IMX_AUDMUX=m
CONFIG_SND_SOC_IMX_SGTL5000=m
CONFIG_SND_SOC_IMX_SPDIF=m
# CONFIG_SND_SOC_INNO_RK3036 is not set
-CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
+# CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set
+# CONFIG_SND_SOC_INTEL_CATPT is not set
# CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH is not set
CONFIG_SND_SOC_INTEL_KEEMBAY=m
CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
# CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH is not set
-CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
+CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m
+# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set
CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
@@ -6432,7 +6560,7 @@ CONFIG_SND_SOC_ROCKCHIP_MAX98090=m
CONFIG_SND_SOC_ROCKCHIP_PDM=m
CONFIG_SND_SOC_ROCKCHIP_RT5645=m
CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
-# CONFIG_SND_SOC_RT1308_SDW is not set
+CONFIG_SND_SOC_RT1308_SDW=m
# CONFIG_SND_SOC_RT5616 is not set
# CONFIG_SND_SOC_RT5631 is not set
CONFIG_SND_SOC_RT5660=m
@@ -6440,9 +6568,9 @@ CONFIG_SND_SOC_RT5663=m
CONFIG_SND_SOC_RT5677=m
CONFIG_SND_SOC_RT5677_SPI=m
CONFIG_SND_SOC_RT5682_SDW=m
-# CONFIG_SND_SOC_RT700_SDW is not set
-# CONFIG_SND_SOC_RT711_SDW is not set
-# CONFIG_SND_SOC_RT715_SDW is not set
+CONFIG_SND_SOC_RT700_SDW=m
+CONFIG_SND_SOC_RT711_SDW=m
+CONFIG_SND_SOC_RT715_SDW=m
# CONFIG_SND_SOC_SAMSUNG_ARIES_WM8994 is not set
CONFIG_SND_SOC_SAMSUNG_MIDAS_WM1811=m
CONFIG_SND_SOC_SDM845=m
@@ -6474,6 +6602,7 @@ CONFIG_SND_SOC_SPDIF=m
# CONFIG_SND_SOC_STORM is not set
# CONFIG_SND_SOC_TAS2552 is not set
CONFIG_SND_SOC_TAS2562=m
+CONFIG_SND_SOC_TAS2764=m
CONFIG_SND_SOC_TAS2770=m
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TAS571X is not set
@@ -6599,7 +6728,22 @@ CONFIG_SOUNDWIRE=y
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM_VMEMMAP=y
-# CONFIG_SPEAKUP is not set
+CONFIG_SPEAKUP=m
+# CONFIG_SPEAKUP_SYNTH_ACNTPC is not set
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+# CONFIG_SPEAKUP_SYNTH_DECEXT is not set
+# CONFIG_SPEAKUP_SYNTH_DECPC is not set
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+# CONFIG_SPEAKUP_SYNTH_DTLK is not set
+# CONFIG_SPEAKUP_SYNTH_DUMMY is not set
+# CONFIG_SPEAKUP_SYNTH_KEYPC is not set
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_AMD is not set
CONFIG_SPI_ARMADA_3700=m
@@ -6664,6 +6808,7 @@ CONFIG_SPI_XLP=m
CONFIG_SPI=y
CONFIG_SPI_ZYNQMP_GQSPI=m
CONFIG_SPI_ZYNQ_QSPI=m
+# CONFIG_SPMI_HISI3670 is not set
CONFIG_SPMI_MSM_PMIC_ARB=y
CONFIG_SPMI_PMIC_CLKDIV=m
CONFIG_SPMI=y
@@ -6704,6 +6849,7 @@ CONFIG_STACK_VALIDATION=y
CONFIG_STAGING_MEDIA=y
CONFIG_STAGING=y
CONFIG_STANDALONE=y
+# CONFIG_STATIC_CALL_SELFTEST is not set
# CONFIG_STATIC_KEYS_SELFTEST is not set
# CONFIG_STATIC_USERMODEHELPER is not set
CONFIG_STE10XP=m
@@ -6711,7 +6857,8 @@ CONFIG_STK3310=m
# CONFIG_STK8312 is not set
# CONFIG_STK8BA50 is not set
# CONFIG_STM32_FMC2_EBI is not set
-# CONFIG_STM is not set
+# CONFIG_STM_DUMMY is not set
+CONFIG_STM=m
CONFIG_STMMAC_ETH=m
# CONFIG_STMMAC_PCI is not set
CONFIG_STMMAC_PLATFORM=m
@@ -6719,6 +6866,11 @@ CONFIG_STMMAC_PLATFORM=m
CONFIG_STMPE_ADC=m
CONFIG_STMPE_I2C=y
CONFIG_STMPE_SPI=y
+# CONFIG_STM_PROTO_BASIC is not set
+# CONFIG_STM_PROTO_SYS_T is not set
+# CONFIG_STM_SOURCE_CONSOLE is not set
+# CONFIG_STM_SOURCE_FTRACE is not set
+# CONFIG_STM_SOURCE_HEARTBEAT is not set
CONFIG_STRICT_DEVMEM=y
CONFIG_STRICT_KERNEL_RWX=y
# CONFIG_STRING_SELFTEST is not set
@@ -6729,6 +6881,8 @@ CONFIG_ST_UVIS25_I2C=m
CONFIG_ST_UVIS25=m
CONFIG_ST_UVIS25_SPI=m
# CONFIG_SUN4I_EMAC is not set
+CONFIG_SUN50I_A100_CCU=y
+CONFIG_SUN50I_A100_R_CCU=y
CONFIG_SUN50I_A64_CCU=y
CONFIG_SUN50I_DE2_BUS=y
CONFIG_SUN50I_ERRATUM_UNKNOWN1=y
@@ -6813,6 +6967,7 @@ CONFIG_TCG_TIS_SPI_CR50=y
CONFIG_TCG_TIS_SPI=m
# CONFIG_TCG_TIS_ST33ZP24_I2C is not set
# CONFIG_TCG_TIS_ST33ZP24_SPI is not set
+CONFIG_TCG_TIS_SYNQUACER=m
CONFIG_TCG_TIS=y
CONFIG_TCG_TPM=y
CONFIG_TCG_VTPM_PROXY=m
@@ -6880,6 +7035,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_HEXDUMP is not set
# CONFIG_TEST_HMM is not set
# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_KASAN_MODULE is not set
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
CONFIG_TEST_LIST_SORT=y
@@ -6966,6 +7122,8 @@ CONFIG_TIPC_DIAG=m
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
+# CONFIG_TI_PRUSS_INTC is not set
+# CONFIG_TI_PRUSS is not set
# CONFIG_TI_SCI_CLK is not set
CONFIG_TI_SCI_PROTOCOL=m
# CONFIG_TI_ST is not set
@@ -7056,6 +7214,7 @@ CONFIG_TOUCHSCREEN_WACOM_W8001=m
# CONFIG_TOUCHSCREEN_WM97XX is not set
CONFIG_TOUCHSCREEN_ZET6223=m
CONFIG_TOUCHSCREEN_ZFORCE=m
+CONFIG_TOUCHSCREEN_ZINITIX=m
# CONFIG_TPL0102 is not set
CONFIG_TPM_KEY_PARSER=m
# CONFIG_TPS6105X is not set
@@ -7103,8 +7262,11 @@ CONFIG_TYPEC_HD3SS3220=m
CONFIG_TYPEC=m
CONFIG_TYPEC_MUX_PI3USB30532=m
CONFIG_TYPEC_NVIDIA_ALTMODE=m
+CONFIG_TYPEC_QCOM_PMIC=m
# CONFIG_TYPEC_RT1711H is not set
+CONFIG_TYPEC_STUSB160X=m
CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPCI_MAXIM=m
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
@@ -7156,6 +7318,7 @@ CONFIG_UNWINDER_ARM=y
# CONFIG_UNWINDER_FRAME_POINTER is not set
CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
+# CONFIG_USB4_DEBUGFS_WRITE is not set
CONFIG_USB4_NET=m
CONFIG_USB4=y
CONFIG_USB_ACM=m
@@ -7174,7 +7337,11 @@ CONFIG_USB_BELKIN=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_CATC=m
# CONFIG_USB_CDC_COMPOSITE is not set
-# CONFIG_USB_CDNS3 is not set
+CONFIG_USB_CDNS3_GADGET=y
+CONFIG_USB_CDNS3_HOST=y
+CONFIG_USB_CDNS3_IMX=m
+CONFIG_USB_CDNS3=m
+CONFIG_USB_CDNS3_PCI_WRAP=m
CONFIG_USB_CHAOSKEY=m
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_CHIPIDEA=m
@@ -7239,6 +7406,7 @@ CONFIG_USB_EMI62=m
CONFIG_USB_EPSON2888=y
# CONFIG_USB_ETH is not set
CONFIG_USB_EZUSB_FX2=m
+# CONFIG_USB_FEW_INIT_RETRIES is not set
# CONFIG_USB_FOTG210_HCD is not set
# CONFIG_USB_FOTG210_UDC is not set
# CONFIG_USB_FSL_USB2 is not set
@@ -7349,6 +7517,7 @@ CONFIG_USB_LD=m
CONFIG_USB_LEDS_TRIGGER_USBPORT=m
CONFIG_USB_LED_TRIG=y
CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LGM_PHY=m
# CONFIG_USB_LINK_LAYER_TEST is not set
CONFIG_USB_M5602=m
# CONFIG_USB_M66592 is not set
@@ -7537,7 +7706,7 @@ CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_HISTB is not set
CONFIG_USB_XHCI_MVEBU=m
-CONFIG_USB_XHCI_PCI_RENESAS=y
+CONFIG_USB_XHCI_PCI_RENESAS=m
CONFIG_USB_XHCI_PLATFORM=m
CONFIG_USB_XHCI_TEGRA=m
CONFIG_USB_XUSBATM=m
@@ -7563,7 +7732,7 @@ CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_VALIDATE_FS_PARSER=y
# CONFIG_VBOXSF_FS is not set
CONFIG_VCNL3020=m
-# CONFIG_VCNL4000 is not set
+CONFIG_VCNL4000=m
CONFIG_VCNL4035=m
CONFIG_VDPA=m
CONFIG_VDPA_MENU=y
@@ -7578,12 +7747,14 @@ CONFIG_VEXPRESS_SYSCFG=y
# CONFIG_VF610_DAC is not set
CONFIG_VFAT_FS=m
CONFIG_VFIO_AMBA=m
+# CONFIG_VFIO_FSL_MC is not set
CONFIG_VFIO_IOMMU_TYPE1=m
CONFIG_VFIO=m
CONFIG_VFIO_MDEV_DEVICE=m
CONFIG_VFIO_MDEV=m
# CONFIG_VFIO_NOIOMMU is not set
CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_ZDEV=y
CONFIG_VFIO_PLATFORM_AMDXGBE_RESET=m
# CONFIG_VFIO_PLATFORM_CALXEDAXGMAC_RESET is not set
CONFIG_VFIO_PLATFORM=m
@@ -7749,6 +7920,7 @@ CONFIG_VIDEO_SUNXI_CEDRUS=m
CONFIG_VIDEO_SUNXI=y
CONFIG_VIDEO_TEGRA_HDMI_CEC=m
CONFIG_VIDEO_TEGRA=m
+# CONFIG_VIDEO_TEGRA_TPG is not set
CONFIG_VIDEO_TM6000_ALSA=m
CONFIG_VIDEO_TM6000_DVB=m
CONFIG_VIDEO_TM6000=m
@@ -7762,6 +7934,7 @@ CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_VIDEO_VS6624=m
# CONFIG_VIDEO_XILINX is not set
+# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIPERBOARD_ADC is not set
CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
@@ -7926,6 +8099,7 @@ CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_STATISTICS=y
CONFIG_XFRM_SUB_POLICY=y
+# CONFIG_XFRM_USER_COMPAT is not set
CONFIG_XFRM_USER=y
CONFIG_XFRM=y
# CONFIG_XFS_DEBUG is not set
@@ -7935,6 +8109,7 @@ CONFIG_XFS_ONLINE_SCRUB=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_QUOTA=y
# CONFIG_XFS_RT is not set
+CONFIG_XFS_SUPPORT_V4=y
CONFIG_XFS_WARN=y
# CONFIG_XGENE_DMA is not set
CONFIG_XGENE_PMU=y
@@ -7967,6 +8142,7 @@ CONFIG_YELLOWFIN=m
CONFIG_YENTA=m
CONFIG_Z3FOLD=y
CONFIG_ZBUD=y
+# CONFIG_ZCRYPT_DEBUG is not set
# CONFIG_ZD1211RW_DEBUG is not set
CONFIG_ZD1211RW=m
CONFIG_ZEROPLUS_FF=y
@@ -8006,4 +8182,5 @@ CONFIG_ZYNQMP_POWER=y
# Select this config option to add support for the initrd= command
# This option determines the default init for the system if no init=
# warnings from C=1 sparse checker or -Wextra compilations. It has
+# You can set the size of pernuma CMA by specifying "cma_pernuma=size"
CONFIG_ZENIFY=y
diff --git a/SOURCES/kernel-aarch64-fedora.config b/SOURCES/kernel-aarch64-fedora.config
index dcf5b44..9dfe733 100644
--- a/SOURCES/kernel-aarch64-fedora.config
+++ b/SOURCES/kernel-aarch64-fedora.config
@@ -1,5 +1,6 @@
# arm64
# 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
+# beginning with "crc=". If the string "crc=0" is found, the
# CONFIG_60XX_WDT is not set
CONFIG_64BIT=y
CONFIG_6LOWPAN_DEBUGFS=y
@@ -56,6 +57,7 @@ CONFIG_ACPI_CUSTOM_METHOD=m
# CONFIG_ACPI_DEBUGGER is not set
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_DOCK=y
+# CONFIG_ACPI_DPTF is not set
CONFIG_ACPI_EC_DEBUGFS=y
CONFIG_ACPI_FAN=y
CONFIG_ACPI_HED=y
@@ -157,6 +159,7 @@ CONFIG_ADUX1020=m
# CONFIG_ADXL345_SPI is not set
CONFIG_ADXL372_I2C=m
CONFIG_ADXL372_SPI=m
+CONFIG_ADXRS290=m
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -287,11 +290,13 @@ CONFIG_ARCH_TEGRA_132_SOC=y
CONFIG_ARCH_TEGRA_186_SOC=y
CONFIG_ARCH_TEGRA_194_SOC=y
CONFIG_ARCH_TEGRA_210_SOC=y
+# CONFIG_ARCH_TEGRA_234_SOC is not set
CONFIG_ARCH_TEGRA=y
CONFIG_ARCH_THUNDER2=y
CONFIG_ARCH_THUNDER=y
# CONFIG_ARCH_UNIPHIER is not set
CONFIG_ARCH_VEXPRESS=y
+# CONFIG_ARCH_VISCONTI is not set
CONFIG_ARCH_XGENE=y
# CONFIG_ARCH_ZX is not set
CONFIG_ARCH_ZYNQMP=y
@@ -312,6 +317,7 @@ CONFIG_ARM64_ERRATUM_1286807=y
CONFIG_ARM64_ERRATUM_1319367=y
CONFIG_ARM64_ERRATUM_1418040=y
CONFIG_ARM64_ERRATUM_1463225=y
+CONFIG_ARM64_ERRATUM_1508412=y
CONFIG_ARM64_ERRATUM_1530923=y
CONFIG_ARM64_ERRATUM_1542419=y
CONFIG_ARM64_ERRATUM_819472=y
@@ -326,6 +332,7 @@ CONFIG_ARM64_ERRATUM_858921=y
# CONFIG_ARM64_FORCE_52BIT is not set
CONFIG_ARM64_HW_AFDBM=y
CONFIG_ARM64_LSE_ATOMICS=y
+CONFIG_ARM64_MTE=y
CONFIG_ARM64_PA_BITS_48=y
CONFIG_ARM64_PAN=y
CONFIG_ARM64_PMEM=y
@@ -364,6 +371,7 @@ CONFIG_ARM_CCI_PMU=m
CONFIG_ARM_CCI=y
CONFIG_ARM_CCN=y
# CONFIG_ARM_CHARLCD is not set
+# CONFIG_ARM_CMN is not set
CONFIG_ARM_CPUIDLE=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8
@@ -406,6 +414,7 @@ CONFIG_ARM_SMC_WATCHDOG=m
CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT=y
# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set
CONFIG_ARM_SMMU_V3_PMU=m
+CONFIG_ARM_SMMU_V3_SVA=y
CONFIG_ARM_SMMU_V3=y
CONFIG_ARM_SMMU=y
CONFIG_ARM_SP805_WATCHDOG=m
@@ -418,6 +427,7 @@ CONFIG_ARM_TEGRA_DEVFREQ=m
CONFIG_ARM_TIMER_SP804=y
CONFIG_ARMV8_DEPRECATED=y
# CONFIG_AS3935 is not set
+# CONFIG_AS73211 is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE=m
CONFIG_ASYNC_RAID6_TEST=m
@@ -443,9 +453,11 @@ CONFIG_ATH10K_SNOC=m
# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
+CONFIG_ATH11K_AHB=m
CONFIG_ATH11K_DEBUGFS=y
# CONFIG_ATH11K_DEBUG is not set
CONFIG_ATH11K=m
+CONFIG_ATH11K_PCI=m
# CONFIG_ATH11K_SPECTRAL is not set
# CONFIG_ATH11K_TRACING is not set
CONFIG_ATH5K_DEBUG=y
@@ -556,6 +568,7 @@ CONFIG_BACKLIGHT_ARCXCNN=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=m
CONFIG_BACKLIGHT_GPIO=m
+CONFIG_BACKLIGHT_KTD253=m
CONFIG_BACKLIGHT_LED=m
# CONFIG_BACKLIGHT_LM3630A is not set
# CONFIG_BACKLIGHT_LM3639 is not set
@@ -591,7 +604,7 @@ CONFIG_BATTERY_CW2015=m
CONFIG_BATTERY_GAUGE_LTC2941=m
# CONFIG_BATTERY_LEGO_EV3 is not set
CONFIG_BATTERY_MAX17040=m
-# CONFIG_BATTERY_MAX17042 is not set
+CONFIG_BATTERY_MAX17042=m
# CONFIG_BATTERY_MAX1721X is not set
CONFIG_BATTERY_SBS=m
CONFIG_BAYCOM_EPP=m
@@ -731,6 +744,8 @@ CONFIG_BPF_JIT=y
# CONFIG_BPF_KPROBE_OVERRIDE is not set
CONFIG_BPF_LIRC_MODE2=y
CONFIG_BPF_LSM=y
+CONFIG_BPF_PRELOAD_UMD=m
+CONFIG_BPF_PRELOAD=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -865,6 +880,7 @@ CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_ISOTP is not set
# CONFIG_CAN_J1939 is not set
# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
@@ -874,6 +890,7 @@ CONFIG_CAN_M_CAN=m
# CONFIG_CAN_M_CAN_PLATFORM is not set
# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
+# CONFIG_CAN_MCP251XFD is not set
CONFIG_CAN_MCP251X=m
CONFIG_CAN_PEAK_PCIEC=y
CONFIG_CAN_PEAK_PCIEFD=m
@@ -968,6 +985,7 @@ CONFIG_CHARGER_BD99954=m
CONFIG_CHARGER_BQ24735=m
CONFIG_CHARGER_BQ2515X=m
# CONFIG_CHARGER_BQ25890 is not set
+CONFIG_CHARGER_BQ25980=m
CONFIG_CHARGER_CROS_USBPD=m
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
# CONFIG_CHARGER_GPIO is not set
@@ -986,7 +1004,8 @@ CONFIG_CHARLCD_BL_FLASH=y
# CONFIG_CHARLCD_BL_OFF is not set
# CONFIG_CHARLCD_BL_ON is not set
CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_CHELSIO_IPSEC_INLINE=y
+CONFIG_CHELSIO_INLINE_CRYPTO=y
+CONFIG_CHELSIO_IPSEC_INLINE=m
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -994,7 +1013,7 @@ CONFIG_CHELSIO_T4_DCB=y
# CONFIG_CHELSIO_T4_FCOE is not set
CONFIG_CHELSIO_T4=m
CONFIG_CHELSIO_T4VF=m
-CONFIG_CHELSIO_TLS_DEVICE=y
+CONFIG_CHELSIO_TLS_DEVICE=m
CONFIG_CHR_DEV_SCH=m
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_ST=m
@@ -1026,8 +1045,19 @@ CONFIG_CLK_IMX8MN=y
CONFIG_CLK_IMX8MQ=y
CONFIG_CLK_IMX8QXP=y
CONFIG_CLK_LS1028A_PLLDIG=y
+CONFIG_CLK_PX30=y
CONFIG_CLK_QORIQ=y
CONFIG_CLK_RASPBERRYPI=y
+CONFIG_CLK_RK3036=y
+CONFIG_CLK_RK312X=y
+CONFIG_CLK_RK3188=y
+CONFIG_CLK_RK322X=y
+CONFIG_CLK_RK3288=y
+CONFIG_CLK_RK3308=y
+CONFIG_CLK_RK3328=y
+CONFIG_CLK_RK3368=y
+CONFIG_CLK_RK3399=y
+CONFIG_CLK_RV110X=y
# CONFIG_CLK_SIFIVE is not set
CONFIG_CLK_SP810=y
# CONFIG_CLKSRC_STM32_LP is not set
@@ -1078,12 +1108,14 @@ CONFIG_COMMON_CLK_HI6220=y
CONFIG_COMMON_CLK_HI655X=m
CONFIG_COMMON_CLK_MAX77686=y
# CONFIG_COMMON_CLK_MAX9485 is not set
+CONFIG_COMMON_CLK_MESON8B=y
CONFIG_COMMON_CLK_MESON_PHASE=y
CONFIG_COMMON_CLK_MESON_SCLK_DIV=y
# CONFIG_COMMON_CLK_MMP2_AUDIO is not set
CONFIG_COMMON_CLK_PWM=m
CONFIG_COMMON_CLK_QCOM=y
CONFIG_COMMON_CLK_RK808=y
+CONFIG_COMMON_CLK_ROCKCHIP=y
CONFIG_COMMON_CLK_SCMI=m
CONFIG_COMMON_CLK_SCPI=m
# CONFIG_COMMON_CLK_SI514 is not set
@@ -1113,7 +1145,17 @@ CONFIG_CONTEXT_SWITCH_TRACER=y
# CONFIG_CONTEXT_TRACKING_FORCE is not set
CONFIG_CORDIC=m
CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
-# CONFIG_CORESIGHT is not set
+CONFIG_CORESIGHT_CATU=m
+CONFIG_CORESIGHT_CPU_DEBUG=m
+# CONFIG_CORESIGHT_CTI_INTEGRATION_REGS is not set
+CONFIG_CORESIGHT_CTI=m
+CONFIG_CORESIGHT_LINK_AND_SINK_TMC=m
+CONFIG_CORESIGHT_LINKS_AND_SINKS=m
+CONFIG_CORESIGHT=m
+CONFIG_CORESIGHT_SINK_ETBV10=m
+CONFIG_CORESIGHT_SINK_TPIU=m
+CONFIG_CORESIGHT_SOURCE_ETM4X=m
+CONFIG_CORESIGHT_STM=m
CONFIG_CORTINA_PHY=m
# CONFIG_COUNTER is not set
CONFIG_CP15_BARRIER_EMULATION=y
@@ -1275,9 +1317,14 @@ CONFIG_CRYPTO_DEV_SP_CCP=y
CONFIG_CRYPTO_DEV_SUN4I_SS=m
CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y
# CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG is not set
+CONFIG_CRYPTO_DEV_SUN8I_CE_HASH=y
CONFIG_CRYPTO_DEV_SUN8I_CE=m
+CONFIG_CRYPTO_DEV_SUN8I_CE_PRNG=y
+CONFIG_CRYPTO_DEV_SUN8I_CE_TRNG=y
# CONFIG_CRYPTO_DEV_SUN8I_SS_DEBUG is not set
+CONFIG_CRYPTO_DEV_SUN8I_SS_HASH=y
CONFIG_CRYPTO_DEV_SUN8I_SS=m
+CONFIG_CRYPTO_DEV_SUN8I_SS_PRNG=y
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DEV_ZYNQMP_AES=m
CONFIG_CRYPTO_DH=y
@@ -1344,7 +1391,9 @@ CONFIG_CRYPTO_SHA3=m
CONFIG_CRYPTO_SHA512_ARM64_CE=m
CONFIG_CRYPTO_SHA512_ARM64=m
CONFIG_CRYPTO_SHA512_ARM=y
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
+CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_SM3_ARM64_CE=m
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4_ARM64_CE=m
@@ -1356,7 +1405,9 @@ CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_USER_API_AEAD=y
+# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
CONFIG_CRYPTO_USER_API_HASH=y
+# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER=m
@@ -1367,6 +1418,7 @@ CONFIG_CRYPTO_XTS=y
CONFIG_CRYPTO_XXHASH=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ZSTD=m
+# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
# CONFIG_CUSE is not set
CONFIG_CW1200=m
CONFIG_CW1200_WLAN_SDIO=m
@@ -1496,6 +1548,7 @@ CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
# CONFIG_DMA_FENCE_TRACE is not set
CONFIG_DMA_OF=y
+# CONFIG_DMA_PERNUMA_CMA is not set
# CONFIG_DMARD06 is not set
# CONFIG_DMARD09 is not set
CONFIG_DMARD10=m
@@ -1551,6 +1604,7 @@ CONFIG_DP83869_PHY=m
CONFIG_DPAA2_CONSOLE=m
CONFIG_DPOT_DAC=m
# CONFIG_DPS310 is not set
+# CONFIG_DPTF_PCH_FIVR is not set
CONFIG_DRAGONRISE_FF=y
# CONFIG_DRBD_FAULT_INJECTION is not set
CONFIG_DRM_AMD_ACP=y
@@ -1558,6 +1612,7 @@ CONFIG_DRM_AMD_DC_DCN2_0=y
CONFIG_DRM_AMD_DC_DCN3_0=y
CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
CONFIG_DRM_AMD_DC_HDCP=y
+CONFIG_DRM_AMD_DC_SI=y
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMDGPU_CIK=y
# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
@@ -1572,6 +1627,7 @@ CONFIG_DRM_ANALOGIX_DP=m
CONFIG_DRM_AST=m
CONFIG_DRM_BOCHS=m
# CONFIG_DRM_CDNS_DSI is not set
+CONFIG_DRM_CDNS_MHDP8546=m
CONFIG_DRM_CHRONTEL_CH7033=m
CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_SELFTEST is not set
@@ -1601,11 +1657,13 @@ CONFIG_DRM_I2C_CH7006=m
# CONFIG_DRM_I2C_NXP_TDA9950 is not set
# CONFIG_DRM_I2C_NXP_TDA998X is not set
CONFIG_DRM_I2C_SIL164=m
+CONFIG_DRM_IMX_DCSS=m
# CONFIG_DRM_KOMEDA_ERROR_PRINT is not set
CONFIG_DRM_KOMEDA=m
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LIMA=m
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+CONFIG_DRM_LONTIUM_LT9611=m
# CONFIG_DRM_LVDS_CODEC is not set
# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
@@ -1615,11 +1673,13 @@ CONFIG_DRM_MESON_DW_HDMI=m
CONFIG_DRM_MESON=m
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
+CONFIG_DRM_MSM_DP=y
CONFIG_DRM_MSM_DSI_10NM_PHY=y
CONFIG_DRM_MSM_DSI_14NM_PHY=y
CONFIG_DRM_MSM_DSI_20NM_PHY=y
CONFIG_DRM_MSM_DSI_28NM_8960_PHY=y
CONFIG_DRM_MSM_DSI_28NM_PHY=y
+CONFIG_DRM_MSM_DSI_7NM_PHY=y
CONFIG_DRM_MSM_DSI_PLL=y
CONFIG_DRM_MSM_DSI=y
CONFIG_DRM_MSM_HDMI_HDCP=y
@@ -1649,6 +1709,7 @@ CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m
# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
CONFIG_DRM_PANEL_LVDS=m
+CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m
# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
CONFIG_DRM_PANEL_NOVATEK_NT35510=m
# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
@@ -1674,7 +1735,7 @@ CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_PANEL_SITRONIX_ST7701=m
CONFIG_DRM_PANEL_SITRONIX_ST7703=m
-# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+CONFIG_DRM_PANEL_SITRONIX_ST7789V=m
# CONFIG_DRM_PANEL_SONY_ACX424AKP is not set
# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
@@ -1717,9 +1778,11 @@ CONFIG_DRM_TIDSS=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TI_TPD12S015=m
+CONFIG_DRM_TOSHIBA_TC358762=m
CONFIG_DRM_TOSHIBA_TC358764=m
CONFIG_DRM_TOSHIBA_TC358767=m
CONFIG_DRM_TOSHIBA_TC358768=m
+CONFIG_DRM_TOSHIBA_TC358775=m
CONFIG_DRM_UDL=m
CONFIG_DRM_V3D=m
# CONFIG_DRM_VBOXVIDEO is not set
@@ -1829,6 +1892,7 @@ CONFIG_DW_EDMA_PCIE=m
CONFIG_DWMAC_DWC_QOS_ETH=m
CONFIG_DWMAC_GENERIC=m
CONFIG_DWMAC_IMX8=m
+CONFIG_DWMAC_INTEL_PLAT=m
CONFIG_DWMAC_IPQ806X=m
CONFIG_DWMAC_MESON=m
CONFIG_DWMAC_QCOM_ETHQOS=m
@@ -1908,7 +1972,10 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
CONFIG_ETHTOOL_NETLINK=y
# CONFIG_EUROTECH_WDT is not set
-# CONFIG_EVM is not set
+# CONFIG_EVM_ADD_XATTRS is not set
+CONFIG_EVM_ATTR_FSUUID=y
+# CONFIG_EVM_LOAD_X509 is not set
+CONFIG_EVM=y
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
CONFIG_EXFAT_FS=m
# CONFIG_EXPERT is not set
@@ -1960,6 +2027,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
# CONFIG_FAT_DEFAULT_UTF8 is not set
CONFIG_FAT_FS=m
# CONFIG_FAULT_INJECTION is not set
+# CONFIG_FAULT_INJECTION_USERCOPY is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_ARK is not set
CONFIG_FB_ARMCLCD=y
@@ -2119,6 +2187,7 @@ CONFIG_FUJITSU_ERRATUM_010001=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_FUNCTION_TRACER=y
+CONFIG_FUSE_DAX=y
CONFIG_FUSE_FS=m
CONFIG_FUSION_CTL=m
CONFIG_FUSION_FC=m
@@ -2176,7 +2245,10 @@ CONFIG_GIGASET_CAPI=y
CONFIG_GIGASET_M101=m
CONFIG_GIGASET_M105=m
# CONFIG_GLOB_SELFTEST is not set
-# CONFIG_GNSS is not set
+CONFIG_GNSS=m
+CONFIG_GNSS_MTK_SERIAL=m
+CONFIG_GNSS_SIRF_SERIAL=m
+CONFIG_GNSS_UBX_SERIAL=m
# CONFIG_GOLDFISH is not set
# CONFIG_GOOGLE_FIRMWARE is not set
CONFIG_GP2AP002=m
@@ -2192,6 +2264,7 @@ CONFIG_GPIO_AGGREGATOR=m
# CONFIG_GPIO_BCM_XGS_IPROC is not set
CONFIG_GPIO_BD9571MWV=m
CONFIG_GPIO_CADENCE=m
+CONFIG_GPIO_CDEV_V1=y
CONFIG_GPIO_DWAPB=m
CONFIG_GPIO_EXAR=m
# CONFIG_GPIO_FTGPIO010 is not set
@@ -2218,6 +2291,7 @@ CONFIG_GPIO_MLXBF=m
CONFIG_GPIO_MOXTET=m
CONFIG_GPIO_MPC8XXX=y
CONFIG_GPIO_MVEBU=y
+CONFIG_GPIO_MXC=m
CONFIG_GPIO_PCA953X_IRQ=y
CONFIG_GPIO_PCA953X=y
CONFIG_GPIO_PCA9570=m
@@ -2270,6 +2344,7 @@ CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HD44780=m
CONFIG_HDC100X=m
+CONFIG_HDC2010=m
CONFIG_HEADERS_CHECK=y
CONFIG_HEADERS_INSTALL=y
CONFIG_HEADER_TEST=y
@@ -2386,6 +2461,7 @@ CONFIG_HID_U2FZERO=m
CONFIG_HID_UCLOGIC=m
CONFIG_HID_UDRAW_PS3=m
CONFIG_HID_VIEWSONIC=m
+CONFIG_HID_VIVALDI=m
CONFIG_HID_WACOM=m
CONFIG_HID_WALTOP=m
CONFIG_HID_WIIMOTE=m
@@ -2396,6 +2472,7 @@ CONFIG_HID_ZYDACRON=m
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_HIPPI is not set
CONFIG_HISI_DMA=m
+CONFIG_HISI_HIKEY_USB=m
CONFIG_HISILICON_ERRATUM_161010101=y
CONFIG_HISILICON_ERRATUM_161600802=y
CONFIG_HISILICON_IRQ_MBIGEN=y
@@ -2455,6 +2532,7 @@ CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=y
CONFIG_HW_RANDOM_XGENE=m
+CONFIG_HW_RANDOM_XIPHERA=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK_QCOM=m
CONFIG_HWSPINLOCK=y
@@ -2511,6 +2589,7 @@ CONFIG_I2C_IMX_LPI2C=m
CONFIG_I2C_IMX=m
# CONFIG_I2C_ISCH is not set
CONFIG_I2C_MESON=m
+CONFIG_I2C_MLXBF=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MUX_GPIO=m
CONFIG_I2C_MUX_GPMUX=m
@@ -2544,6 +2623,7 @@ CONFIG_I2C_SIMTEC=m
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
CONFIG_I2C_SLAVE_EEPROM=m
+# CONFIG_I2C_SLAVE_TESTUNIT is not set
CONFIG_I2C_SLAVE=y
CONFIG_I2C_STUB=m
CONFIG_I2C_SYNQUACER=m
@@ -2599,6 +2679,8 @@ CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IGC=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_DMAENGINE=m
+CONFIG_IIO_BUFFER_DMA=m
CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
@@ -2633,6 +2715,7 @@ CONFIG_IIO_SW_TRIGGER=m
CONFIG_IIO_SYSFS_TRIGGER=m
CONFIG_IIO_TIGHTLOOP_TRIGGER=m
CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_TRIGGERED_EVENT=m
CONFIG_IIO_TRIGGER=y
# CONFIG_IKCONFIG is not set
CONFIG_IKHEADERS=m
@@ -2643,6 +2726,7 @@ CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
+CONFIG_IMA_DEFAULT_HASH="sha256"
CONFIG_IMA_DEFAULT_HASH_SHA256=y
# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
@@ -2667,7 +2751,7 @@ CONFIG_IMX_DSP=m
CONFIG_IMX_GPCV2_PM_DOMAINS=y
CONFIG_IMX_GPCV2=y
# CONFIG_IMX_IPUV3_CORE is not set
-# CONFIG_IMX_IRQSTEER is not set
+CONFIG_IMX_IRQSTEER=y
CONFIG_IMX_MBOX=m
CONFIG_IMX_REMOTEPROC=m
CONFIG_IMX_SC_THERMAL=m
@@ -2691,6 +2775,7 @@ CONFIG_INET_ESPINTCP=y
CONFIG_INET_ESP=m
CONFIG_INET_ESP_OFFLOAD=m
CONFIG_INET_IPCOMP=m
+CONFIG_INET_MPTCP_DIAG=m
CONFIG_INET_RAW_DIAG=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_UDP_DIAG=m
@@ -2807,6 +2892,7 @@ CONFIG_INTEGRITY=y
# CONFIG_INTEL_IDMA64 is not set
CONFIG_INTEL_IDXD=m
# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
+# CONFIG_INTEL_MEI_VIRTIO is not set
# CONFIG_INTEL_SCU_PCI is not set
# CONFIG_INTEL_SCU_PLATFORM is not set
CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m
@@ -2826,6 +2912,8 @@ CONFIG_INTERCONNECT_QCOM_OSM_L3=m
# CONFIG_INTERCONNECT_QCOM_QCS404 is not set
CONFIG_INTERCONNECT_QCOM_SC7180=m
CONFIG_INTERCONNECT_QCOM_SDM845=m
+CONFIG_INTERCONNECT_QCOM_SM8150=m
+CONFIG_INTERCONNECT_QCOM_SM8250=m
CONFIG_INTERCONNECT_QCOM=y
CONFIG_INTERCONNECT=y
# CONFIG_INTERVAL_TREE_TEST is not set
@@ -3092,6 +3180,7 @@ CONFIG_JFS_SECURITY=y
CONFIG_JME=m
CONFIG_JOLIET=y
CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADC=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
@@ -3108,23 +3197,23 @@ CONFIG_JOYSTICK_IFORCE=m
CONFIG_JOYSTICK_IFORCE_USB=m
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
-CONFIG_JOYSTICK_MAGELLAN=m
+# CONFIG_JOYSTICK_MAGELLAN is not set
CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_PXRC=m
CONFIG_JOYSTICK_SIDEWINDER=m
-CONFIG_JOYSTICK_SPACEBALL=m
-CONFIG_JOYSTICK_SPACEORB=m
-CONFIG_JOYSTICK_STINGER=m
+# CONFIG_JOYSTICK_SPACEBALL is not set
+# CONFIG_JOYSTICK_SPACEORB is not set
+# CONFIG_JOYSTICK_STINGER is not set
CONFIG_JOYSTICK_TMDC=m
CONFIG_JOYSTICK_TURBOGRAFX=m
-CONFIG_JOYSTICK_TWIDJOY=m
+# CONFIG_JOYSTICK_TWIDJOY is not set
CONFIG_JOYSTICK_WALKERA0701=m
-CONFIG_JOYSTICK_WARRIOR=m
+# CONFIG_JOYSTICK_WARRIOR is not set
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
CONFIG_JOYSTICK_XPAD=m
-CONFIG_JOYSTICK_ZHENHUA=m
+# CONFIG_JOYSTICK_ZHENHUA is not set
# CONFIG_JSA1212 is not set
CONFIG_JUMP_LABEL=y
CONFIG_K3_DMA=m
@@ -3132,6 +3221,7 @@ CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS=y
CONFIG_KARMA_PARTITION=y
# CONFIG_KASAN is not set
+# CONFIG_KASAN_SW_TAGS is not set
# CONFIG_KASAN_VMALLOC is not set
# CONFIG_KCOV is not set
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
@@ -3145,7 +3235,8 @@ CONFIG_KERNEL_MODE_NEON=y
# CONFIG_KERNEL_UNCOMPRESSED is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_ZSTD is not set
-# CONFIG_KEXEC_FILE is not set
+CONFIG_KEXEC_FILE=y
+CONFIG_KEXEC_IMAGE_VERIFY_SIG=y
CONFIG_KEXEC_SIG=y
CONFIG_KEXEC=y
CONFIG_KEYBOARD_ADC=m
@@ -3190,6 +3281,7 @@ CONFIG_KEY_DH_OPERATIONS=y
CONFIG_KEY_NOTIFICATIONS=y
CONFIG_KEYS_REQUEST_CACHE=y
CONFIG_KEYS=y
+CONFIG_KGDB_HONOUR_BLOCKLIST=y
# CONFIG_KGDB_KDB is not set
CONFIG_KGDB_LOW_LEVEL_TRAP=y
CONFIG_KGDB_SERIAL_CONSOLE=y
@@ -3245,6 +3337,7 @@ CONFIG_LDISC_AUTOLOAD=y
CONFIG_LDM_PARTITION=y
# CONFIG_LEDS_AAT1290 is not set
CONFIG_LEDS_AN30259A=m
+# CONFIG_LEDS_ARIEL is not set
CONFIG_LEDS_AS3645A=m
# CONFIG_LEDS_AW2013 is not set
# CONFIG_LEDS_BCM6328 is not set
@@ -3271,6 +3364,7 @@ CONFIG_LEDS_LM3601X=m
CONFIG_LEDS_LM3692X=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
+CONFIG_LEDS_LP50XX=m
# CONFIG_LEDS_LP5521 is not set
# CONFIG_LEDS_LP5523 is not set
# CONFIG_LEDS_LP5562 is not set
@@ -3586,9 +3680,12 @@ CONFIG_MFD_CROS_EC_DEV=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
+CONFIG_MFD_ENE_KB3930=m
# CONFIG_MFD_GATEWORKS_GSC is not set
CONFIG_MFD_HI6421_PMIC=m
+# CONFIG_MFD_HI6421_SPMI is not set
CONFIG_MFD_HI655X_PMIC=m
+CONFIG_MFD_INTEL_M10_BMC=m
# CONFIG_MFD_INTEL_PMC_BXT is not set
# CONFIG_MFD_IQS62X is not set
# CONFIG_MFD_JANZ_CMODIO is not set
@@ -3632,6 +3729,7 @@ CONFIG_MFD_ROHM_BD718XX=y
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SL28CPLD is not set
CONFIG_MFD_SM501_GPIO=y
CONFIG_MFD_SM501=m
# CONFIG_MFD_SMSC is not set
@@ -3673,6 +3771,7 @@ CONFIG_MFD_WL1273_CORE=m
# CONFIG_MFD_WM8994 is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
+# CONFIG_MHI_BUS_DEBUG is not set
CONFIG_MHI_BUS=m
# CONFIG_MICREL_KS8995MA is not set
CONFIG_MICREL_PHY=m
@@ -3978,6 +4077,7 @@ CONFIG_MVMDIO=m
CONFIG_MVNETA_BM_ENABLE=m
CONFIG_MVNETA=m
CONFIG_MVPP2=m
+CONFIG_MVPP2_PTP=y
CONFIG_MV_XOR_V2=y
CONFIG_MV_XOR=y
CONFIG_MWAVE=m
@@ -4419,6 +4519,7 @@ CONFIG_NFS_V3=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
CONFIG_NFS_V4_1=y
+# CONFIG_NFS_V4_2_READ_PLUS is not set
CONFIG_NFS_V4_2=y
CONFIG_NFS_V4=m
CONFIG_NF_TABLES_ARP=y
@@ -4722,6 +4823,7 @@ CONFIG_PCIE_DW_PLAT_HOST=y
CONFIG_PCIE_DW=y
CONFIG_PCIE_ECRC=y
CONFIG_PCIE_EDR=y
+# CONFIG_PCIE_HISI_ERR is not set
CONFIG_PCIE_HISI_STB=y
CONFIG_PCIE_KIRIN=y
CONFIG_PCIE_LAYERSCAPE_GEN4=y
@@ -4780,6 +4882,7 @@ CONFIG_PCMCIA_SMC91C92=m
CONFIG_PCMCIA_XIRC2PS=m
CONFIG_PCMCIA_XIRCOM=m
CONFIG_PCNET32=m
+CONFIG_PCS_XPCS=m
CONFIG_PD6729=m
# CONFIG_PDA_POWER is not set
CONFIG_PDC_ADMA=m
@@ -4799,10 +4902,13 @@ CONFIG_PHY_CADENCE_TORRENT=m
# CONFIG_PHY_DM816X_USB is not set
CONFIG_PHY_FSL_IMX8MQ_USB=m
CONFIG_PHY_HI3660_USB=m
+# CONFIG_PHY_HI3670_USB is not set
CONFIG_PHY_HI6220_USB=m
CONFIG_PHY_HISI_INNO_USB2=m
CONFIG_PHY_HISTB_COMBPHY=m
# CONFIG_PHY_INTEL_EMMC is not set
+# CONFIG_PHY_INTEL_KEEMBAY_EMMC is not set
+# CONFIG_PHY_INTEL_LGM_EMMC is not set
CONFIG_PHYLIB=y
CONFIG_PHYLINK=m
# CONFIG_PHY_MAPPHONE_MDM6600 is not set
@@ -4855,7 +4961,7 @@ CONFIG_PHY_TEGRA_XUSB=m
CONFIG_PHY_XGENE=y
CONFIG_PHY_XILINX_ZYNQMP=m
# CONFIG_PI433 is not set
-# CONFIG_PID_IN_CONTEXTIDR is not set
+CONFIG_PID_IN_CONTEXTIDR=y
CONFIG_PID_NS=y
CONFIG_PINCONF=y
CONFIG_PINCTRL_AMD=y
@@ -4894,6 +5000,7 @@ CONFIG_PINCTRL_MESON_AXG=y
CONFIG_PINCTRL_MESON_G12A=y
CONFIG_PINCTRL_MESON_GXBB=y
CONFIG_PINCTRL_MESON_GXL=y
+CONFIG_PINCTRL_MSM8226=m
# CONFIG_PINCTRL_MSM8660 is not set
CONFIG_PINCTRL_MSM8916=y
# CONFIG_PINCTRL_MSM8960 is not set
@@ -4918,6 +5025,8 @@ CONFIG_PINCTRL_SINGLE=y
# CONFIG_PINCTRL_SM8250 is not set
# CONFIG_PINCTRL_STMFX is not set
# CONFIG_PINCTRL_SUN4I_A10 is not set
+# CONFIG_PINCTRL_SUN50I_A100 is not set
+# CONFIG_PINCTRL_SUN50I_A100_R is not set
CONFIG_PINCTRL_SUN50I_A64_R=y
CONFIG_PINCTRL_SUN50I_A64=y
CONFIG_PINCTRL_SUN50I_H5=y
@@ -4977,7 +5086,6 @@ CONFIG_POSIX_MQUEUE=y
# CONFIG_POWER7_CPU is not set
# CONFIG_POWER8_CPU is not set
# CONFIG_POWER9_CPU is not set
-CONFIG_POWER_AVS=y
CONFIG_POWERCAP=y
CONFIG_POWER_RESET_AS3722=y
# CONFIG_POWER_RESET_BRCMKONA is not set
@@ -4990,8 +5098,8 @@ CONFIG_POWER_RESET_HISI=y
CONFIG_POWER_RESET_MSM=y
CONFIG_POWER_RESET_QCOM_PON=m
CONFIG_POWER_RESET_RESTART=y
-# CONFIG_POWER_RESET_SYSCON is not set
-# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
+CONFIG_POWER_RESET_SYSCON=y
CONFIG_POWER_RESET_VERSATILE=y
CONFIG_POWER_RESET_VEXPRESS=y
CONFIG_POWER_RESET_XGENE=y
@@ -5002,6 +5110,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_PPC_PROT_SAO_LPAR is not set
# CONFIG_PPC_PTDUMP is not set
# CONFIG_PPC_QUEUED_SPINLOCKS is not set
+CONFIG_PPC_RTAS_FILTER=y
CONFIG_PPDEV=m
CONFIG_PPP_ASYNC=m
CONFIG_PPP_BSDCOMP=m
@@ -5025,6 +5134,8 @@ CONFIG_PPTP=m
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PRESTERA=m
+CONFIG_PRESTERA_PCI=m
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_PRIME_NUMBERS is not set
CONFIG_PRINTER=m
@@ -5244,6 +5355,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_PERF_TEST is not set
# CONFIG_RCU_REF_SCALE_TEST is not set
+# CONFIG_RCU_SCALE_TEST is not set
CONFIG_RCU_TORTURE_TEST=m
# CONFIG_RCU_TRACE is not set
CONFIG_RC_XBOX_DVD=m
@@ -5325,7 +5437,10 @@ CONFIG_REGULATOR_QCOM_RPMH=y
CONFIG_REGULATOR_QCOM_SMD_RPM=m
CONFIG_REGULATOR_QCOM_SPMI=m
CONFIG_REGULATOR_QCOM_USB_VBUS=m
+CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m
CONFIG_REGULATOR_RK808=y
+CONFIG_REGULATOR_RT4801=m
+CONFIG_REGULATOR_RTMV20=m
# CONFIG_REGULATOR_SLG51000 is not set
CONFIG_REGULATOR_SY8106A=m
# CONFIG_REGULATOR_SY8824X is not set
@@ -5335,7 +5450,7 @@ CONFIG_REGULATOR_SY8827N=m
# CONFIG_REGULATOR_TPS65023 is not set
# CONFIG_REGULATOR_TPS6507X is not set
CONFIG_REGULATOR_TPS65086=m
-# CONFIG_REGULATOR_TPS65132 is not set
+CONFIG_REGULATOR_TPS65132=m
# CONFIG_REGULATOR_TPS6524X is not set
CONFIG_REGULATOR_USERSPACE_CONSUMER=m
CONFIG_REGULATOR_VCTRL=m
@@ -5364,6 +5479,7 @@ CONFIG_RESET_IMX7=y
CONFIG_RESET_MESON_AUDIO_ARB=m
CONFIG_RESET_QCOM_AOSS=y
CONFIG_RESET_QCOM_PDC=m
+CONFIG_RESET_RASPBERRYPI=y
CONFIG_RESET_SCMI=y
CONFIG_RESET_SIMPLE=y
# CONFIG_RESET_TI_SCI is not set
@@ -5386,6 +5502,7 @@ CONFIG_RMI4_F11=y
CONFIG_RMI4_F12=y
CONFIG_RMI4_F30=y
CONFIG_RMI4_F34=y
+CONFIG_RMI4_F3A=y
# CONFIG_RMI4_F54 is not set
CONFIG_RMI4_F55=y
CONFIG_RMI4_I2C=m
@@ -5536,6 +5653,7 @@ CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_RV3028=m
CONFIG_RTC_DRV_RV3029C2=m
CONFIG_RTC_DRV_RV3029_HWMON=y
+CONFIG_RTC_DRV_RV3032=m
# CONFIG_RTC_DRV_RV8803 is not set
CONFIG_RTC_DRV_RX4581=m
# CONFIG_RTC_DRV_RX6110 is not set
@@ -5560,7 +5678,7 @@ CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_SYSFS=y
-# CONFIG_RTC_NVMEM is not set
+CONFIG_RTC_NVMEM=y
# CONFIG_RTC_SYSTOHC is not set
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_RTL8180=m
@@ -5631,6 +5749,7 @@ CONFIG_SCD30_CORE=m
CONFIG_SCD30_I2C=m
CONFIG_SCD30_SERIAL=m
# CONFIG_SC_DISPCC_7180 is not set
+# CONFIG_SCF_TORTURE_TEST is not set
CONFIG_SC_GCC_7180=m
# CONFIG_SC_GPUCC_7180 is not set
CONFIG_SCHED_AUTOGROUP=y
@@ -5777,7 +5896,7 @@ CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0
CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_DISABLE=y
+# CONFIG_SECURITY_SELINUX_DISABLE is not set
CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
CONFIG_SECURITY_SELINUX=y
@@ -5798,6 +5917,7 @@ CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
# CONFIG_SENSORS_ADM1177 is not set
+CONFIG_SENSORS_ADM1266=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ADS7828=m
@@ -5849,6 +5969,7 @@ CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
# CONFIG_SENSORS_INSPUR_IPSPS is not set
+CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -5913,6 +6034,8 @@ CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_MLXREG_FAN=m
+CONFIG_SENSORS_MP2975=m
+CONFIG_SENSORS_MR75203=m
CONFIG_SENSORS_NCT6683=m
CONFIG_SENSORS_NCT6775=m
CONFIG_SENSORS_NCT7802=m
@@ -6106,6 +6229,7 @@ CONFIG_SMC911X=m
CONFIG_SMC91X=m
CONFIG_SMC_DIAG=m
CONFIG_SMC=m
+# CONFIG_SM_DISPCC_8250 is not set
# CONFIG_SM_FTL is not set
CONFIG_SM_GCC_8150=y
CONFIG_SM_GCC_8250=m
@@ -6121,6 +6245,8 @@ CONFIG_SMS_SDIO_DRV=m
CONFIG_SMS_SIANO_MDTV=m
CONFIG_SMS_SIANO_RC=y
CONFIG_SMS_USB_DRV=m
+# CONFIG_SM_VIDEOCC_8150 is not set
+# CONFIG_SM_VIDEOCC_8250 is not set
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AD1889=m
@@ -6250,7 +6376,6 @@ CONFIG_SND_MESON_GX_SOUND_CARD=m
CONFIG_SND_MIA=m
CONFIG_SND_MIXART=m
CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_MMP_SOC_SSPA=m
CONFIG_SND_MONA=m
CONFIG_SND_MPU401=m
CONFIG_SND_MTPAV=m
@@ -6308,6 +6433,7 @@ CONFIG_SND_SOC_CROS_EC_CODEC=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
+CONFIG_SND_SOC_CS4234=m
CONFIG_SND_SOC_CS4265=m
# CONFIG_SND_SOC_CS4270 is not set
CONFIG_SND_SOC_CS4271_I2C=m
@@ -6334,9 +6460,9 @@ CONFIG_SND_SOC_ES8328_SPI=m
CONFIG_SND_SOC_FSL_ASOC_CARD=m
CONFIG_SND_SOC_FSL_ASRC=m
CONFIG_SND_SOC_FSL_AUDMIX=m
-# CONFIG_SND_SOC_FSL_EASRC is not set
+CONFIG_SND_SOC_FSL_EASRC=m
CONFIG_SND_SOC_FSL_ESAI=m
-# CONFIG_SND_SOC_FSL_MICFIL is not set
+CONFIG_SND_SOC_FSL_MICFIL=m
CONFIG_SND_SOC_FSL_MQS=m
CONFIG_SND_SOC_FSL_SAI=m
CONFIG_SND_SOC_FSL_SPDIF=m
@@ -6355,12 +6481,14 @@ CONFIG_SND_SOC_IMX_AUDMUX=m
CONFIG_SND_SOC_IMX_SGTL5000=m
CONFIG_SND_SOC_IMX_SPDIF=m
# CONFIG_SND_SOC_INNO_RK3036 is not set
-CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
+# CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set
+# CONFIG_SND_SOC_INTEL_CATPT is not set
# CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH is not set
CONFIG_SND_SOC_INTEL_KEEMBAY=m
CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
# CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH is not set
-CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
+CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m
+# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set
CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
@@ -6412,7 +6540,7 @@ CONFIG_SND_SOC_ROCKCHIP_MAX98090=m
CONFIG_SND_SOC_ROCKCHIP_PDM=m
CONFIG_SND_SOC_ROCKCHIP_RT5645=m
CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
-# CONFIG_SND_SOC_RT1308_SDW is not set
+CONFIG_SND_SOC_RT1308_SDW=m
# CONFIG_SND_SOC_RT5616 is not set
# CONFIG_SND_SOC_RT5631 is not set
CONFIG_SND_SOC_RT5660=m
@@ -6420,9 +6548,9 @@ CONFIG_SND_SOC_RT5663=m
CONFIG_SND_SOC_RT5677=m
CONFIG_SND_SOC_RT5677_SPI=m
CONFIG_SND_SOC_RT5682_SDW=m
-# CONFIG_SND_SOC_RT700_SDW is not set
-# CONFIG_SND_SOC_RT711_SDW is not set
-# CONFIG_SND_SOC_RT715_SDW is not set
+CONFIG_SND_SOC_RT700_SDW=m
+CONFIG_SND_SOC_RT711_SDW=m
+CONFIG_SND_SOC_RT715_SDW=m
# CONFIG_SND_SOC_SAMSUNG_ARIES_WM8994 is not set
CONFIG_SND_SOC_SAMSUNG_MIDAS_WM1811=m
CONFIG_SND_SOC_SDM845=m
@@ -6453,6 +6581,7 @@ CONFIG_SND_SOC_SPDIF=m
# CONFIG_SND_SOC_STORM is not set
# CONFIG_SND_SOC_TAS2552 is not set
CONFIG_SND_SOC_TAS2562=m
+CONFIG_SND_SOC_TAS2764=m
CONFIG_SND_SOC_TAS2770=m
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TAS571X is not set
@@ -6578,7 +6707,22 @@ CONFIG_SOUNDWIRE=y
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM_VMEMMAP=y
-# CONFIG_SPEAKUP is not set
+CONFIG_SPEAKUP=m
+# CONFIG_SPEAKUP_SYNTH_ACNTPC is not set
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+# CONFIG_SPEAKUP_SYNTH_DECEXT is not set
+# CONFIG_SPEAKUP_SYNTH_DECPC is not set
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+# CONFIG_SPEAKUP_SYNTH_DTLK is not set
+# CONFIG_SPEAKUP_SYNTH_DUMMY is not set
+# CONFIG_SPEAKUP_SYNTH_KEYPC is not set
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_AMD is not set
CONFIG_SPI_ARMADA_3700=m
@@ -6643,6 +6787,7 @@ CONFIG_SPI_XLP=m
CONFIG_SPI=y
CONFIG_SPI_ZYNQMP_GQSPI=m
CONFIG_SPI_ZYNQ_QSPI=m
+# CONFIG_SPMI_HISI3670 is not set
CONFIG_SPMI_MSM_PMIC_ARB=y
CONFIG_SPMI_PMIC_CLKDIV=m
CONFIG_SPMI=y
@@ -6683,6 +6828,7 @@ CONFIG_STACK_VALIDATION=y
CONFIG_STAGING_MEDIA=y
CONFIG_STAGING=y
CONFIG_STANDALONE=y
+# CONFIG_STATIC_CALL_SELFTEST is not set
# CONFIG_STATIC_KEYS_SELFTEST is not set
# CONFIG_STATIC_USERMODEHELPER is not set
CONFIG_STE10XP=m
@@ -6690,7 +6836,8 @@ CONFIG_STK3310=m
# CONFIG_STK8312 is not set
# CONFIG_STK8BA50 is not set
# CONFIG_STM32_FMC2_EBI is not set
-# CONFIG_STM is not set
+# CONFIG_STM_DUMMY is not set
+CONFIG_STM=m
CONFIG_STMMAC_ETH=m
# CONFIG_STMMAC_PCI is not set
CONFIG_STMMAC_PLATFORM=m
@@ -6698,6 +6845,11 @@ CONFIG_STMMAC_PLATFORM=m
CONFIG_STMPE_ADC=m
CONFIG_STMPE_I2C=y
CONFIG_STMPE_SPI=y
+# CONFIG_STM_PROTO_BASIC is not set
+# CONFIG_STM_PROTO_SYS_T is not set
+# CONFIG_STM_SOURCE_CONSOLE is not set
+# CONFIG_STM_SOURCE_FTRACE is not set
+# CONFIG_STM_SOURCE_HEARTBEAT is not set
CONFIG_STRICT_DEVMEM=y
CONFIG_STRICT_KERNEL_RWX=y
# CONFIG_STRING_SELFTEST is not set
@@ -6708,6 +6860,8 @@ CONFIG_ST_UVIS25_I2C=m
CONFIG_ST_UVIS25=m
CONFIG_ST_UVIS25_SPI=m
# CONFIG_SUN4I_EMAC is not set
+CONFIG_SUN50I_A100_CCU=y
+CONFIG_SUN50I_A100_R_CCU=y
CONFIG_SUN50I_A64_CCU=y
CONFIG_SUN50I_DE2_BUS=y
CONFIG_SUN50I_ERRATUM_UNKNOWN1=y
@@ -6792,6 +6946,7 @@ CONFIG_TCG_TIS_SPI_CR50=y
CONFIG_TCG_TIS_SPI=m
# CONFIG_TCG_TIS_ST33ZP24_I2C is not set
# CONFIG_TCG_TIS_ST33ZP24_SPI is not set
+CONFIG_TCG_TIS_SYNQUACER=m
CONFIG_TCG_TIS=y
CONFIG_TCG_TPM=y
CONFIG_TCG_VTPM_PROXY=m
@@ -6859,6 +7014,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_HEXDUMP is not set
# CONFIG_TEST_HMM is not set
# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_KASAN_MODULE is not set
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_LIST_SORT is not set
@@ -6945,6 +7101,8 @@ CONFIG_TIPC_DIAG=m
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
+# CONFIG_TI_PRUSS_INTC is not set
+# CONFIG_TI_PRUSS is not set
# CONFIG_TI_SCI_CLK is not set
CONFIG_TI_SCI_PROTOCOL=m
# CONFIG_TI_ST is not set
@@ -7035,6 +7193,7 @@ CONFIG_TOUCHSCREEN_WACOM_W8001=m
# CONFIG_TOUCHSCREEN_WM97XX is not set
CONFIG_TOUCHSCREEN_ZET6223=m
CONFIG_TOUCHSCREEN_ZFORCE=m
+CONFIG_TOUCHSCREEN_ZINITIX=m
# CONFIG_TPL0102 is not set
CONFIG_TPM_KEY_PARSER=m
# CONFIG_TPS6105X is not set
@@ -7082,8 +7241,11 @@ CONFIG_TYPEC_HD3SS3220=m
CONFIG_TYPEC=m
CONFIG_TYPEC_MUX_PI3USB30532=m
CONFIG_TYPEC_NVIDIA_ALTMODE=m
+CONFIG_TYPEC_QCOM_PMIC=m
# CONFIG_TYPEC_RT1711H is not set
+CONFIG_TYPEC_STUSB160X=m
CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPCI_MAXIM=m
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
@@ -7135,6 +7297,7 @@ CONFIG_UNWINDER_ARM=y
# CONFIG_UNWINDER_FRAME_POINTER is not set
CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
+# CONFIG_USB4_DEBUGFS_WRITE is not set
CONFIG_USB4_NET=m
CONFIG_USB4=y
CONFIG_USB_ACM=m
@@ -7153,7 +7316,11 @@ CONFIG_USB_BELKIN=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_CATC=m
# CONFIG_USB_CDC_COMPOSITE is not set
-# CONFIG_USB_CDNS3 is not set
+CONFIG_USB_CDNS3_GADGET=y
+CONFIG_USB_CDNS3_HOST=y
+CONFIG_USB_CDNS3_IMX=m
+CONFIG_USB_CDNS3=m
+CONFIG_USB_CDNS3_PCI_WRAP=m
CONFIG_USB_CHAOSKEY=m
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_CHIPIDEA=m
@@ -7218,6 +7385,7 @@ CONFIG_USB_EMI62=m
CONFIG_USB_EPSON2888=y
# CONFIG_USB_ETH is not set
CONFIG_USB_EZUSB_FX2=m
+# CONFIG_USB_FEW_INIT_RETRIES is not set
# CONFIG_USB_FOTG210_HCD is not set
# CONFIG_USB_FOTG210_UDC is not set
# CONFIG_USB_FSL_USB2 is not set
@@ -7328,6 +7496,7 @@ CONFIG_USB_LD=m
CONFIG_USB_LEDS_TRIGGER_USBPORT=m
CONFIG_USB_LED_TRIG=y
CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LGM_PHY=m
# CONFIG_USB_LINK_LAYER_TEST is not set
CONFIG_USB_M5602=m
# CONFIG_USB_M66592 is not set
@@ -7516,7 +7685,7 @@ CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_HISTB is not set
CONFIG_USB_XHCI_MVEBU=m
-CONFIG_USB_XHCI_PCI_RENESAS=y
+CONFIG_USB_XHCI_PCI_RENESAS=m
CONFIG_USB_XHCI_PLATFORM=m
CONFIG_USB_XHCI_TEGRA=m
CONFIG_USB_XUSBATM=m
@@ -7542,7 +7711,7 @@ CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_VALIDATE_FS_PARSER=y
# CONFIG_VBOXSF_FS is not set
CONFIG_VCNL3020=m
-# CONFIG_VCNL4000 is not set
+CONFIG_VCNL4000=m
CONFIG_VCNL4035=m
CONFIG_VDPA=m
CONFIG_VDPA_MENU=y
@@ -7557,12 +7726,14 @@ CONFIG_VEXPRESS_SYSCFG=y
# CONFIG_VF610_DAC is not set
CONFIG_VFAT_FS=m
CONFIG_VFIO_AMBA=m
+# CONFIG_VFIO_FSL_MC is not set
CONFIG_VFIO_IOMMU_TYPE1=m
CONFIG_VFIO=m
CONFIG_VFIO_MDEV_DEVICE=m
CONFIG_VFIO_MDEV=m
# CONFIG_VFIO_NOIOMMU is not set
CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_ZDEV=y
CONFIG_VFIO_PLATFORM_AMDXGBE_RESET=m
# CONFIG_VFIO_PLATFORM_CALXEDAXGMAC_RESET is not set
CONFIG_VFIO_PLATFORM=m
@@ -7728,6 +7899,7 @@ CONFIG_VIDEO_SUNXI_CEDRUS=m
CONFIG_VIDEO_SUNXI=y
CONFIG_VIDEO_TEGRA_HDMI_CEC=m
CONFIG_VIDEO_TEGRA=m
+# CONFIG_VIDEO_TEGRA_TPG is not set
CONFIG_VIDEO_TM6000_ALSA=m
CONFIG_VIDEO_TM6000_DVB=m
CONFIG_VIDEO_TM6000=m
@@ -7741,6 +7913,7 @@ CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_VIDEO_VS6624=m
# CONFIG_VIDEO_XILINX is not set
+# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIPERBOARD_ADC is not set
CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
@@ -7904,6 +8077,7 @@ CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_STATISTICS=y
CONFIG_XFRM_SUB_POLICY=y
+# CONFIG_XFRM_USER_COMPAT is not set
CONFIG_XFRM_USER=y
CONFIG_XFRM=y
# CONFIG_XFS_DEBUG is not set
@@ -7913,6 +8087,7 @@ CONFIG_XFS_ONLINE_SCRUB=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_QUOTA=y
# CONFIG_XFS_RT is not set
+CONFIG_XFS_SUPPORT_V4=y
# CONFIG_XFS_WARN is not set
# CONFIG_XGENE_DMA is not set
CONFIG_XGENE_PMU=y
@@ -7945,6 +8120,7 @@ CONFIG_YELLOWFIN=m
CONFIG_YENTA=m
CONFIG_Z3FOLD=y
CONFIG_ZBUD=y
+# CONFIG_ZCRYPT_DEBUG is not set
# CONFIG_ZD1211RW_DEBUG is not set
CONFIG_ZD1211RW=m
CONFIG_ZEROPLUS_FF=y
@@ -7984,4 +8160,5 @@ CONFIG_ZYNQMP_POWER=y
# Select this config option to add support for the initrd= command
# This option determines the default init for the system if no init=
# warnings from C=1 sparse checker or -Wextra compilations. It has
+# You can set the size of pernuma CMA by specifying "cma_pernuma=size"
CONFIG_ZENIFY=y
diff --git a/SOURCES/kernel-armv7hl-debug-fedora.config b/SOURCES/kernel-armv7hl-debug-fedora.config
index a017d14..f9ad339 100644
--- a/SOURCES/kernel-armv7hl-debug-fedora.config
+++ b/SOURCES/kernel-armv7hl-debug-fedora.config
@@ -1,5 +1,6 @@
# arm
# 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
+# beginning with "crc=". If the string "crc=0" is found, the
# CONFIG_60XX_WDT is not set
CONFIG_6LOWPAN_DEBUGFS=y
CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
@@ -39,6 +40,7 @@ CONFIG_ACENIC=m
CONFIG_ACPI_ALS=m
# CONFIG_ACPI_DEBUGGER is not set
CONFIG_ACPI_DEBUG=y
+# CONFIG_ACPI_DPTF is not set
CONFIG_ACPI_HMAT=y
# CONFIG_ACPI_NFIT is not set
CONFIG_ACPI_PCI_SLOT=y
@@ -128,6 +130,7 @@ CONFIG_ADUX1020=m
# CONFIG_ADXL345_SPI is not set
CONFIG_ADXL372_I2C=m
CONFIG_ADXL372_SPI=m
+CONFIG_ADXRS290=m
# CONFIG_ADXRS450 is not set
CONFIG_AEABI=y
# CONFIG_AFE4403 is not set
@@ -293,6 +296,7 @@ CONFIG_ARCH_VEXPRESS_SPC=y
CONFIG_ARCH_VEXPRESS_TC2_PM=y
CONFIG_ARCH_VEXPRESS=y
CONFIG_ARCH_VIRT=y
+# CONFIG_ARCH_VISCONTI is not set
# CONFIG_ARCH_WM8850 is not set
# CONFIG_ARCH_ZX is not set
CONFIG_ARCH_ZYNQ=y
@@ -303,6 +307,7 @@ CONFIG_ARM64_AMU_EXTN=y
CONFIG_ARM64_BTI=y
CONFIG_ARM64_E0PD=y
CONFIG_ARM64_ERRATUM_1319367=y
+CONFIG_ARM64_ERRATUM_1508412=y
CONFIG_ARM64_ERRATUM_1530923=y
CONFIG_ARM64_ERRATUM_1542419=y
CONFIG_ARM64_ERRATUM_858921=y
@@ -329,6 +334,7 @@ CONFIG_ARM_CCI_PMU=m
CONFIG_ARM_CCI=y
CONFIG_ARM_CCN=y
# CONFIG_ARM_CHARLCD is not set
+# CONFIG_ARM_CMN is not set
CONFIG_ARM_CPUIDLE=y
CONFIG_ARM_CPU_SUSPEND=y
CONFIG_ARM_CPU_TOPOLOGY=y
@@ -394,6 +400,7 @@ CONFIG_ARM_SMCCC_SOC_ID=y
CONFIG_ARM_SMC_WATCHDOG=m
CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT=y
# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set
+# CONFIG_ARM_SMMU_V3_SVA is not set
CONFIG_ARM_SMMU=y
CONFIG_ARM_SP805_WATCHDOG=m
CONFIG_ARM_SPE_PMU=m
@@ -414,6 +421,7 @@ CONFIG_ARM_VIRT_EXT=y
CONFIG_ARM=y
CONFIG_ARM_ZYNQ_CPUIDLE=y
# CONFIG_AS3935 is not set
+# CONFIG_AS73211 is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE=m
CONFIG_ASYNC_RAID6_TEST=m
@@ -440,9 +448,11 @@ CONFIG_ATH10K_SNOC=m
# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
+CONFIG_ATH11K_AHB=m
CONFIG_ATH11K_DEBUGFS=y
# CONFIG_ATH11K_DEBUG is not set
CONFIG_ATH11K=m
+CONFIG_ATH11K_PCI=m
# CONFIG_ATH11K_SPECTRAL is not set
# CONFIG_ATH11K_TRACING is not set
CONFIG_ATH5K_DEBUG=y
@@ -557,6 +567,7 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_DA9052=m
CONFIG_BACKLIGHT_GENERIC=m
CONFIG_BACKLIGHT_GPIO=m
+CONFIG_BACKLIGHT_KTD253=m
CONFIG_BACKLIGHT_LED=m
# CONFIG_BACKLIGHT_LM3630A is not set
# CONFIG_BACKLIGHT_LM3639 is not set
@@ -738,6 +749,8 @@ CONFIG_BPF_JIT=y
CONFIG_BPF_KPROBE_OVERRIDE=y
CONFIG_BPF_LIRC_MODE2=y
CONFIG_BPF_LSM=y
+CONFIG_BPF_PRELOAD_UMD=m
+CONFIG_BPF_PRELOAD=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -872,6 +885,7 @@ CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_ISOTP is not set
# CONFIG_CAN_J1939 is not set
# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
@@ -881,6 +895,7 @@ CONFIG_CAN_M_CAN=m
# CONFIG_CAN_M_CAN_PLATFORM is not set
# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
+# CONFIG_CAN_MCP251XFD is not set
CONFIG_CAN_MCP251X=m
CONFIG_CAN_PEAK_PCIEC=y
CONFIG_CAN_PEAK_PCIEFD=m
@@ -973,6 +988,7 @@ CONFIG_CHARGER_BQ24190=m
CONFIG_CHARGER_BQ24735=m
CONFIG_CHARGER_BQ2515X=m
# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_BQ25980 is not set
CONFIG_CHARGER_CROS_USBPD=m
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
CONFIG_CHARGER_GPIO=m
@@ -995,7 +1011,8 @@ CONFIG_CHARLCD_BL_FLASH=y
# CONFIG_CHARLCD_BL_OFF is not set
# CONFIG_CHARLCD_BL_ON is not set
CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_CHELSIO_IPSEC_INLINE=y
+CONFIG_CHELSIO_INLINE_CRYPTO=y
+CONFIG_CHELSIO_IPSEC_INLINE=m
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -1003,7 +1020,7 @@ CONFIG_CHELSIO_T4_DCB=y
# CONFIG_CHELSIO_T4_FCOE is not set
CONFIG_CHELSIO_T4=m
CONFIG_CHELSIO_T4VF=m
-CONFIG_CHELSIO_TLS_DEVICE=y
+CONFIG_CHELSIO_TLS_DEVICE=m
CONFIG_CHR_DEV_SCH=m
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_ST=m
@@ -1032,8 +1049,19 @@ CONFIG_CLK_IMX8MM=y
CONFIG_CLK_IMX8MN=y
# CONFIG_CLK_IMX8MP is not set
CONFIG_CLK_IMX8MQ=y
+CONFIG_CLK_PX30=y
# CONFIG_CLK_QORIQ is not set
CONFIG_CLK_RASPBERRYPI=y
+CONFIG_CLK_RK3036=y
+CONFIG_CLK_RK312X=y
+CONFIG_CLK_RK3188=y
+CONFIG_CLK_RK322X=y
+CONFIG_CLK_RK3288=y
+CONFIG_CLK_RK3308=y
+CONFIG_CLK_RK3328=y
+CONFIG_CLK_RK3368=y
+CONFIG_CLK_RK3399=y
+CONFIG_CLK_RV110X=y
# CONFIG_CLK_SIFIVE is not set
CONFIG_CLK_SP810=y
# CONFIG_CLKSRC_STM32_LP is not set
@@ -1078,12 +1106,14 @@ CONFIG_COMMON_CLK_AXI_CLKGEN=m
# CONFIG_COMMON_CLK_FSL_SAI is not set
CONFIG_COMMON_CLK_MAX77686=y
# CONFIG_COMMON_CLK_MAX9485 is not set
+CONFIG_COMMON_CLK_MESON8B=y
# CONFIG_COMMON_CLK_MMP2_AUDIO is not set
CONFIG_COMMON_CLK_MMP2=y
CONFIG_COMMON_CLK_PALMAS=m
CONFIG_COMMON_CLK_PWM=m
CONFIG_COMMON_CLK_QCOM=y
CONFIG_COMMON_CLK_RK808=y
+CONFIG_COMMON_CLK_ROCKCHIP=y
CONFIG_COMMON_CLK_S2MPS11=m
CONFIG_COMMON_CLK_SCMI=m
CONFIG_COMMON_CLK_SCPI=m
@@ -1274,9 +1304,14 @@ CONFIG_CRYPTO_DEV_STM32_HASH=m
CONFIG_CRYPTO_DEV_SUN4I_SS=m
CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y
# CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG is not set
+CONFIG_CRYPTO_DEV_SUN8I_CE_HASH=y
CONFIG_CRYPTO_DEV_SUN8I_CE=m
+CONFIG_CRYPTO_DEV_SUN8I_CE_PRNG=y
+CONFIG_CRYPTO_DEV_SUN8I_CE_TRNG=y
# CONFIG_CRYPTO_DEV_SUN8I_SS_DEBUG is not set
+CONFIG_CRYPTO_DEV_SUN8I_SS_HASH=y
CONFIG_CRYPTO_DEV_SUN8I_SS=m
+CONFIG_CRYPTO_DEV_SUN8I_SS_PRNG=y
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
@@ -1340,7 +1375,9 @@ CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA3=m
CONFIG_CRYPTO_SHA512_ARM64=m
CONFIG_CRYPTO_SHA512_ARM=y
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
+CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
CONFIG_CRYPTO_STATS=y
@@ -1350,7 +1387,9 @@ CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_USER_API_AEAD=y
+# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
CONFIG_CRYPTO_USER_API_HASH=y
+# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER=m
@@ -1361,6 +1400,7 @@ CONFIG_CRYPTO_XTS=y
CONFIG_CRYPTO_XXHASH=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ZSTD=m
+# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
# CONFIG_CUSE is not set
CONFIG_CW1200=m
CONFIG_CW1200_WLAN_SDIO=m
@@ -1506,6 +1546,7 @@ CONFIG_DMA_ENGINE=y
# CONFIG_DMA_FENCE_TRACE is not set
CONFIG_DMA_OF=y
CONFIG_DMA_OMAP=m
+# CONFIG_DMA_PERNUMA_CMA is not set
# CONFIG_DMARD06 is not set
# CONFIG_DMARD09 is not set
CONFIG_DMARD10=m
@@ -1561,6 +1602,7 @@ CONFIG_DP83869_PHY=m
# CONFIG_DP83TC811_PHY is not set
CONFIG_DPOT_DAC=m
# CONFIG_DPS310 is not set
+# CONFIG_DPTF_PCH_FIVR is not set
CONFIG_DRA752_THERMAL=y
CONFIG_DRAGONRISE_FF=y
CONFIG_DRBD_FAULT_INJECTION=y
@@ -1569,6 +1611,7 @@ CONFIG_DRM_AMD_DC_DCN2_0=y
CONFIG_DRM_AMD_DC_DCN3_0=y
CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
CONFIG_DRM_AMD_DC_HDCP=y
+CONFIG_DRM_AMD_DC_SI=y
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMDGPU_CIK=y
# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
@@ -1583,6 +1626,7 @@ CONFIG_DRM_ARMADA=m
CONFIG_DRM_AST=m
CONFIG_DRM_BOCHS=m
# CONFIG_DRM_CDNS_DSI is not set
+CONFIG_DRM_CDNS_MHDP8546=m
CONFIG_DRM_CHRONTEL_CH7033=m
CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_SELFTEST is not set
@@ -1638,6 +1682,7 @@ CONFIG_DRM_KOMEDA=m
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LIMA=m
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LONTIUM_LT9611 is not set
# CONFIG_DRM_LVDS_CODEC is not set
# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
@@ -1648,11 +1693,13 @@ CONFIG_DRM_MESON_DW_HDMI=m
CONFIG_DRM_MESON=m
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
+CONFIG_DRM_MSM_DP=y
CONFIG_DRM_MSM_DSI_10NM_PHY=y
CONFIG_DRM_MSM_DSI_14NM_PHY=y
CONFIG_DRM_MSM_DSI_20NM_PHY=y
CONFIG_DRM_MSM_DSI_28NM_8960_PHY=y
CONFIG_DRM_MSM_DSI_28NM_PHY=y
+CONFIG_DRM_MSM_DSI_7NM_PHY=y
CONFIG_DRM_MSM_DSI_PLL=y
CONFIG_DRM_MSM_DSI=y
CONFIG_DRM_MSM_HDMI_HDCP=y
@@ -1688,6 +1735,7 @@ CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m
# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
CONFIG_DRM_PANEL_LVDS=m
+CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m
# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
CONFIG_DRM_PANEL_NOVATEK_NT35510=m
# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
@@ -1713,7 +1761,7 @@ CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_PANEL_SITRONIX_ST7701=m
CONFIG_DRM_PANEL_SITRONIX_ST7703=m
-# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+CONFIG_DRM_PANEL_SITRONIX_ST7789V=m
# CONFIG_DRM_PANEL_SONY_ACX424AKP is not set
# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
@@ -1760,9 +1808,11 @@ CONFIG_DRM_TILCDC=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TI_TPD12S015=m
+CONFIG_DRM_TOSHIBA_TC358762=m
CONFIG_DRM_TOSHIBA_TC358764=m
CONFIG_DRM_TOSHIBA_TC358767=m
CONFIG_DRM_TOSHIBA_TC358768=m
+CONFIG_DRM_TOSHIBA_TC358775=m
CONFIG_DRM_TVE200=m
CONFIG_DRM_UDL=m
CONFIG_DRM_V3D=m
@@ -1873,6 +1923,7 @@ CONFIG_DW_EDMA_PCIE=m
CONFIG_DWMAC_DWC_QOS_ETH=m
CONFIG_DWMAC_GENERIC=m
CONFIG_DWMAC_IMX8=m
+CONFIG_DWMAC_INTEL_PLAT=m
CONFIG_DWMAC_IPQ806X=m
CONFIG_DWMAC_MESON=m
CONFIG_DWMAC_QCOM_ETHQOS=m
@@ -1953,7 +2004,10 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
CONFIG_ETHTOOL_NETLINK=y
# CONFIG_EUROTECH_WDT is not set
-# CONFIG_EVM is not set
+# CONFIG_EVM_ADD_XATTRS is not set
+CONFIG_EVM_ATTR_FSUUID=y
+# CONFIG_EVM_LOAD_X509 is not set
+CONFIG_EVM=y
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
CONFIG_EXFAT_FS=m
# CONFIG_EXPERT is not set
@@ -2020,6 +2074,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
CONFIG_FAT_FS=m
CONFIG_FAULT_INJECTION_DEBUG_FS=y
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
+# CONFIG_FAULT_INJECTION_USERCOPY is not set
CONFIG_FAULT_INJECTION=y
# CONFIG_FB_3DFX is not set
# CONFIG_FB_ARK is not set
@@ -2160,6 +2215,7 @@ CONFIG_FTRACE=y
# CONFIG_FUNCTION_GRAPH_TRACER is not set
CONFIG_FUNCTION_PROFILER=y
CONFIG_FUNCTION_TRACER=y
+CONFIG_FUSE_DAX=y
CONFIG_FUSE_FS=m
CONFIG_FUSION_CTL=m
CONFIG_FUSION_FC=m
@@ -2217,7 +2273,10 @@ CONFIG_GIGASET_CAPI=y
CONFIG_GIGASET_M101=m
CONFIG_GIGASET_M105=m
# CONFIG_GLOB_SELFTEST is not set
-# CONFIG_GNSS is not set
+CONFIG_GNSS=m
+CONFIG_GNSS_MTK_SERIAL=m
+CONFIG_GNSS_SIRF_SERIAL=m
+CONFIG_GNSS_UBX_SERIAL=m
# CONFIG_GOLDFISH is not set
# CONFIG_GOOGLE_FIRMWARE is not set
CONFIG_GP2AP002=m
@@ -2233,6 +2292,7 @@ CONFIG_GPIO_AGGREGATOR=m
# CONFIG_GPIO_BCM_XGS_IPROC is not set
CONFIG_GPIO_BD9571MWV=m
CONFIG_GPIO_CADENCE=m
+CONFIG_GPIO_CDEV_V1=y
CONFIG_GPIO_DA9052=m
CONFIG_GPIO_DA9055=m
CONFIG_GPIO_DWAPB=m
@@ -2259,6 +2319,7 @@ CONFIG_GPIO_MLXBF2=m
CONFIG_GPIO_MOXTET=m
# CONFIG_GPIO_MPC8XXX is not set
CONFIG_GPIO_MVEBU=y
+CONFIG_GPIO_MXC=m
CONFIG_GPIO_OMAP=y
CONFIG_GPIO_PALMAS=y
CONFIG_GPIO_PCA953X_IRQ=y
@@ -2317,6 +2378,7 @@ CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HD44780=m
CONFIG_HDC100X=m
+CONFIG_HDC2010=m
CONFIG_HDQ_MASTER_OMAP=m
CONFIG_HEADERS_CHECK=y
CONFIG_HEADERS_INSTALL=y
@@ -2432,6 +2494,7 @@ CONFIG_HID_U2FZERO=m
CONFIG_HID_UCLOGIC=m
CONFIG_HID_UDRAW_PS3=m
CONFIG_HID_VIEWSONIC=m
+CONFIG_HID_VIVALDI=m
CONFIG_HID_WACOM=m
CONFIG_HID_WALTOP=m
CONFIG_HID_WIIMOTE=m
@@ -2444,6 +2507,7 @@ CONFIG_HIGHPTE=y
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_HIPPI is not set
# CONFIG_HISI_DMA is not set
+CONFIG_HISI_HIKEY_USB=m
# CONFIG_HISILICON_IRQ_MBIGEN is not set
CONFIG_HISI_PMU=y
# CONFIG_HIST_TRIGGERS_DEBUG is not set
@@ -2499,6 +2563,7 @@ CONFIG_HW_RANDOM_STM32=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=y
+CONFIG_HW_RANDOM_XIPHERA=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK_OMAP=m
CONFIG_HWSPINLOCK_QCOM=m
@@ -2556,6 +2621,7 @@ CONFIG_I2C_IMX_LPI2C=m
CONFIG_I2C_IMX=m
# CONFIG_I2C_ISCH is not set
CONFIG_I2C_MESON=m
+CONFIG_I2C_MLXBF=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MUX_GPIO=m
CONFIG_I2C_MUX_GPMUX=m
@@ -2589,6 +2655,7 @@ CONFIG_I2C_SIMTEC=m
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
CONFIG_I2C_SLAVE_EEPROM=m
+# CONFIG_I2C_SLAVE_TESTUNIT is not set
CONFIG_I2C_SLAVE=y
CONFIG_I2C_ST=m
# CONFIG_I2C_STM32F4 is not set
@@ -2644,6 +2711,8 @@ CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IGC=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_DMAENGINE=m
+CONFIG_IIO_BUFFER_DMA=m
CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
@@ -2679,6 +2748,7 @@ CONFIG_IIO_SW_TRIGGER=m
CONFIG_IIO_SYSFS_TRIGGER=m
CONFIG_IIO_TIGHTLOOP_TRIGGER=m
CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_TRIGGERED_EVENT=m
CONFIG_IIO_TRIGGER=y
# CONFIG_IKCONFIG is not set
CONFIG_IKHEADERS=m
@@ -2689,6 +2759,7 @@ CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
+CONFIG_IMA_DEFAULT_HASH="sha256"
CONFIG_IMA_DEFAULT_HASH_SHA256=y
# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
@@ -2713,7 +2784,7 @@ CONFIG_IMX_DSP=m
CONFIG_IMX_GPCV2_PM_DOMAINS=y
CONFIG_IMX_GPCV2=y
CONFIG_IMX_IPUV3_CORE=m
-# CONFIG_IMX_IRQSTEER is not set
+CONFIG_IMX_IRQSTEER=y
CONFIG_IMX_MBOX=m
CONFIG_IMX_REMOTEPROC=m
# CONFIG_IMX_SCU is not set
@@ -2734,6 +2805,7 @@ CONFIG_INET_ESPINTCP=y
CONFIG_INET_ESP=m
CONFIG_INET_ESP_OFFLOAD=m
CONFIG_INET_IPCOMP=m
+CONFIG_INET_MPTCP_DIAG=m
CONFIG_INET_RAW_DIAG=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_UDP_DIAG=m
@@ -2861,6 +2933,7 @@ CONFIG_INTEGRITY=y
# CONFIG_INTEL_IDMA64 is not set
CONFIG_INTEL_IDXD=m
# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
+# CONFIG_INTEL_MEI_VIRTIO is not set
# CONFIG_INTEL_SCU_PCI is not set
# CONFIG_INTEL_SCU_PLATFORM is not set
CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m
@@ -2879,6 +2952,8 @@ CONFIG_INTERCONNECT_QCOM_MSM8916=m
CONFIG_INTERCONNECT_QCOM_OSM_L3=m
# CONFIG_INTERCONNECT_QCOM_QCS404 is not set
CONFIG_INTERCONNECT_QCOM_SC7180=m
+CONFIG_INTERCONNECT_QCOM_SM8150=m
+CONFIG_INTERCONNECT_QCOM_SM8250=m
CONFIG_INTERCONNECT_QCOM=y
CONFIG_INTERCONNECT=y
# CONFIG_INTERVAL_TREE_TEST is not set
@@ -3145,6 +3220,7 @@ CONFIG_JFS_SECURITY=y
CONFIG_JME=m
CONFIG_JOLIET=y
CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADC=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
@@ -3161,23 +3237,23 @@ CONFIG_JOYSTICK_IFORCE=m
CONFIG_JOYSTICK_IFORCE_USB=m
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
-CONFIG_JOYSTICK_MAGELLAN=m
+# CONFIG_JOYSTICK_MAGELLAN is not set
CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_PXRC=m
CONFIG_JOYSTICK_SIDEWINDER=m
-CONFIG_JOYSTICK_SPACEBALL=m
-CONFIG_JOYSTICK_SPACEORB=m
-CONFIG_JOYSTICK_STINGER=m
+# CONFIG_JOYSTICK_SPACEBALL is not set
+# CONFIG_JOYSTICK_SPACEORB is not set
+# CONFIG_JOYSTICK_STINGER is not set
CONFIG_JOYSTICK_TMDC=m
CONFIG_JOYSTICK_TURBOGRAFX=m
-CONFIG_JOYSTICK_TWIDJOY=m
+# CONFIG_JOYSTICK_TWIDJOY is not set
CONFIG_JOYSTICK_WALKERA0701=m
-CONFIG_JOYSTICK_WARRIOR=m
+# CONFIG_JOYSTICK_WARRIOR is not set
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
CONFIG_JOYSTICK_XPAD=m
-CONFIG_JOYSTICK_ZHENHUA=m
+# CONFIG_JOYSTICK_ZHENHUA is not set
# CONFIG_JSA1212 is not set
CONFIG_JUMP_LABEL=y
CONFIG_KALLSYMS_ALL=y
@@ -3200,6 +3276,7 @@ CONFIG_KERNEL_MODE_NEON=y
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_ZSTD is not set
# CONFIG_KEXEC_FILE is not set
+CONFIG_KEXEC_IMAGE_VERIFY_SIG=y
# CONFIG_KEXEC_SIG is not set
CONFIG_KEXEC=y
CONFIG_KEYBOARD_ADC=m
@@ -3249,6 +3326,7 @@ CONFIG_KEY_NOTIFICATIONS=y
CONFIG_KEYS_REQUEST_CACHE=y
# CONFIG_KEYSTONE_REMOTEPROC is not set
CONFIG_KEYS=y
+CONFIG_KGDB_HONOUR_BLOCKLIST=y
CONFIG_KGDB_KDB=y
CONFIG_KGDB_LOW_LEVEL_TRAP=y
CONFIG_KGDB_SERIAL_CONSOLE=y
@@ -3303,6 +3381,7 @@ CONFIG_LDISC_AUTOLOAD=y
CONFIG_LDM_PARTITION=y
# CONFIG_LEDS_AAT1290 is not set
CONFIG_LEDS_AN30259A=m
+# CONFIG_LEDS_ARIEL is not set
CONFIG_LEDS_AS3645A=m
# CONFIG_LEDS_AW2013 is not set
# CONFIG_LEDS_BCM6328 is not set
@@ -3330,6 +3409,7 @@ CONFIG_LEDS_LM3601X=m
CONFIG_LEDS_LM3692X=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
+CONFIG_LEDS_LP50XX=m
# CONFIG_LEDS_LP5521 is not set
# CONFIG_LEDS_LP5523 is not set
# CONFIG_LEDS_LP5562 is not set
@@ -3668,9 +3748,12 @@ CONFIG_MFD_DA9055=y
CONFIG_MFD_DA9063=m
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
+CONFIG_MFD_ENE_KB3930=m
CONFIG_MFD_EXYNOS_LPASS=m
# CONFIG_MFD_GATEWORKS_GSC is not set
# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_MFD_HI6421_SPMI is not set
+CONFIG_MFD_INTEL_M10_BMC=m
# CONFIG_MFD_INTEL_PMC_BXT is not set
# CONFIG_MFD_IQS62X is not set
# CONFIG_MFD_JANZ_CMODIO is not set
@@ -3715,6 +3798,7 @@ CONFIG_MFD_RK808=y
CONFIG_MFD_SEC_CORE=y
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SL28CPLD is not set
CONFIG_MFD_SM501_GPIO=y
CONFIG_MFD_SM501=m
# CONFIG_MFD_SMSC is not set
@@ -3760,6 +3844,7 @@ CONFIG_MFD_WL1273_CORE=m
CONFIG_MFD_WM8994=m
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
+# CONFIG_MHI_BUS_DEBUG is not set
CONFIG_MHI_BUS=m
CONFIG_MICREL_KS8995MA=m
CONFIG_MICREL_PHY=m
@@ -4079,6 +4164,7 @@ CONFIG_MVMDIO=m
CONFIG_MVNETA_BM_ENABLE=m
CONFIG_MVNETA=m
CONFIG_MVPP2=m
+CONFIG_MVPP2_PTP=y
CONFIG_MV_XOR=y
CONFIG_MWAVE=m
CONFIG_MWIFIEX=m
@@ -4517,6 +4603,7 @@ CONFIG_NFS_V3=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
CONFIG_NFS_V4_1=y
+# CONFIG_NFS_V4_2_READ_PLUS is not set
CONFIG_NFS_V4_2=y
CONFIG_NFS_V4=m
CONFIG_NF_TABLES_ARP=y
@@ -4849,6 +4936,7 @@ CONFIG_PCIE_DW_PLAT_HOST=y
CONFIG_PCIE_DW=y
CONFIG_PCIE_ECRC=y
CONFIG_PCIE_EDR=y
+# CONFIG_PCIE_HISI_ERR is not set
# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set
# CONFIG_PCIE_MOBIVEIL is not set
# CONFIG_PCI_ENDPOINT is not set
@@ -4898,6 +4986,7 @@ CONFIG_PCMCIA_SMC91C92=m
CONFIG_PCMCIA_XIRC2PS=m
CONFIG_PCMCIA_XIRCOM=m
CONFIG_PCNET32=m
+CONFIG_PCS_XPCS=m
CONFIG_PD6729=m
CONFIG_PDA_POWER=m
CONFIG_PDC_ADMA=m
@@ -4921,7 +5010,10 @@ CONFIG_PHY_EXYNOS_DP_VIDEO=m
CONFIG_PHY_EXYNOS_MIPI_VIDEO=m
CONFIG_PHY_EXYNOS_PCIE=y
# CONFIG_PHY_FSL_IMX8MQ_USB is not set
+# CONFIG_PHY_HI3670_USB is not set
# CONFIG_PHY_INTEL_EMMC is not set
+# CONFIG_PHY_INTEL_KEEMBAY_EMMC is not set
+# CONFIG_PHY_INTEL_LGM_EMMC is not set
CONFIG_PHYLIB=y
CONFIG_PHYLINK=m
# CONFIG_PHY_MAPPHONE_MDM6600 is not set
@@ -5013,6 +5105,7 @@ CONFIG_PINCTRL_IMX8MQ=y
# CONFIG_PINCTRL_MDM9615 is not set
# CONFIG_PINCTRL_MESON8B is not set
# CONFIG_PINCTRL_MESON8 is not set
+CONFIG_PINCTRL_MSM8226=m
CONFIG_PINCTRL_MSM8660=m
CONFIG_PINCTRL_MSM8916=m
CONFIG_PINCTRL_MSM8960=m
@@ -5037,6 +5130,8 @@ CONFIG_PINCTRL_SINGLE=y
# CONFIG_PINCTRL_SM8250 is not set
# CONFIG_PINCTRL_STMFX is not set
CONFIG_PINCTRL_SUN4I_A10=y
+# CONFIG_PINCTRL_SUN50I_A100 is not set
+# CONFIG_PINCTRL_SUN50I_A100_R is not set
# CONFIG_PINCTRL_SUN50I_A64 is not set
# CONFIG_PINCTRL_SUN50I_A64_R is not set
# CONFIG_PINCTRL_SUN50I_H5 is not set
@@ -5103,7 +5198,6 @@ CONFIG_POSIX_MQUEUE=y
# CONFIG_POWER9_CPU is not set
CONFIG_POWER_AVS_OMAP_CLASS3=y
CONFIG_POWER_AVS_OMAP=y
-CONFIG_POWER_AVS=y
CONFIG_POWERCAP=y
CONFIG_POWER_RESET_AS3722=y
# CONFIG_POWER_RESET_BRCMKONA is not set
@@ -5128,6 +5222,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_PPC_PROT_SAO_LPAR is not set
# CONFIG_PPC_PTDUMP is not set
# CONFIG_PPC_QUEUED_SPINLOCKS is not set
+CONFIG_PPC_RTAS_FILTER=y
CONFIG_PPDEV=m
CONFIG_PPP_ASYNC=m
CONFIG_PPP_BSDCOMP=m
@@ -5151,6 +5246,8 @@ CONFIG_PPTP=m
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PRESTERA=m
+CONFIG_PRESTERA_PCI=m
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_PRIME_NUMBERS is not set
CONFIG_PRINTER=m
@@ -5364,6 +5461,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_PERF_TEST is not set
CONFIG_RCU_REF_SCALE_TEST=m
+# CONFIG_RCU_SCALE_TEST is not set
CONFIG_RCU_TORTURE_TEST=m
# CONFIG_RCU_TRACE is not set
CONFIG_RC_XBOX_DVD=m
@@ -5451,7 +5549,10 @@ CONFIG_REGULATOR_QCOM_RPM=m
CONFIG_REGULATOR_QCOM_SMD_RPM=m
CONFIG_REGULATOR_QCOM_SPMI=m
CONFIG_REGULATOR_QCOM_USB_VBUS=m
+CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m
CONFIG_REGULATOR_RK808=y
+CONFIG_REGULATOR_RT4801=m
+CONFIG_REGULATOR_RTMV20=m
CONFIG_REGULATOR_S2MPA01=m
CONFIG_REGULATOR_S2MPS11=m
CONFIG_REGULATOR_S5M8767=m
@@ -5504,6 +5605,7 @@ CONFIG_RESET_IMX7=y
CONFIG_RESET_MESON_AUDIO_ARB=m
# CONFIG_RESET_QCOM_AOSS is not set
CONFIG_RESET_QCOM_PDC=m
+CONFIG_RESET_RASPBERRYPI=y
CONFIG_RESET_SCMI=y
CONFIG_RESET_SIMPLE=y
CONFIG_RESET_STM32MP157=y
@@ -5527,6 +5629,7 @@ CONFIG_RMI4_F11=y
CONFIG_RMI4_F12=y
CONFIG_RMI4_F30=y
CONFIG_RMI4_F34=y
+CONFIG_RMI4_F3A=y
# CONFIG_RMI4_F54 is not set
CONFIG_RMI4_F55=y
CONFIG_RMI4_I2C=m
@@ -5684,6 +5787,7 @@ CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_RV3028=m
CONFIG_RTC_DRV_RV3029C2=m
CONFIG_RTC_DRV_RV3029_HWMON=y
+CONFIG_RTC_DRV_RV3032=m
# CONFIG_RTC_DRV_RV8803 is not set
CONFIG_RTC_DRV_RX4581=m
# CONFIG_RTC_DRV_RX6110 is not set
@@ -5716,7 +5820,7 @@ CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_SYSFS=y
-# CONFIG_RTC_NVMEM is not set
+CONFIG_RTC_NVMEM=y
# CONFIG_RTC_SYSTOHC is not set
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_RTL8180=m
@@ -5787,6 +5891,7 @@ CONFIG_SCD30_CORE=m
CONFIG_SCD30_I2C=m
CONFIG_SCD30_SERIAL=m
# CONFIG_SC_DISPCC_7180 is not set
+# CONFIG_SCF_TORTURE_TEST is not set
CONFIG_SC_GCC_7180=m
# CONFIG_SC_GPUCC_7180 is not set
CONFIG_SCHED_AUTOGROUP=y
@@ -5932,7 +6037,7 @@ CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0
CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_DISABLE=y
+# CONFIG_SECURITY_SELINUX_DISABLE is not set
CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
CONFIG_SECURITY_SELINUX=y
@@ -5952,6 +6057,7 @@ CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
# CONFIG_SENSORS_ADM1177 is not set
+CONFIG_SENSORS_ADM1266=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ADS7828=m
@@ -6005,6 +6111,7 @@ CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
# CONFIG_SENSORS_INSPUR_IPSPS is not set
+CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -6070,6 +6177,8 @@ CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_MC13783_ADC=m
CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_MLXREG_FAN=m
+CONFIG_SENSORS_MP2975=m
+CONFIG_SENSORS_MR75203=m
CONFIG_SENSORS_NCT6683=m
CONFIG_SENSORS_NCT6775=m
CONFIG_SENSORS_NCT7802=m
@@ -6272,6 +6381,7 @@ CONFIG_SMC911X=m
CONFIG_SMC91X=m
CONFIG_SMC_DIAG=m
CONFIG_SMC=m
+# CONFIG_SM_DISPCC_8250 is not set
# CONFIG_SM_FTL is not set
# CONFIG_SM_GCC_8150 is not set
CONFIG_SM_GCC_8250=m
@@ -6288,6 +6398,8 @@ CONFIG_SMS_SDIO_DRV=m
CONFIG_SMS_SIANO_MDTV=m
CONFIG_SMS_SIANO_RC=y
CONFIG_SMS_USB_DRV=m
+# CONFIG_SM_VIDEOCC_8150 is not set
+# CONFIG_SM_VIDEOCC_8250 is not set
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AD1889=m
@@ -6488,6 +6600,7 @@ CONFIG_SND_SOC_CROS_EC_CODEC=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
+CONFIG_SND_SOC_CS4234=m
CONFIG_SND_SOC_CS4265=m
# CONFIG_SND_SOC_CS4270 is not set
CONFIG_SND_SOC_CS4271_I2C=m
@@ -6515,10 +6628,10 @@ CONFIG_SND_SOC_ES8328_SPI=m
CONFIG_SND_SOC_EUKREA_TLV320=m
CONFIG_SND_SOC_FSL_ASOC_CARD=m
CONFIG_SND_SOC_FSL_ASRC=m
-# CONFIG_SND_SOC_FSL_AUDMIX is not set
-# CONFIG_SND_SOC_FSL_EASRC is not set
+CONFIG_SND_SOC_FSL_AUDMIX=m
+CONFIG_SND_SOC_FSL_EASRC=m
CONFIG_SND_SOC_FSL_ESAI=m
-# CONFIG_SND_SOC_FSL_MICFIL is not set
+CONFIG_SND_SOC_FSL_MICFIL=m
CONFIG_SND_SOC_FSL_MQS=m
CONFIG_SND_SOC_FSL_SAI=m
CONFIG_SND_SOC_FSL_SPDIF=m
@@ -6532,7 +6645,7 @@ CONFIG_SND_SOC_HDMI_CODEC=m
CONFIG_SND_SOC_I2C_AND_SPI=m
CONFIG_SND_SOC_ICS43432=m
# CONFIG_SND_SOC_IMG is not set
-# CONFIG_SND_SOC_IMX_AUDMIX is not set
+CONFIG_SND_SOC_IMX_AUDMIX=m
CONFIG_SND_SOC_IMX_AUDMUX=m
CONFIG_SND_SOC_IMX_ES8328=m
CONFIG_SND_SOC_IMX_MC13783=m
@@ -6542,12 +6655,14 @@ CONFIG_SND_SOC_IMX_SGTL5000=m
CONFIG_SND_SOC_IMX_SPDIF=m
CONFIG_SND_SOC_IMX_SSI=m
# CONFIG_SND_SOC_INNO_RK3036 is not set
-CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
+# CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set
+# CONFIG_SND_SOC_INTEL_CATPT is not set
# CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH is not set
CONFIG_SND_SOC_INTEL_KEEMBAY=m
CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
# CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH is not set
-CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
+CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m
+# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set
CONFIG_SND_SOC_LPASS_CPU=m
CONFIG_SND_SOC_LPASS_PLATFORM=m
CONFIG_SND_SOC=m
@@ -6608,14 +6723,14 @@ CONFIG_SND_SOC_ROCKCHIP_MAX98090=m
CONFIG_SND_SOC_ROCKCHIP_PDM=m
CONFIG_SND_SOC_ROCKCHIP_RT5645=m
CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
-# CONFIG_SND_SOC_RT1308_SDW is not set
+CONFIG_SND_SOC_RT1308_SDW=m
# CONFIG_SND_SOC_RT5616 is not set
CONFIG_SND_SOC_RT5631=m
CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_RT5682_SDW=m
-# CONFIG_SND_SOC_RT700_SDW is not set
-# CONFIG_SND_SOC_RT711_SDW is not set
-# CONFIG_SND_SOC_RT715_SDW is not set
+CONFIG_SND_SOC_RT700_SDW=m
+CONFIG_SND_SOC_RT711_SDW=m
+CONFIG_SND_SOC_RT715_SDW=m
# CONFIG_SND_SOC_SAMSUNG_ARIES_WM8994 is not set
CONFIG_SND_SOC_SAMSUNG=m
CONFIG_SND_SOC_SAMSUNG_MIDAS_WM1811=m
@@ -6653,6 +6768,7 @@ CONFIG_SND_SOC_STI_SAS=m
CONFIG_SND_SOC_STORM=m
# CONFIG_SND_SOC_TAS2552 is not set
CONFIG_SND_SOC_TAS2562=m
+CONFIG_SND_SOC_TAS2764=m
CONFIG_SND_SOC_TAS2770=m
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TAS571X is not set
@@ -6804,9 +6920,25 @@ CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SOUNDWIRE_CADENCE=m
# CONFIG_SOUNDWIRE_INTEL is not set
+# CONFIG_SOUNDWIRE_QCOM is not set
CONFIG_SOUNDWIRE=y
CONFIG_SPARSEMEM_MANUAL=y
-# CONFIG_SPEAKUP is not set
+CONFIG_SPEAKUP=m
+# CONFIG_SPEAKUP_SYNTH_ACNTPC is not set
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+# CONFIG_SPEAKUP_SYNTH_DECEXT is not set
+# CONFIG_SPEAKUP_SYNTH_DECPC is not set
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+# CONFIG_SPEAKUP_SYNTH_DTLK is not set
+# CONFIG_SPEAKUP_SYNTH_DUMMY is not set
+# CONFIG_SPEAKUP_SYNTH_KEYPC is not set
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_AMD is not set
CONFIG_SPI_ARMADA_3700=m
@@ -6874,6 +7006,7 @@ CONFIG_SPI_XILINX=m
CONFIG_SPI=y
# CONFIG_SPI_ZYNQMP_GQSPI is not set
CONFIG_SPI_ZYNQ_QSPI=m
+# CONFIG_SPMI_HISI3670 is not set
CONFIG_SPMI=m
CONFIG_SPMI_MSM_PMIC_ARB=m
CONFIG_SPMI_PMIC_CLKDIV=m
@@ -6914,6 +7047,7 @@ CONFIG_STACK_VALIDATION=y
CONFIG_STAGING_MEDIA=y
CONFIG_STAGING=y
CONFIG_STANDALONE=y
+# CONFIG_STATIC_CALL_SELFTEST is not set
# CONFIG_STATIC_KEYS_SELFTEST is not set
# CONFIG_STATIC_USERMODEHELPER is not set
CONFIG_STE10XP=m
@@ -7112,6 +7246,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_HEXDUMP is not set
# CONFIG_TEST_HMM is not set
# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_KASAN_MODULE is not set
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
CONFIG_TEST_LIST_SORT=y
@@ -7207,6 +7342,8 @@ CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
CONFIG_TI_PIPE3=m
+# CONFIG_TI_PRUSS_INTC is not set
+# CONFIG_TI_PRUSS is not set
CONFIG_TI_PWMSS=y
# CONFIG_TI_SCI_CLK is not set
CONFIG_TI_SCI_PROTOCOL=m
@@ -7304,6 +7441,7 @@ CONFIG_TOUCHSCREEN_WACOM_W8001=m
# CONFIG_TOUCHSCREEN_WM97XX is not set
CONFIG_TOUCHSCREEN_ZET6223=m
CONFIG_TOUCHSCREEN_ZFORCE=m
+CONFIG_TOUCHSCREEN_ZINITIX=m
# CONFIG_TPL0102 is not set
CONFIG_TPM_KEY_PARSER=m
# CONFIG_TPS6105X is not set
@@ -7357,8 +7495,11 @@ CONFIG_TYPEC_HD3SS3220=m
CONFIG_TYPEC=m
CONFIG_TYPEC_MUX_PI3USB30532=m
CONFIG_TYPEC_NVIDIA_ALTMODE=m
+CONFIG_TYPEC_QCOM_PMIC=m
# CONFIG_TYPEC_RT1711H is not set
+CONFIG_TYPEC_STUSB160X=m
CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPCI_MAXIM=m
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
@@ -7411,6 +7552,7 @@ CONFIG_UNWINDER_ARM=y
# CONFIG_UNWINDER_FRAME_POINTER is not set
CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
+# CONFIG_USB4_DEBUGFS_WRITE is not set
CONFIG_USB4_NET=m
CONFIG_USB4=y
CONFIG_USB_ACM=m
@@ -7429,7 +7571,11 @@ CONFIG_USB_BELKIN=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_CATC=m
# CONFIG_USB_CDC_COMPOSITE is not set
-# CONFIG_USB_CDNS3 is not set
+CONFIG_USB_CDNS3_GADGET=y
+CONFIG_USB_CDNS3_HOST=y
+CONFIG_USB_CDNS3_IMX=m
+CONFIG_USB_CDNS3=m
+CONFIG_USB_CDNS3_PCI_WRAP=m
CONFIG_USB_CHAOSKEY=m
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_CHIPIDEA=m
@@ -7502,6 +7648,7 @@ CONFIG_USB_EMI62=m
CONFIG_USB_EPSON2888=y
# CONFIG_USB_ETH is not set
CONFIG_USB_EZUSB_FX2=m
+# CONFIG_USB_FEW_INIT_RETRIES is not set
# CONFIG_USB_FOTG210_HCD is not set
# CONFIG_USB_FOTG210_UDC is not set
CONFIG_USB_FSL_USB2=m
@@ -7614,6 +7761,7 @@ CONFIG_USB_LD=m
CONFIG_USB_LEDS_TRIGGER_USBPORT=m
CONFIG_USB_LED_TRIG=y
CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LGM_PHY=m
# CONFIG_USB_LINK_LAYER_TEST is not set
CONFIG_USB_M5602=m
# CONFIG_USB_M66592 is not set
@@ -7808,7 +7956,7 @@ CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_HISTB is not set
CONFIG_USB_XHCI_MVEBU=m
-CONFIG_USB_XHCI_PCI_RENESAS=y
+CONFIG_USB_XHCI_PCI_RENESAS=m
CONFIG_USB_XHCI_PLATFORM=m
CONFIG_USB_XHCI_TEGRA=m
CONFIG_USB_XUSBATM=m
@@ -7856,6 +8004,7 @@ CONFIG_VFIO_MDEV_DEVICE=m
CONFIG_VFIO_MDEV=m
# CONFIG_VFIO_NOIOMMU is not set
CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_ZDEV=y
# CONFIG_VFIO_PLATFORM_AMDXGBE_RESET is not set
CONFIG_VFIO_PLATFORM_CALXEDAXGMAC_RESET=m
CONFIG_VFIO_PLATFORM=m
@@ -8049,6 +8198,7 @@ CONFIG_VIDEO_SUNXI_CEDRUS=m
CONFIG_VIDEO_SUNXI=y
CONFIG_VIDEO_TEGRA_HDMI_CEC=m
CONFIG_VIDEO_TEGRA=m
+# CONFIG_VIDEO_TEGRA_TPG is not set
CONFIG_VIDEO_TI_CAL=m
# CONFIG_VIDEO_TI_VPE_DEBUG is not set
CONFIG_VIDEO_TI_VPE=m
@@ -8065,6 +8215,7 @@ CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_VIDEO_VS6624=m
# CONFIG_VIDEO_XILINX is not set
+# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIPERBOARD_ADC is not set
CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
@@ -8230,6 +8381,7 @@ CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_STATISTICS=y
CONFIG_XFRM_SUB_POLICY=y
+# CONFIG_XFRM_USER_COMPAT is not set
CONFIG_XFRM_USER=y
CONFIG_XFRM=y
# CONFIG_XFS_DEBUG is not set
@@ -8239,6 +8391,7 @@ CONFIG_XFS_ONLINE_SCRUB=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_QUOTA=y
# CONFIG_XFS_RT is not set
+CONFIG_XFS_SUPPORT_V4=y
CONFIG_XFS_WARN=y
# CONFIG_XIL_AXIS_FIFO is not set
# CONFIG_XILINX_AXI_EMAC is not set
@@ -8271,6 +8424,7 @@ CONFIG_Z3FOLD=y
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBUD=y
+# CONFIG_ZCRYPT_DEBUG is not set
# CONFIG_ZD1211RW_DEBUG is not set
CONFIG_ZD1211RW=m
CONFIG_ZEROPLUS_FF=y
@@ -8304,4 +8458,5 @@ CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
# Select this config option to add support for the initrd= command
# This option determines the default init for the system if no init=
# warnings from C=1 sparse checker or -Wextra compilations. It has
-CONFIG_ZENIFY=y
+# You can set the size of pernuma CMA by specifying "cma_pernuma=size"
+CONFIG_ZENIFY=y \ No newline at end of file
diff --git a/SOURCES/kernel-armv7hl-fedora.config b/SOURCES/kernel-armv7hl-fedora.config
index c808268..50b2ace 100644
--- a/SOURCES/kernel-armv7hl-fedora.config
+++ b/SOURCES/kernel-armv7hl-fedora.config
@@ -1,5 +1,6 @@
# arm
# 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
+# beginning with "crc=". If the string "crc=0" is found, the
# CONFIG_60XX_WDT is not set
CONFIG_6LOWPAN_DEBUGFS=y
CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
@@ -39,6 +40,7 @@ CONFIG_ACENIC=m
CONFIG_ACPI_ALS=m
# CONFIG_ACPI_DEBUGGER is not set
# CONFIG_ACPI_DEBUG is not set
+# CONFIG_ACPI_DPTF is not set
CONFIG_ACPI_HMAT=y
# CONFIG_ACPI_NFIT is not set
CONFIG_ACPI_PCI_SLOT=y
@@ -128,6 +130,7 @@ CONFIG_ADUX1020=m
# CONFIG_ADXL345_SPI is not set
CONFIG_ADXL372_I2C=m
CONFIG_ADXL372_SPI=m
+CONFIG_ADXRS290=m
# CONFIG_ADXRS450 is not set
CONFIG_AEABI=y
# CONFIG_AFE4403 is not set
@@ -293,6 +296,7 @@ CONFIG_ARCH_VEXPRESS_SPC=y
CONFIG_ARCH_VEXPRESS_TC2_PM=y
CONFIG_ARCH_VEXPRESS=y
CONFIG_ARCH_VIRT=y
+# CONFIG_ARCH_VISCONTI is not set
# CONFIG_ARCH_WM8850 is not set
# CONFIG_ARCH_ZX is not set
CONFIG_ARCH_ZYNQ=y
@@ -303,6 +307,7 @@ CONFIG_ARM64_AMU_EXTN=y
CONFIG_ARM64_BTI=y
CONFIG_ARM64_E0PD=y
CONFIG_ARM64_ERRATUM_1319367=y
+CONFIG_ARM64_ERRATUM_1508412=y
CONFIG_ARM64_ERRATUM_1530923=y
CONFIG_ARM64_ERRATUM_1542419=y
CONFIG_ARM64_ERRATUM_858921=y
@@ -329,6 +334,7 @@ CONFIG_ARM_CCI_PMU=m
CONFIG_ARM_CCI=y
CONFIG_ARM_CCN=y
# CONFIG_ARM_CHARLCD is not set
+# CONFIG_ARM_CMN is not set
CONFIG_ARM_CPUIDLE=y
CONFIG_ARM_CPU_SUSPEND=y
CONFIG_ARM_CPU_TOPOLOGY=y
@@ -394,6 +400,7 @@ CONFIG_ARM_SMCCC_SOC_ID=y
CONFIG_ARM_SMC_WATCHDOG=m
CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT=y
# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set
+# CONFIG_ARM_SMMU_V3_SVA is not set
CONFIG_ARM_SMMU=y
CONFIG_ARM_SP805_WATCHDOG=m
CONFIG_ARM_SPE_PMU=m
@@ -414,6 +421,7 @@ CONFIG_ARM_VIRT_EXT=y
CONFIG_ARM=y
CONFIG_ARM_ZYNQ_CPUIDLE=y
# CONFIG_AS3935 is not set
+# CONFIG_AS73211 is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE=m
CONFIG_ASYNC_RAID6_TEST=m
@@ -440,9 +448,11 @@ CONFIG_ATH10K_SNOC=m
# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
+CONFIG_ATH11K_AHB=m
CONFIG_ATH11K_DEBUGFS=y
# CONFIG_ATH11K_DEBUG is not set
CONFIG_ATH11K=m
+CONFIG_ATH11K_PCI=m
# CONFIG_ATH11K_SPECTRAL is not set
# CONFIG_ATH11K_TRACING is not set
CONFIG_ATH5K_DEBUG=y
@@ -557,6 +567,7 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_DA9052=m
CONFIG_BACKLIGHT_GENERIC=m
CONFIG_BACKLIGHT_GPIO=m
+CONFIG_BACKLIGHT_KTD253=m
CONFIG_BACKLIGHT_LED=m
# CONFIG_BACKLIGHT_LM3630A is not set
# CONFIG_BACKLIGHT_LM3639 is not set
@@ -738,6 +749,8 @@ CONFIG_BPF_JIT=y
# CONFIG_BPF_KPROBE_OVERRIDE is not set
CONFIG_BPF_LIRC_MODE2=y
CONFIG_BPF_LSM=y
+CONFIG_BPF_PRELOAD_UMD=m
+CONFIG_BPF_PRELOAD=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -872,6 +885,7 @@ CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_ISOTP is not set
# CONFIG_CAN_J1939 is not set
# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
@@ -881,6 +895,7 @@ CONFIG_CAN_M_CAN=m
# CONFIG_CAN_M_CAN_PLATFORM is not set
# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
+# CONFIG_CAN_MCP251XFD is not set
CONFIG_CAN_MCP251X=m
CONFIG_CAN_PEAK_PCIEC=y
CONFIG_CAN_PEAK_PCIEFD=m
@@ -973,6 +988,7 @@ CONFIG_CHARGER_BQ24190=m
CONFIG_CHARGER_BQ24735=m
CONFIG_CHARGER_BQ2515X=m
# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_BQ25980 is not set
CONFIG_CHARGER_CROS_USBPD=m
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
CONFIG_CHARGER_GPIO=m
@@ -995,7 +1011,8 @@ CONFIG_CHARLCD_BL_FLASH=y
# CONFIG_CHARLCD_BL_OFF is not set
# CONFIG_CHARLCD_BL_ON is not set
CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_CHELSIO_IPSEC_INLINE=y
+CONFIG_CHELSIO_INLINE_CRYPTO=y
+CONFIG_CHELSIO_IPSEC_INLINE=m
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -1003,7 +1020,7 @@ CONFIG_CHELSIO_T4_DCB=y
# CONFIG_CHELSIO_T4_FCOE is not set
CONFIG_CHELSIO_T4=m
CONFIG_CHELSIO_T4VF=m
-CONFIG_CHELSIO_TLS_DEVICE=y
+CONFIG_CHELSIO_TLS_DEVICE=m
CONFIG_CHR_DEV_SCH=m
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_ST=m
@@ -1032,8 +1049,19 @@ CONFIG_CLK_IMX8MM=y
CONFIG_CLK_IMX8MN=y
# CONFIG_CLK_IMX8MP is not set
CONFIG_CLK_IMX8MQ=y
+CONFIG_CLK_PX30=y
# CONFIG_CLK_QORIQ is not set
CONFIG_CLK_RASPBERRYPI=y
+CONFIG_CLK_RK3036=y
+CONFIG_CLK_RK312X=y
+CONFIG_CLK_RK3188=y
+CONFIG_CLK_RK322X=y
+CONFIG_CLK_RK3288=y
+CONFIG_CLK_RK3308=y
+CONFIG_CLK_RK3328=y
+CONFIG_CLK_RK3368=y
+CONFIG_CLK_RK3399=y
+CONFIG_CLK_RV110X=y
# CONFIG_CLK_SIFIVE is not set
CONFIG_CLK_SP810=y
# CONFIG_CLKSRC_STM32_LP is not set
@@ -1078,12 +1106,14 @@ CONFIG_COMMON_CLK_AXI_CLKGEN=m
# CONFIG_COMMON_CLK_FSL_SAI is not set
CONFIG_COMMON_CLK_MAX77686=y
# CONFIG_COMMON_CLK_MAX9485 is not set
+CONFIG_COMMON_CLK_MESON8B=y
# CONFIG_COMMON_CLK_MMP2_AUDIO is not set
CONFIG_COMMON_CLK_MMP2=y
CONFIG_COMMON_CLK_PALMAS=m
CONFIG_COMMON_CLK_PWM=m
CONFIG_COMMON_CLK_QCOM=y
CONFIG_COMMON_CLK_RK808=y
+CONFIG_COMMON_CLK_ROCKCHIP=y
CONFIG_COMMON_CLK_S2MPS11=m
CONFIG_COMMON_CLK_SCMI=m
CONFIG_COMMON_CLK_SCPI=m
@@ -1274,9 +1304,14 @@ CONFIG_CRYPTO_DEV_STM32_HASH=m
CONFIG_CRYPTO_DEV_SUN4I_SS=m
CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y
# CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG is not set
+CONFIG_CRYPTO_DEV_SUN8I_CE_HASH=y
CONFIG_CRYPTO_DEV_SUN8I_CE=m
+CONFIG_CRYPTO_DEV_SUN8I_CE_PRNG=y
+CONFIG_CRYPTO_DEV_SUN8I_CE_TRNG=y
# CONFIG_CRYPTO_DEV_SUN8I_SS_DEBUG is not set
+CONFIG_CRYPTO_DEV_SUN8I_SS_HASH=y
CONFIG_CRYPTO_DEV_SUN8I_SS=m
+CONFIG_CRYPTO_DEV_SUN8I_SS_PRNG=y
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
@@ -1340,7 +1375,9 @@ CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA3=m
CONFIG_CRYPTO_SHA512_ARM64=m
CONFIG_CRYPTO_SHA512_ARM=y
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
+CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
CONFIG_CRYPTO_STATS=y
@@ -1350,7 +1387,9 @@ CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_USER_API_AEAD=y
+# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
CONFIG_CRYPTO_USER_API_HASH=y
+# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER=m
@@ -1361,6 +1400,7 @@ CONFIG_CRYPTO_XTS=y
CONFIG_CRYPTO_XXHASH=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ZSTD=m
+# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
# CONFIG_CUSE is not set
CONFIG_CW1200=m
CONFIG_CW1200_WLAN_SDIO=m
@@ -1499,6 +1539,7 @@ CONFIG_DMA_ENGINE=y
# CONFIG_DMA_FENCE_TRACE is not set
CONFIG_DMA_OF=y
CONFIG_DMA_OMAP=m
+# CONFIG_DMA_PERNUMA_CMA is not set
# CONFIG_DMARD06 is not set
# CONFIG_DMARD09 is not set
CONFIG_DMARD10=m
@@ -1554,6 +1595,7 @@ CONFIG_DP83869_PHY=m
# CONFIG_DP83TC811_PHY is not set
CONFIG_DPOT_DAC=m
# CONFIG_DPS310 is not set
+# CONFIG_DPTF_PCH_FIVR is not set
CONFIG_DRA752_THERMAL=y
CONFIG_DRAGONRISE_FF=y
# CONFIG_DRBD_FAULT_INJECTION is not set
@@ -1562,6 +1604,7 @@ CONFIG_DRM_AMD_DC_DCN2_0=y
CONFIG_DRM_AMD_DC_DCN3_0=y
CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
CONFIG_DRM_AMD_DC_HDCP=y
+CONFIG_DRM_AMD_DC_SI=y
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMDGPU_CIK=y
# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
@@ -1576,6 +1619,7 @@ CONFIG_DRM_ARMADA=m
CONFIG_DRM_AST=m
CONFIG_DRM_BOCHS=m
# CONFIG_DRM_CDNS_DSI is not set
+CONFIG_DRM_CDNS_MHDP8546=m
CONFIG_DRM_CHRONTEL_CH7033=m
CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_SELFTEST is not set
@@ -1631,6 +1675,7 @@ CONFIG_DRM_KOMEDA=m
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LIMA=m
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LONTIUM_LT9611 is not set
# CONFIG_DRM_LVDS_CODEC is not set
# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
@@ -1641,11 +1686,13 @@ CONFIG_DRM_MESON_DW_HDMI=m
CONFIG_DRM_MESON=m
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
+CONFIG_DRM_MSM_DP=y
CONFIG_DRM_MSM_DSI_10NM_PHY=y
CONFIG_DRM_MSM_DSI_14NM_PHY=y
CONFIG_DRM_MSM_DSI_20NM_PHY=y
CONFIG_DRM_MSM_DSI_28NM_8960_PHY=y
CONFIG_DRM_MSM_DSI_28NM_PHY=y
+CONFIG_DRM_MSM_DSI_7NM_PHY=y
CONFIG_DRM_MSM_DSI_PLL=y
CONFIG_DRM_MSM_DSI=y
CONFIG_DRM_MSM_HDMI_HDCP=y
@@ -1681,6 +1728,7 @@ CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m
# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
CONFIG_DRM_PANEL_LVDS=m
+CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m
# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
CONFIG_DRM_PANEL_NOVATEK_NT35510=m
# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
@@ -1706,7 +1754,7 @@ CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_PANEL_SITRONIX_ST7701=m
CONFIG_DRM_PANEL_SITRONIX_ST7703=m
-# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+CONFIG_DRM_PANEL_SITRONIX_ST7789V=m
# CONFIG_DRM_PANEL_SONY_ACX424AKP is not set
# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
@@ -1753,9 +1801,11 @@ CONFIG_DRM_TILCDC=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TI_TPD12S015=m
+CONFIG_DRM_TOSHIBA_TC358762=m
CONFIG_DRM_TOSHIBA_TC358764=m
CONFIG_DRM_TOSHIBA_TC358767=m
CONFIG_DRM_TOSHIBA_TC358768=m
+CONFIG_DRM_TOSHIBA_TC358775=m
CONFIG_DRM_TVE200=m
CONFIG_DRM_UDL=m
CONFIG_DRM_V3D=m
@@ -1866,6 +1916,7 @@ CONFIG_DW_EDMA_PCIE=m
CONFIG_DWMAC_DWC_QOS_ETH=m
CONFIG_DWMAC_GENERIC=m
CONFIG_DWMAC_IMX8=m
+CONFIG_DWMAC_INTEL_PLAT=m
CONFIG_DWMAC_IPQ806X=m
CONFIG_DWMAC_MESON=m
CONFIG_DWMAC_QCOM_ETHQOS=m
@@ -1946,7 +1997,10 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
CONFIG_ETHTOOL_NETLINK=y
# CONFIG_EUROTECH_WDT is not set
-# CONFIG_EVM is not set
+# CONFIG_EVM_ADD_XATTRS is not set
+CONFIG_EVM_ATTR_FSUUID=y
+# CONFIG_EVM_LOAD_X509 is not set
+CONFIG_EVM=y
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
CONFIG_EXFAT_FS=m
# CONFIG_EXPERT is not set
@@ -2006,6 +2060,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
# CONFIG_FAT_DEFAULT_UTF8 is not set
CONFIG_FAT_FS=m
# CONFIG_FAULT_INJECTION is not set
+# CONFIG_FAULT_INJECTION_USERCOPY is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_ARK is not set
CONFIG_FB_ARMCLCD=y
@@ -2145,6 +2200,7 @@ CONFIG_FTRACE=y
# CONFIG_FUNCTION_GRAPH_TRACER is not set
CONFIG_FUNCTION_PROFILER=y
CONFIG_FUNCTION_TRACER=y
+CONFIG_FUSE_DAX=y
CONFIG_FUSE_FS=m
CONFIG_FUSION_CTL=m
CONFIG_FUSION_FC=m
@@ -2202,7 +2258,10 @@ CONFIG_GIGASET_CAPI=y
CONFIG_GIGASET_M101=m
CONFIG_GIGASET_M105=m
# CONFIG_GLOB_SELFTEST is not set
-# CONFIG_GNSS is not set
+CONFIG_GNSS=m
+CONFIG_GNSS_MTK_SERIAL=m
+CONFIG_GNSS_SIRF_SERIAL=m
+CONFIG_GNSS_UBX_SERIAL=m
# CONFIG_GOLDFISH is not set
# CONFIG_GOOGLE_FIRMWARE is not set
CONFIG_GP2AP002=m
@@ -2218,6 +2277,7 @@ CONFIG_GPIO_AGGREGATOR=m
# CONFIG_GPIO_BCM_XGS_IPROC is not set
CONFIG_GPIO_BD9571MWV=m
CONFIG_GPIO_CADENCE=m
+CONFIG_GPIO_CDEV_V1=y
CONFIG_GPIO_DA9052=m
CONFIG_GPIO_DA9055=m
CONFIG_GPIO_DWAPB=m
@@ -2244,6 +2304,7 @@ CONFIG_GPIO_MLXBF2=m
CONFIG_GPIO_MOXTET=m
# CONFIG_GPIO_MPC8XXX is not set
CONFIG_GPIO_MVEBU=y
+CONFIG_GPIO_MXC=m
CONFIG_GPIO_OMAP=y
CONFIG_GPIO_PALMAS=y
CONFIG_GPIO_PCA953X_IRQ=y
@@ -2302,6 +2363,7 @@ CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HD44780=m
CONFIG_HDC100X=m
+CONFIG_HDC2010=m
CONFIG_HDQ_MASTER_OMAP=m
CONFIG_HEADERS_CHECK=y
CONFIG_HEADERS_INSTALL=y
@@ -2417,6 +2479,7 @@ CONFIG_HID_U2FZERO=m
CONFIG_HID_UCLOGIC=m
CONFIG_HID_UDRAW_PS3=m
CONFIG_HID_VIEWSONIC=m
+CONFIG_HID_VIVALDI=m
CONFIG_HID_WACOM=m
CONFIG_HID_WALTOP=m
CONFIG_HID_WIIMOTE=m
@@ -2429,6 +2492,7 @@ CONFIG_HIGHPTE=y
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_HIPPI is not set
# CONFIG_HISI_DMA is not set
+CONFIG_HISI_HIKEY_USB=m
# CONFIG_HISILICON_IRQ_MBIGEN is not set
CONFIG_HISI_PMU=y
# CONFIG_HIST_TRIGGERS_DEBUG is not set
@@ -2484,6 +2548,7 @@ CONFIG_HW_RANDOM_STM32=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=y
+CONFIG_HW_RANDOM_XIPHERA=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK_OMAP=m
CONFIG_HWSPINLOCK_QCOM=m
@@ -2541,6 +2606,7 @@ CONFIG_I2C_IMX_LPI2C=m
CONFIG_I2C_IMX=m
# CONFIG_I2C_ISCH is not set
CONFIG_I2C_MESON=m
+CONFIG_I2C_MLXBF=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MUX_GPIO=m
CONFIG_I2C_MUX_GPMUX=m
@@ -2574,6 +2640,7 @@ CONFIG_I2C_SIMTEC=m
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
CONFIG_I2C_SLAVE_EEPROM=m
+# CONFIG_I2C_SLAVE_TESTUNIT is not set
CONFIG_I2C_SLAVE=y
CONFIG_I2C_ST=m
# CONFIG_I2C_STM32F4 is not set
@@ -2629,6 +2696,8 @@ CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IGC=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_DMAENGINE=m
+CONFIG_IIO_BUFFER_DMA=m
CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
@@ -2664,6 +2733,7 @@ CONFIG_IIO_SW_TRIGGER=m
CONFIG_IIO_SYSFS_TRIGGER=m
CONFIG_IIO_TIGHTLOOP_TRIGGER=m
CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_TRIGGERED_EVENT=m
CONFIG_IIO_TRIGGER=y
# CONFIG_IKCONFIG is not set
CONFIG_IKHEADERS=m
@@ -2674,6 +2744,7 @@ CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
+CONFIG_IMA_DEFAULT_HASH="sha256"
CONFIG_IMA_DEFAULT_HASH_SHA256=y
# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
@@ -2698,7 +2769,7 @@ CONFIG_IMX_DSP=m
CONFIG_IMX_GPCV2_PM_DOMAINS=y
CONFIG_IMX_GPCV2=y
CONFIG_IMX_IPUV3_CORE=m
-# CONFIG_IMX_IRQSTEER is not set
+CONFIG_IMX_IRQSTEER=y
CONFIG_IMX_MBOX=m
CONFIG_IMX_REMOTEPROC=m
# CONFIG_IMX_SCU is not set
@@ -2719,6 +2790,7 @@ CONFIG_INET_ESPINTCP=y
CONFIG_INET_ESP=m
CONFIG_INET_ESP_OFFLOAD=m
CONFIG_INET_IPCOMP=m
+CONFIG_INET_MPTCP_DIAG=m
CONFIG_INET_RAW_DIAG=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_UDP_DIAG=m
@@ -2846,6 +2918,7 @@ CONFIG_INTEGRITY=y
# CONFIG_INTEL_IDMA64 is not set
CONFIG_INTEL_IDXD=m
# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
+# CONFIG_INTEL_MEI_VIRTIO is not set
# CONFIG_INTEL_SCU_PCI is not set
# CONFIG_INTEL_SCU_PLATFORM is not set
CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m
@@ -2864,6 +2937,8 @@ CONFIG_INTERCONNECT_QCOM_MSM8916=m
CONFIG_INTERCONNECT_QCOM_OSM_L3=m
# CONFIG_INTERCONNECT_QCOM_QCS404 is not set
CONFIG_INTERCONNECT_QCOM_SC7180=m
+CONFIG_INTERCONNECT_QCOM_SM8150=m
+CONFIG_INTERCONNECT_QCOM_SM8250=m
CONFIG_INTERCONNECT_QCOM=y
CONFIG_INTERCONNECT=y
# CONFIG_INTERVAL_TREE_TEST is not set
@@ -3130,6 +3205,7 @@ CONFIG_JFS_SECURITY=y
CONFIG_JME=m
CONFIG_JOLIET=y
CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADC=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
@@ -3146,23 +3222,23 @@ CONFIG_JOYSTICK_IFORCE=m
CONFIG_JOYSTICK_IFORCE_USB=m
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
-CONFIG_JOYSTICK_MAGELLAN=m
+# CONFIG_JOYSTICK_MAGELLAN is not set
CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_PXRC=m
CONFIG_JOYSTICK_SIDEWINDER=m
-CONFIG_JOYSTICK_SPACEBALL=m
-CONFIG_JOYSTICK_SPACEORB=m
-CONFIG_JOYSTICK_STINGER=m
+# CONFIG_JOYSTICK_SPACEBALL is not set
+# CONFIG_JOYSTICK_SPACEORB is not set
+# CONFIG_JOYSTICK_STINGER is not set
CONFIG_JOYSTICK_TMDC=m
CONFIG_JOYSTICK_TURBOGRAFX=m
-CONFIG_JOYSTICK_TWIDJOY=m
+# CONFIG_JOYSTICK_TWIDJOY is not set
CONFIG_JOYSTICK_WALKERA0701=m
-CONFIG_JOYSTICK_WARRIOR=m
+# CONFIG_JOYSTICK_WARRIOR is not set
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
CONFIG_JOYSTICK_XPAD=m
-CONFIG_JOYSTICK_ZHENHUA=m
+# CONFIG_JOYSTICK_ZHENHUA is not set
# CONFIG_JSA1212 is not set
CONFIG_JUMP_LABEL=y
CONFIG_KALLSYMS_ALL=y
@@ -3183,6 +3259,7 @@ CONFIG_KERNEL_MODE_NEON=y
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_ZSTD is not set
# CONFIG_KEXEC_FILE is not set
+CONFIG_KEXEC_IMAGE_VERIFY_SIG=y
# CONFIG_KEXEC_SIG is not set
CONFIG_KEXEC=y
CONFIG_KEYBOARD_ADC=m
@@ -3232,6 +3309,7 @@ CONFIG_KEY_NOTIFICATIONS=y
CONFIG_KEYS_REQUEST_CACHE=y
# CONFIG_KEYSTONE_REMOTEPROC is not set
CONFIG_KEYS=y
+CONFIG_KGDB_HONOUR_BLOCKLIST=y
# CONFIG_KGDB_KDB is not set
CONFIG_KGDB_LOW_LEVEL_TRAP=y
CONFIG_KGDB_SERIAL_CONSOLE=y
@@ -3286,6 +3364,7 @@ CONFIG_LDISC_AUTOLOAD=y
CONFIG_LDM_PARTITION=y
# CONFIG_LEDS_AAT1290 is not set
CONFIG_LEDS_AN30259A=m
+# CONFIG_LEDS_ARIEL is not set
CONFIG_LEDS_AS3645A=m
# CONFIG_LEDS_AW2013 is not set
# CONFIG_LEDS_BCM6328 is not set
@@ -3313,6 +3392,7 @@ CONFIG_LEDS_LM3601X=m
CONFIG_LEDS_LM3692X=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
+CONFIG_LEDS_LP50XX=m
# CONFIG_LEDS_LP5521 is not set
# CONFIG_LEDS_LP5523 is not set
# CONFIG_LEDS_LP5562 is not set
@@ -3650,9 +3730,12 @@ CONFIG_MFD_DA9055=y
CONFIG_MFD_DA9063=m
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
+CONFIG_MFD_ENE_KB3930=m
CONFIG_MFD_EXYNOS_LPASS=m
# CONFIG_MFD_GATEWORKS_GSC is not set
# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_MFD_HI6421_SPMI is not set
+CONFIG_MFD_INTEL_M10_BMC=m
# CONFIG_MFD_INTEL_PMC_BXT is not set
# CONFIG_MFD_IQS62X is not set
# CONFIG_MFD_JANZ_CMODIO is not set
@@ -3697,6 +3780,7 @@ CONFIG_MFD_RK808=y
CONFIG_MFD_SEC_CORE=y
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SL28CPLD is not set
CONFIG_MFD_SM501_GPIO=y
CONFIG_MFD_SM501=m
# CONFIG_MFD_SMSC is not set
@@ -3742,6 +3826,7 @@ CONFIG_MFD_WL1273_CORE=m
CONFIG_MFD_WM8994=m
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
+# CONFIG_MHI_BUS_DEBUG is not set
CONFIG_MHI_BUS=m
CONFIG_MICREL_KS8995MA=m
CONFIG_MICREL_PHY=m
@@ -4061,6 +4146,7 @@ CONFIG_MVMDIO=m
CONFIG_MVNETA_BM_ENABLE=m
CONFIG_MVNETA=m
CONFIG_MVPP2=m
+CONFIG_MVPP2_PTP=y
CONFIG_MV_XOR=y
CONFIG_MWAVE=m
CONFIG_MWIFIEX=m
@@ -4499,6 +4585,7 @@ CONFIG_NFS_V3=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
CONFIG_NFS_V4_1=y
+# CONFIG_NFS_V4_2_READ_PLUS is not set
CONFIG_NFS_V4_2=y
CONFIG_NFS_V4=m
CONFIG_NF_TABLES_ARP=y
@@ -4831,6 +4918,7 @@ CONFIG_PCIE_DW_PLAT_HOST=y
CONFIG_PCIE_DW=y
CONFIG_PCIE_ECRC=y
CONFIG_PCIE_EDR=y
+# CONFIG_PCIE_HISI_ERR is not set
# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set
# CONFIG_PCIE_MOBIVEIL is not set
# CONFIG_PCI_ENDPOINT is not set
@@ -4880,6 +4968,7 @@ CONFIG_PCMCIA_SMC91C92=m
CONFIG_PCMCIA_XIRC2PS=m
CONFIG_PCMCIA_XIRCOM=m
CONFIG_PCNET32=m
+CONFIG_PCS_XPCS=m
CONFIG_PD6729=m
CONFIG_PDA_POWER=m
CONFIG_PDC_ADMA=m
@@ -4903,7 +4992,10 @@ CONFIG_PHY_EXYNOS_DP_VIDEO=m
CONFIG_PHY_EXYNOS_MIPI_VIDEO=m
CONFIG_PHY_EXYNOS_PCIE=y
# CONFIG_PHY_FSL_IMX8MQ_USB is not set
+# CONFIG_PHY_HI3670_USB is not set
# CONFIG_PHY_INTEL_EMMC is not set
+# CONFIG_PHY_INTEL_KEEMBAY_EMMC is not set
+# CONFIG_PHY_INTEL_LGM_EMMC is not set
CONFIG_PHYLIB=y
CONFIG_PHYLINK=m
# CONFIG_PHY_MAPPHONE_MDM6600 is not set
@@ -4995,6 +5087,7 @@ CONFIG_PINCTRL_IMX8MQ=y
# CONFIG_PINCTRL_MDM9615 is not set
# CONFIG_PINCTRL_MESON8B is not set
# CONFIG_PINCTRL_MESON8 is not set
+CONFIG_PINCTRL_MSM8226=m
CONFIG_PINCTRL_MSM8660=m
CONFIG_PINCTRL_MSM8916=m
CONFIG_PINCTRL_MSM8960=m
@@ -5019,6 +5112,8 @@ CONFIG_PINCTRL_SINGLE=y
# CONFIG_PINCTRL_SM8250 is not set
# CONFIG_PINCTRL_STMFX is not set
CONFIG_PINCTRL_SUN4I_A10=y
+# CONFIG_PINCTRL_SUN50I_A100 is not set
+# CONFIG_PINCTRL_SUN50I_A100_R is not set
# CONFIG_PINCTRL_SUN50I_A64 is not set
# CONFIG_PINCTRL_SUN50I_A64_R is not set
# CONFIG_PINCTRL_SUN50I_H5 is not set
@@ -5085,7 +5180,6 @@ CONFIG_POSIX_MQUEUE=y
# CONFIG_POWER9_CPU is not set
CONFIG_POWER_AVS_OMAP_CLASS3=y
CONFIG_POWER_AVS_OMAP=y
-CONFIG_POWER_AVS=y
CONFIG_POWERCAP=y
CONFIG_POWER_RESET_AS3722=y
# CONFIG_POWER_RESET_BRCMKONA is not set
@@ -5110,6 +5204,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_PPC_PROT_SAO_LPAR is not set
# CONFIG_PPC_PTDUMP is not set
# CONFIG_PPC_QUEUED_SPINLOCKS is not set
+CONFIG_PPC_RTAS_FILTER=y
CONFIG_PPDEV=m
CONFIG_PPP_ASYNC=m
CONFIG_PPP_BSDCOMP=m
@@ -5133,6 +5228,8 @@ CONFIG_PPTP=m
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PRESTERA=m
+CONFIG_PRESTERA_PCI=m
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_PRIME_NUMBERS is not set
CONFIG_PRINTER=m
@@ -5346,6 +5443,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_PERF_TEST is not set
# CONFIG_RCU_REF_SCALE_TEST is not set
+# CONFIG_RCU_SCALE_TEST is not set
CONFIG_RCU_TORTURE_TEST=m
# CONFIG_RCU_TRACE is not set
CONFIG_RC_XBOX_DVD=m
@@ -5433,7 +5531,10 @@ CONFIG_REGULATOR_QCOM_RPM=m
CONFIG_REGULATOR_QCOM_SMD_RPM=m
CONFIG_REGULATOR_QCOM_SPMI=m
CONFIG_REGULATOR_QCOM_USB_VBUS=m
+CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m
CONFIG_REGULATOR_RK808=y
+CONFIG_REGULATOR_RT4801=m
+CONFIG_REGULATOR_RTMV20=m
CONFIG_REGULATOR_S2MPA01=m
CONFIG_REGULATOR_S2MPS11=m
CONFIG_REGULATOR_S5M8767=m
@@ -5486,6 +5587,7 @@ CONFIG_RESET_IMX7=y
CONFIG_RESET_MESON_AUDIO_ARB=m
# CONFIG_RESET_QCOM_AOSS is not set
CONFIG_RESET_QCOM_PDC=m
+CONFIG_RESET_RASPBERRYPI=y
CONFIG_RESET_SCMI=y
CONFIG_RESET_SIMPLE=y
CONFIG_RESET_STM32MP157=y
@@ -5509,6 +5611,7 @@ CONFIG_RMI4_F11=y
CONFIG_RMI4_F12=y
CONFIG_RMI4_F30=y
CONFIG_RMI4_F34=y
+CONFIG_RMI4_F3A=y
# CONFIG_RMI4_F54 is not set
CONFIG_RMI4_F55=y
CONFIG_RMI4_I2C=m
@@ -5666,6 +5769,7 @@ CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_RV3028=m
CONFIG_RTC_DRV_RV3029C2=m
CONFIG_RTC_DRV_RV3029_HWMON=y
+CONFIG_RTC_DRV_RV3032=m
# CONFIG_RTC_DRV_RV8803 is not set
CONFIG_RTC_DRV_RX4581=m
# CONFIG_RTC_DRV_RX6110 is not set
@@ -5698,7 +5802,7 @@ CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_SYSFS=y
-# CONFIG_RTC_NVMEM is not set
+CONFIG_RTC_NVMEM=y
# CONFIG_RTC_SYSTOHC is not set
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_RTL8180=m
@@ -5769,6 +5873,7 @@ CONFIG_SCD30_CORE=m
CONFIG_SCD30_I2C=m
CONFIG_SCD30_SERIAL=m
# CONFIG_SC_DISPCC_7180 is not set
+# CONFIG_SCF_TORTURE_TEST is not set
CONFIG_SC_GCC_7180=m
# CONFIG_SC_GPUCC_7180 is not set
CONFIG_SCHED_AUTOGROUP=y
@@ -5914,7 +6019,7 @@ CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0
CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_DISABLE=y
+# CONFIG_SECURITY_SELINUX_DISABLE is not set
CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
CONFIG_SECURITY_SELINUX=y
@@ -5934,6 +6039,7 @@ CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
# CONFIG_SENSORS_ADM1177 is not set
+CONFIG_SENSORS_ADM1266=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ADS7828=m
@@ -5987,6 +6093,7 @@ CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
# CONFIG_SENSORS_INSPUR_IPSPS is not set
+CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -6052,6 +6159,8 @@ CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_MC13783_ADC=m
CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_MLXREG_FAN=m
+CONFIG_SENSORS_MP2975=m
+CONFIG_SENSORS_MR75203=m
CONFIG_SENSORS_NCT6683=m
CONFIG_SENSORS_NCT6775=m
CONFIG_SENSORS_NCT7802=m
@@ -6254,6 +6363,7 @@ CONFIG_SMC911X=m
CONFIG_SMC91X=m
CONFIG_SMC_DIAG=m
CONFIG_SMC=m
+# CONFIG_SM_DISPCC_8250 is not set
# CONFIG_SM_FTL is not set
# CONFIG_SM_GCC_8150 is not set
CONFIG_SM_GCC_8250=m
@@ -6270,6 +6380,8 @@ CONFIG_SMS_SDIO_DRV=m
CONFIG_SMS_SIANO_MDTV=m
CONFIG_SMS_SIANO_RC=y
CONFIG_SMS_USB_DRV=m
+# CONFIG_SM_VIDEOCC_8150 is not set
+# CONFIG_SM_VIDEOCC_8250 is not set
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AD1889=m
@@ -6469,6 +6581,7 @@ CONFIG_SND_SOC_CROS_EC_CODEC=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
+CONFIG_SND_SOC_CS4234=m
CONFIG_SND_SOC_CS4265=m
# CONFIG_SND_SOC_CS4270 is not set
CONFIG_SND_SOC_CS4271_I2C=m
@@ -6496,10 +6609,10 @@ CONFIG_SND_SOC_ES8328_SPI=m
CONFIG_SND_SOC_EUKREA_TLV320=m
CONFIG_SND_SOC_FSL_ASOC_CARD=m
CONFIG_SND_SOC_FSL_ASRC=m
-# CONFIG_SND_SOC_FSL_AUDMIX is not set
-# CONFIG_SND_SOC_FSL_EASRC is not set
+CONFIG_SND_SOC_FSL_AUDMIX=m
+CONFIG_SND_SOC_FSL_EASRC=m
CONFIG_SND_SOC_FSL_ESAI=m
-# CONFIG_SND_SOC_FSL_MICFIL is not set
+CONFIG_SND_SOC_FSL_MICFIL=m
CONFIG_SND_SOC_FSL_MQS=m
CONFIG_SND_SOC_FSL_SAI=m
CONFIG_SND_SOC_FSL_SPDIF=m
@@ -6513,7 +6626,7 @@ CONFIG_SND_SOC_HDMI_CODEC=m
CONFIG_SND_SOC_I2C_AND_SPI=m
CONFIG_SND_SOC_ICS43432=m
# CONFIG_SND_SOC_IMG is not set
-# CONFIG_SND_SOC_IMX_AUDMIX is not set
+CONFIG_SND_SOC_IMX_AUDMIX=m
CONFIG_SND_SOC_IMX_AUDMUX=m
CONFIG_SND_SOC_IMX_ES8328=m
CONFIG_SND_SOC_IMX_MC13783=m
@@ -6523,12 +6636,14 @@ CONFIG_SND_SOC_IMX_SGTL5000=m
CONFIG_SND_SOC_IMX_SPDIF=m
CONFIG_SND_SOC_IMX_SSI=m
# CONFIG_SND_SOC_INNO_RK3036 is not set
-CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
+# CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set
+# CONFIG_SND_SOC_INTEL_CATPT is not set
# CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH is not set
CONFIG_SND_SOC_INTEL_KEEMBAY=m
CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
# CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH is not set
-CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
+CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m
+# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set
CONFIG_SND_SOC_LPASS_CPU=m
CONFIG_SND_SOC_LPASS_PLATFORM=m
CONFIG_SND_SOC=m
@@ -6589,14 +6704,14 @@ CONFIG_SND_SOC_ROCKCHIP_MAX98090=m
CONFIG_SND_SOC_ROCKCHIP_PDM=m
CONFIG_SND_SOC_ROCKCHIP_RT5645=m
CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
-# CONFIG_SND_SOC_RT1308_SDW is not set
+CONFIG_SND_SOC_RT1308_SDW=m
# CONFIG_SND_SOC_RT5616 is not set
CONFIG_SND_SOC_RT5631=m
CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_RT5682_SDW=m
-# CONFIG_SND_SOC_RT700_SDW is not set
-# CONFIG_SND_SOC_RT711_SDW is not set
-# CONFIG_SND_SOC_RT715_SDW is not set
+CONFIG_SND_SOC_RT700_SDW=m
+CONFIG_SND_SOC_RT711_SDW=m
+CONFIG_SND_SOC_RT715_SDW=m
# CONFIG_SND_SOC_SAMSUNG_ARIES_WM8994 is not set
CONFIG_SND_SOC_SAMSUNG=m
CONFIG_SND_SOC_SAMSUNG_MIDAS_WM1811=m
@@ -6633,6 +6748,7 @@ CONFIG_SND_SOC_STI_SAS=m
CONFIG_SND_SOC_STORM=m
# CONFIG_SND_SOC_TAS2552 is not set
CONFIG_SND_SOC_TAS2562=m
+CONFIG_SND_SOC_TAS2764=m
CONFIG_SND_SOC_TAS2770=m
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TAS571X is not set
@@ -6784,9 +6900,25 @@ CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SOUNDWIRE_CADENCE=m
# CONFIG_SOUNDWIRE_INTEL is not set
+# CONFIG_SOUNDWIRE_QCOM is not set
CONFIG_SOUNDWIRE=y
CONFIG_SPARSEMEM_MANUAL=y
-# CONFIG_SPEAKUP is not set
+CONFIG_SPEAKUP=m
+# CONFIG_SPEAKUP_SYNTH_ACNTPC is not set
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+# CONFIG_SPEAKUP_SYNTH_DECEXT is not set
+# CONFIG_SPEAKUP_SYNTH_DECPC is not set
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+# CONFIG_SPEAKUP_SYNTH_DTLK is not set
+# CONFIG_SPEAKUP_SYNTH_DUMMY is not set
+# CONFIG_SPEAKUP_SYNTH_KEYPC is not set
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_AMD is not set
CONFIG_SPI_ARMADA_3700=m
@@ -6854,6 +6986,7 @@ CONFIG_SPI_XILINX=m
CONFIG_SPI=y
# CONFIG_SPI_ZYNQMP_GQSPI is not set
CONFIG_SPI_ZYNQ_QSPI=m
+# CONFIG_SPMI_HISI3670 is not set
CONFIG_SPMI=m
CONFIG_SPMI_MSM_PMIC_ARB=m
CONFIG_SPMI_PMIC_CLKDIV=m
@@ -6894,6 +7027,7 @@ CONFIG_STACK_VALIDATION=y
CONFIG_STAGING_MEDIA=y
CONFIG_STAGING=y
CONFIG_STANDALONE=y
+# CONFIG_STATIC_CALL_SELFTEST is not set
# CONFIG_STATIC_KEYS_SELFTEST is not set
# CONFIG_STATIC_USERMODEHELPER is not set
CONFIG_STE10XP=m
@@ -7092,6 +7226,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_HEXDUMP is not set
# CONFIG_TEST_HMM is not set
# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_KASAN_MODULE is not set
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_LIST_SORT is not set
@@ -7187,6 +7322,8 @@ CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
CONFIG_TI_PIPE3=m
+# CONFIG_TI_PRUSS_INTC is not set
+# CONFIG_TI_PRUSS is not set
CONFIG_TI_PWMSS=y
# CONFIG_TI_SCI_CLK is not set
CONFIG_TI_SCI_PROTOCOL=m
@@ -7284,6 +7421,7 @@ CONFIG_TOUCHSCREEN_WACOM_W8001=m
# CONFIG_TOUCHSCREEN_WM97XX is not set
CONFIG_TOUCHSCREEN_ZET6223=m
CONFIG_TOUCHSCREEN_ZFORCE=m
+CONFIG_TOUCHSCREEN_ZINITIX=m
# CONFIG_TPL0102 is not set
CONFIG_TPM_KEY_PARSER=m
# CONFIG_TPS6105X is not set
@@ -7337,8 +7475,11 @@ CONFIG_TYPEC_HD3SS3220=m
CONFIG_TYPEC=m
CONFIG_TYPEC_MUX_PI3USB30532=m
CONFIG_TYPEC_NVIDIA_ALTMODE=m
+CONFIG_TYPEC_QCOM_PMIC=m
# CONFIG_TYPEC_RT1711H is not set
+CONFIG_TYPEC_STUSB160X=m
CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPCI_MAXIM=m
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
@@ -7391,6 +7532,7 @@ CONFIG_UNWINDER_ARM=y
# CONFIG_UNWINDER_FRAME_POINTER is not set
CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
+# CONFIG_USB4_DEBUGFS_WRITE is not set
CONFIG_USB4_NET=m
CONFIG_USB4=y
CONFIG_USB_ACM=m
@@ -7409,7 +7551,11 @@ CONFIG_USB_BELKIN=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_CATC=m
# CONFIG_USB_CDC_COMPOSITE is not set
-# CONFIG_USB_CDNS3 is not set
+CONFIG_USB_CDNS3_GADGET=y
+CONFIG_USB_CDNS3_HOST=y
+CONFIG_USB_CDNS3_IMX=m
+CONFIG_USB_CDNS3=m
+CONFIG_USB_CDNS3_PCI_WRAP=m
CONFIG_USB_CHAOSKEY=m
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_CHIPIDEA=m
@@ -7482,6 +7628,7 @@ CONFIG_USB_EMI62=m
CONFIG_USB_EPSON2888=y
# CONFIG_USB_ETH is not set
CONFIG_USB_EZUSB_FX2=m
+# CONFIG_USB_FEW_INIT_RETRIES is not set
# CONFIG_USB_FOTG210_HCD is not set
# CONFIG_USB_FOTG210_UDC is not set
CONFIG_USB_FSL_USB2=m
@@ -7594,6 +7741,7 @@ CONFIG_USB_LD=m
CONFIG_USB_LEDS_TRIGGER_USBPORT=m
CONFIG_USB_LED_TRIG=y
CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LGM_PHY=m
# CONFIG_USB_LINK_LAYER_TEST is not set
CONFIG_USB_M5602=m
# CONFIG_USB_M66592 is not set
@@ -7788,7 +7936,7 @@ CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_HISTB is not set
CONFIG_USB_XHCI_MVEBU=m
-CONFIG_USB_XHCI_PCI_RENESAS=y
+CONFIG_USB_XHCI_PCI_RENESAS=m
CONFIG_USB_XHCI_PLATFORM=m
CONFIG_USB_XHCI_TEGRA=m
CONFIG_USB_XUSBATM=m
@@ -7836,6 +7984,7 @@ CONFIG_VFIO_MDEV_DEVICE=m
CONFIG_VFIO_MDEV=m
# CONFIG_VFIO_NOIOMMU is not set
CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_ZDEV=y
# CONFIG_VFIO_PLATFORM_AMDXGBE_RESET is not set
CONFIG_VFIO_PLATFORM_CALXEDAXGMAC_RESET=m
CONFIG_VFIO_PLATFORM=m
@@ -8029,6 +8178,7 @@ CONFIG_VIDEO_SUNXI_CEDRUS=m
CONFIG_VIDEO_SUNXI=y
CONFIG_VIDEO_TEGRA_HDMI_CEC=m
CONFIG_VIDEO_TEGRA=m
+# CONFIG_VIDEO_TEGRA_TPG is not set
CONFIG_VIDEO_TI_CAL=m
# CONFIG_VIDEO_TI_VPE_DEBUG is not set
CONFIG_VIDEO_TI_VPE=m
@@ -8045,6 +8195,7 @@ CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_VIDEO_VS6624=m
# CONFIG_VIDEO_XILINX is not set
+# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIPERBOARD_ADC is not set
CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
@@ -8209,6 +8360,7 @@ CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_STATISTICS=y
CONFIG_XFRM_SUB_POLICY=y
+# CONFIG_XFRM_USER_COMPAT is not set
CONFIG_XFRM_USER=y
CONFIG_XFRM=y
# CONFIG_XFS_DEBUG is not set
@@ -8218,6 +8370,7 @@ CONFIG_XFS_ONLINE_SCRUB=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_QUOTA=y
# CONFIG_XFS_RT is not set
+CONFIG_XFS_SUPPORT_V4=y
# CONFIG_XFS_WARN is not set
# CONFIG_XIL_AXIS_FIFO is not set
# CONFIG_XILINX_AXI_EMAC is not set
@@ -8250,6 +8403,7 @@ CONFIG_Z3FOLD=y
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBUD=y
+# CONFIG_ZCRYPT_DEBUG is not set
# CONFIG_ZD1211RW_DEBUG is not set
CONFIG_ZD1211RW=m
CONFIG_ZEROPLUS_FF=y
@@ -8283,4 +8437,5 @@ CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
# Select this config option to add support for the initrd= command
# This option determines the default init for the system if no init=
# warnings from C=1 sparse checker or -Wextra compilations. It has
+# You can set the size of pernuma CMA by specifying "cma_pernuma=size"
CONFIG_ZENIFY=y
diff --git a/SOURCES/kernel-armv7hl-lpae-debug-fedora.config b/SOURCES/kernel-armv7hl-lpae-debug-fedora.config
index d02b455..c70a198 100644
--- a/SOURCES/kernel-armv7hl-lpae-debug-fedora.config
+++ b/SOURCES/kernel-armv7hl-lpae-debug-fedora.config
@@ -1,5 +1,6 @@
# arm
# 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
+# beginning with "crc=". If the string "crc=0" is found, the
# CONFIG_60XX_WDT is not set
CONFIG_6LOWPAN_DEBUGFS=y
CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
@@ -39,6 +40,7 @@ CONFIG_ACENIC=m
CONFIG_ACPI_ALS=m
# CONFIG_ACPI_DEBUGGER is not set
CONFIG_ACPI_DEBUG=y
+# CONFIG_ACPI_DPTF is not set
CONFIG_ACPI_HMAT=y
# CONFIG_ACPI_NFIT is not set
CONFIG_ACPI_PCI_SLOT=y
@@ -128,6 +130,7 @@ CONFIG_ADUX1020=m
# CONFIG_ADXL345_SPI is not set
CONFIG_ADXL372_I2C=m
CONFIG_ADXL372_SPI=m
+CONFIG_ADXRS290=m
# CONFIG_ADXRS450 is not set
CONFIG_AEABI=y
# CONFIG_AFE4403 is not set
@@ -285,6 +288,7 @@ CONFIG_ARCH_VEXPRESS_SPC=y
CONFIG_ARCH_VEXPRESS_TC2_PM=y
CONFIG_ARCH_VEXPRESS=y
CONFIG_ARCH_VIRT=y
+# CONFIG_ARCH_VISCONTI is not set
# CONFIG_ARCH_WM8850 is not set
# CONFIG_ARCH_ZX is not set
# CONFIG_ARCH_ZYNQ is not set
@@ -295,6 +299,7 @@ CONFIG_ARM64_AMU_EXTN=y
CONFIG_ARM64_BTI=y
CONFIG_ARM64_E0PD=y
CONFIG_ARM64_ERRATUM_1319367=y
+CONFIG_ARM64_ERRATUM_1508412=y
CONFIG_ARM64_ERRATUM_1530923=y
CONFIG_ARM64_ERRATUM_1542419=y
CONFIG_ARM64_ERRATUM_858921=y
@@ -321,6 +326,7 @@ CONFIG_ARM_CCI_PMU=m
CONFIG_ARM_CCI=y
CONFIG_ARM_CCN=y
# CONFIG_ARM_CHARLCD is not set
+# CONFIG_ARM_CMN is not set
CONFIG_ARM_CPUIDLE=y
CONFIG_ARM_CPU_SUSPEND=y
CONFIG_ARM_CPU_TOPOLOGY=y
@@ -386,6 +392,7 @@ CONFIG_ARM_SMCCC_SOC_ID=y
CONFIG_ARM_SMC_WATCHDOG=m
CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT=y
# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set
+# CONFIG_ARM_SMMU_V3_SVA is not set
CONFIG_ARM_SMMU=y
CONFIG_ARM_SP805_WATCHDOG=m
CONFIG_ARM_SPE_PMU=m
@@ -403,6 +410,7 @@ CONFIG_ARM_VEXPRESS_SPC_CPUFREQ=m
CONFIG_ARM_VIRT_EXT=y
CONFIG_ARM=y
# CONFIG_AS3935 is not set
+# CONFIG_AS73211 is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE=m
CONFIG_ASYNC_RAID6_TEST=m
@@ -429,9 +437,11 @@ CONFIG_ATH10K_SNOC=m
# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
+CONFIG_ATH11K_AHB=m
CONFIG_ATH11K_DEBUGFS=y
# CONFIG_ATH11K_DEBUG is not set
CONFIG_ATH11K=m
+CONFIG_ATH11K_PCI=m
# CONFIG_ATH11K_SPECTRAL is not set
# CONFIG_ATH11K_TRACING is not set
CONFIG_ATH5K_DEBUG=y
@@ -545,6 +555,7 @@ CONFIG_BACKLIGHT_ARCXCNN=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=m
CONFIG_BACKLIGHT_GPIO=m
+CONFIG_BACKLIGHT_KTD253=m
CONFIG_BACKLIGHT_LED=m
# CONFIG_BACKLIGHT_LM3630A is not set
# CONFIG_BACKLIGHT_LM3639 is not set
@@ -717,6 +728,8 @@ CONFIG_BPF_JIT=y
CONFIG_BPF_KPROBE_OVERRIDE=y
CONFIG_BPF_LIRC_MODE2=y
CONFIG_BPF_LSM=y
+CONFIG_BPF_PRELOAD_UMD=m
+CONFIG_BPF_PRELOAD=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -850,6 +863,7 @@ CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_ISOTP is not set
# CONFIG_CAN_J1939 is not set
# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
@@ -859,6 +873,7 @@ CONFIG_CAN_M_CAN=m
# CONFIG_CAN_M_CAN_PLATFORM is not set
# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
+# CONFIG_CAN_MCP251XFD is not set
CONFIG_CAN_MCP251X=m
CONFIG_CAN_PEAK_PCIEC=y
CONFIG_CAN_PEAK_PCIEFD=m
@@ -951,6 +966,7 @@ CONFIG_CHARGER_BQ24190=m
CONFIG_CHARGER_BQ24735=m
CONFIG_CHARGER_BQ2515X=m
# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_BQ25980 is not set
CONFIG_CHARGER_CROS_USBPD=m
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
CONFIG_CHARGER_GPIO=m
@@ -970,7 +986,8 @@ CONFIG_CHARLCD_BL_FLASH=y
# CONFIG_CHARLCD_BL_OFF is not set
# CONFIG_CHARLCD_BL_ON is not set
CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_CHELSIO_IPSEC_INLINE=y
+CONFIG_CHELSIO_INLINE_CRYPTO=y
+CONFIG_CHELSIO_IPSEC_INLINE=m
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -978,7 +995,7 @@ CONFIG_CHELSIO_T4_DCB=y
# CONFIG_CHELSIO_T4_FCOE is not set
CONFIG_CHELSIO_T4=m
CONFIG_CHELSIO_T4VF=m
-CONFIG_CHELSIO_TLS_DEVICE=y
+CONFIG_CHELSIO_TLS_DEVICE=m
CONFIG_CHR_DEV_SCH=m
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_ST=m
@@ -1007,8 +1024,19 @@ CONFIG_CLK_IMX8MM=y
CONFIG_CLK_IMX8MN=y
# CONFIG_CLK_IMX8MP is not set
CONFIG_CLK_IMX8MQ=y
+CONFIG_CLK_PX30=y
# CONFIG_CLK_QORIQ is not set
CONFIG_CLK_RASPBERRYPI=y
+CONFIG_CLK_RK3036=y
+CONFIG_CLK_RK312X=y
+CONFIG_CLK_RK3188=y
+CONFIG_CLK_RK322X=y
+CONFIG_CLK_RK3288=y
+CONFIG_CLK_RK3308=y
+CONFIG_CLK_RK3328=y
+CONFIG_CLK_RK3368=y
+CONFIG_CLK_RK3399=y
+CONFIG_CLK_RV110X=y
# CONFIG_CLK_SIFIVE is not set
CONFIG_CLK_SP810=y
# CONFIG_CLKSRC_STM32_LP is not set
@@ -1051,10 +1079,12 @@ CONFIG_CNIC=m
# CONFIG_COMMON_CLK_FSL_SAI is not set
CONFIG_COMMON_CLK_MAX77686=y
# CONFIG_COMMON_CLK_MAX9485 is not set
+CONFIG_COMMON_CLK_MESON8B=y
# CONFIG_COMMON_CLK_MMP2_AUDIO is not set
CONFIG_COMMON_CLK_PALMAS=m
CONFIG_COMMON_CLK_PWM=m
CONFIG_COMMON_CLK_RK808=y
+CONFIG_COMMON_CLK_ROCKCHIP=y
CONFIG_COMMON_CLK_S2MPS11=m
CONFIG_COMMON_CLK_SCMI=m
CONFIG_COMMON_CLK_SCPI=m
@@ -1244,9 +1274,14 @@ CONFIG_CRYPTO_DEV_STM32_HASH=m
CONFIG_CRYPTO_DEV_SUN4I_SS=m
CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y
# CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG is not set
+CONFIG_CRYPTO_DEV_SUN8I_CE_HASH=y
CONFIG_CRYPTO_DEV_SUN8I_CE=m
+CONFIG_CRYPTO_DEV_SUN8I_CE_PRNG=y
+CONFIG_CRYPTO_DEV_SUN8I_CE_TRNG=y
# CONFIG_CRYPTO_DEV_SUN8I_SS_DEBUG is not set
+CONFIG_CRYPTO_DEV_SUN8I_SS_HASH=y
CONFIG_CRYPTO_DEV_SUN8I_SS=m
+CONFIG_CRYPTO_DEV_SUN8I_SS_PRNG=y
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
@@ -1310,7 +1345,9 @@ CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA3=m
CONFIG_CRYPTO_SHA512_ARM64=m
CONFIG_CRYPTO_SHA512_ARM=y
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
+CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
CONFIG_CRYPTO_STATS=y
@@ -1320,7 +1357,9 @@ CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_USER_API_AEAD=y
+# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
CONFIG_CRYPTO_USER_API_HASH=y
+# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER=m
@@ -1331,6 +1370,7 @@ CONFIG_CRYPTO_XTS=y
CONFIG_CRYPTO_XXHASH=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ZSTD=m
+# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
# CONFIG_CUSE is not set
CONFIG_CW1200=m
CONFIG_CW1200_WLAN_SDIO=m
@@ -1474,6 +1514,7 @@ CONFIG_DMA_ENGINE=y
# CONFIG_DMA_FENCE_TRACE is not set
CONFIG_DMA_OF=y
CONFIG_DMA_OMAP=m
+# CONFIG_DMA_PERNUMA_CMA is not set
# CONFIG_DMARD06 is not set
# CONFIG_DMARD09 is not set
CONFIG_DMARD10=m
@@ -1529,6 +1570,7 @@ CONFIG_DP83869_PHY=m
# CONFIG_DP83TC811_PHY is not set
CONFIG_DPOT_DAC=m
# CONFIG_DPS310 is not set
+# CONFIG_DPTF_PCH_FIVR is not set
CONFIG_DRA752_THERMAL=y
CONFIG_DRAGONRISE_FF=y
CONFIG_DRBD_FAULT_INJECTION=y
@@ -1537,6 +1579,7 @@ CONFIG_DRM_AMD_DC_DCN2_0=y
CONFIG_DRM_AMD_DC_DCN3_0=y
CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
CONFIG_DRM_AMD_DC_HDCP=y
+CONFIG_DRM_AMD_DC_SI=y
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMDGPU_CIK=y
# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
@@ -1551,6 +1594,7 @@ CONFIG_DRM_ARMADA=m
CONFIG_DRM_AST=m
CONFIG_DRM_BOCHS=m
# CONFIG_DRM_CDNS_DSI is not set
+CONFIG_DRM_CDNS_MHDP8546=m
CONFIG_DRM_CHRONTEL_CH7033=m
CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_SELFTEST is not set
@@ -1602,6 +1646,7 @@ CONFIG_DRM_KOMEDA=m
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LIMA=m
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LONTIUM_LT9611 is not set
# CONFIG_DRM_LVDS_CODEC is not set
# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
@@ -1612,7 +1657,9 @@ CONFIG_DRM_MESON_DW_HDMI=m
CONFIG_DRM_MESON=m
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
+CONFIG_DRM_MSM_DP=y
CONFIG_DRM_MSM_DSI_10NM_PHY=y
+CONFIG_DRM_MSM_DSI_7NM_PHY=y
# CONFIG_DRM_MXSFB is not set
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
@@ -1643,6 +1690,7 @@ CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m
# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
CONFIG_DRM_PANEL_LVDS=m
+CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m
# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
CONFIG_DRM_PANEL_NOVATEK_NT35510=m
# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
@@ -1668,7 +1716,7 @@ CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_PANEL_SITRONIX_ST7701=m
CONFIG_DRM_PANEL_SITRONIX_ST7703=m
-# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+CONFIG_DRM_PANEL_SITRONIX_ST7789V=m
# CONFIG_DRM_PANEL_SONY_ACX424AKP is not set
# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
@@ -1715,9 +1763,11 @@ CONFIG_DRM_TIDSS=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TI_TPD12S015=m
+CONFIG_DRM_TOSHIBA_TC358762=m
CONFIG_DRM_TOSHIBA_TC358764=m
CONFIG_DRM_TOSHIBA_TC358767=m
CONFIG_DRM_TOSHIBA_TC358768=m
+CONFIG_DRM_TOSHIBA_TC358775=m
CONFIG_DRM_TVE200=m
CONFIG_DRM_UDL=m
CONFIG_DRM_V3D=m
@@ -1828,6 +1878,7 @@ CONFIG_DW_EDMA_PCIE=m
CONFIG_DWMAC_DWC_QOS_ETH=m
CONFIG_DWMAC_GENERIC=m
CONFIG_DWMAC_IMX8=m
+CONFIG_DWMAC_INTEL_PLAT=m
CONFIG_DWMAC_MESON=m
CONFIG_DWMAC_ROCKCHIP=m
CONFIG_DWMAC_STM32=m
@@ -1905,7 +1956,10 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
CONFIG_ETHTOOL_NETLINK=y
# CONFIG_EUROTECH_WDT is not set
-# CONFIG_EVM is not set
+# CONFIG_EVM_ADD_XATTRS is not set
+CONFIG_EVM_ATTR_FSUUID=y
+# CONFIG_EVM_LOAD_X509 is not set
+CONFIG_EVM=y
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
CONFIG_EXFAT_FS=m
# CONFIG_EXPERT is not set
@@ -1972,6 +2026,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
CONFIG_FAT_FS=m
CONFIG_FAULT_INJECTION_DEBUG_FS=y
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
+# CONFIG_FAULT_INJECTION_USERCOPY is not set
CONFIG_FAULT_INJECTION=y
# CONFIG_FB_3DFX is not set
# CONFIG_FB_ARK is not set
@@ -2112,6 +2167,7 @@ CONFIG_FTRACE=y
# CONFIG_FUNCTION_GRAPH_TRACER is not set
CONFIG_FUNCTION_PROFILER=y
CONFIG_FUNCTION_TRACER=y
+CONFIG_FUSE_DAX=y
CONFIG_FUSE_FS=m
CONFIG_FUSION_CTL=m
CONFIG_FUSION_FC=m
@@ -2168,7 +2224,10 @@ CONFIG_GIGASET_CAPI=y
CONFIG_GIGASET_M101=m
CONFIG_GIGASET_M105=m
# CONFIG_GLOB_SELFTEST is not set
-# CONFIG_GNSS is not set
+CONFIG_GNSS=m
+CONFIG_GNSS_MTK_SERIAL=m
+CONFIG_GNSS_SIRF_SERIAL=m
+CONFIG_GNSS_UBX_SERIAL=m
# CONFIG_GOLDFISH is not set
# CONFIG_GOOGLE_FIRMWARE is not set
CONFIG_GP2AP002=m
@@ -2184,6 +2243,7 @@ CONFIG_GPIO_AGGREGATOR=m
# CONFIG_GPIO_BCM_XGS_IPROC is not set
CONFIG_GPIO_BD9571MWV=m
CONFIG_GPIO_CADENCE=m
+CONFIG_GPIO_CDEV_V1=y
CONFIG_GPIO_DAVINCI=y
CONFIG_GPIO_DWAPB=m
CONFIG_GPIO_EXAR=m
@@ -2209,6 +2269,7 @@ CONFIG_GPIO_MLXBF2=m
CONFIG_GPIO_MOXTET=m
# CONFIG_GPIO_MPC8XXX is not set
CONFIG_GPIO_MVEBU=y
+CONFIG_GPIO_MXC=m
CONFIG_GPIO_OMAP=y
CONFIG_GPIO_PALMAS=y
CONFIG_GPIO_PCA953X_IRQ=y
@@ -2263,6 +2324,7 @@ CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HD44780=m
CONFIG_HDC100X=m
+CONFIG_HDC2010=m
CONFIG_HDQ_MASTER_OMAP=m
CONFIG_HEADERS_CHECK=y
CONFIG_HEADERS_INSTALL=y
@@ -2378,6 +2440,7 @@ CONFIG_HID_U2FZERO=m
CONFIG_HID_UCLOGIC=m
CONFIG_HID_UDRAW_PS3=m
CONFIG_HID_VIEWSONIC=m
+CONFIG_HID_VIVALDI=m
CONFIG_HID_WACOM=m
CONFIG_HID_WALTOP=m
CONFIG_HID_WIIMOTE=m
@@ -2390,6 +2453,7 @@ CONFIG_HIGHPTE=y
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_HIPPI is not set
# CONFIG_HISI_DMA is not set
+CONFIG_HISI_HIKEY_USB=m
# CONFIG_HISILICON_IRQ_MBIGEN is not set
CONFIG_HISI_PMU=y
# CONFIG_HIST_TRIGGERS_DEBUG is not set
@@ -2444,6 +2508,7 @@ CONFIG_HW_RANDOM_STM32=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=y
+CONFIG_HW_RANDOM_XIPHERA=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK_OMAP=m
# CONFIG_HWSPINLOCK_STM32 is not set
@@ -2501,6 +2566,7 @@ CONFIG_I2C_IMX_LPI2C=m
CONFIG_I2C_IMX=m
# CONFIG_I2C_ISCH is not set
CONFIG_I2C_MESON=m
+CONFIG_I2C_MLXBF=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MUX_GPIO=m
CONFIG_I2C_MUX_GPMUX=m
@@ -2533,6 +2599,7 @@ CONFIG_I2C_SIMTEC=m
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
CONFIG_I2C_SLAVE_EEPROM=m
+# CONFIG_I2C_SLAVE_TESTUNIT is not set
CONFIG_I2C_SLAVE=y
# CONFIG_I2C_STM32F4 is not set
CONFIG_I2C_STM32F7=m
@@ -2587,6 +2654,8 @@ CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IGC=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_DMAENGINE=m
+CONFIG_IIO_BUFFER_DMA=m
CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
@@ -2622,6 +2691,7 @@ CONFIG_IIO_SW_TRIGGER=m
CONFIG_IIO_SYSFS_TRIGGER=m
CONFIG_IIO_TIGHTLOOP_TRIGGER=m
CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_TRIGGERED_EVENT=m
CONFIG_IIO_TRIGGER=y
# CONFIG_IKCONFIG is not set
CONFIG_IKHEADERS=m
@@ -2632,6 +2702,7 @@ CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
+CONFIG_IMA_DEFAULT_HASH="sha256"
CONFIG_IMA_DEFAULT_HASH_SHA256=y
# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
@@ -2656,7 +2727,7 @@ CONFIG_IMX_DSP=m
CONFIG_IMX_GPCV2_PM_DOMAINS=y
CONFIG_IMX_GPCV2=y
# CONFIG_IMX_IPUV3_CORE is not set
-# CONFIG_IMX_IRQSTEER is not set
+CONFIG_IMX_IRQSTEER=y
CONFIG_IMX_MBOX=m
CONFIG_IMX_REMOTEPROC=m
# CONFIG_IMX_SCU is not set
@@ -2676,6 +2747,7 @@ CONFIG_INET_ESPINTCP=y
CONFIG_INET_ESP=m
CONFIG_INET_ESP_OFFLOAD=m
CONFIG_INET_IPCOMP=m
+CONFIG_INET_MPTCP_DIAG=m
CONFIG_INET_RAW_DIAG=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_UDP_DIAG=m
@@ -2794,6 +2866,7 @@ CONFIG_INTEGRITY=y
# CONFIG_INTEL_IDMA64 is not set
CONFIG_INTEL_IDXD=m
# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
+# CONFIG_INTEL_MEI_VIRTIO is not set
# CONFIG_INTEL_SCU_PCI is not set
# CONFIG_INTEL_SCU_PLATFORM is not set
CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m
@@ -2812,6 +2885,8 @@ CONFIG_INTERCONNECT_QCOM_MSM8916=m
CONFIG_INTERCONNECT_QCOM_OSM_L3=m
# CONFIG_INTERCONNECT_QCOM_QCS404 is not set
CONFIG_INTERCONNECT_QCOM_SC7180=m
+CONFIG_INTERCONNECT_QCOM_SM8150=m
+CONFIG_INTERCONNECT_QCOM_SM8250=m
CONFIG_INTERCONNECT_QCOM=y
CONFIG_INTERCONNECT=y
# CONFIG_INTERVAL_TREE_TEST is not set
@@ -3077,6 +3152,7 @@ CONFIG_JFS_SECURITY=y
CONFIG_JME=m
CONFIG_JOLIET=y
CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADC=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
@@ -3093,23 +3169,23 @@ CONFIG_JOYSTICK_IFORCE=m
CONFIG_JOYSTICK_IFORCE_USB=m
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
-CONFIG_JOYSTICK_MAGELLAN=m
+# CONFIG_JOYSTICK_MAGELLAN is not set
CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_PXRC=m
CONFIG_JOYSTICK_SIDEWINDER=m
-CONFIG_JOYSTICK_SPACEBALL=m
-CONFIG_JOYSTICK_SPACEORB=m
-CONFIG_JOYSTICK_STINGER=m
+# CONFIG_JOYSTICK_SPACEBALL is not set
+# CONFIG_JOYSTICK_SPACEORB is not set
+# CONFIG_JOYSTICK_STINGER is not set
CONFIG_JOYSTICK_TMDC=m
CONFIG_JOYSTICK_TURBOGRAFX=m
-CONFIG_JOYSTICK_TWIDJOY=m
+# CONFIG_JOYSTICK_TWIDJOY is not set
CONFIG_JOYSTICK_WALKERA0701=m
-CONFIG_JOYSTICK_WARRIOR=m
+# CONFIG_JOYSTICK_WARRIOR is not set
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
CONFIG_JOYSTICK_XPAD=m
-CONFIG_JOYSTICK_ZHENHUA=m
+# CONFIG_JOYSTICK_ZHENHUA is not set
# CONFIG_JSA1212 is not set
CONFIG_JUMP_LABEL=y
CONFIG_KALLSYMS_ALL=y
@@ -3132,6 +3208,7 @@ CONFIG_KERNEL_MODE_NEON=y
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_ZSTD is not set
# CONFIG_KEXEC_FILE is not set
+CONFIG_KEXEC_IMAGE_VERIFY_SIG=y
# CONFIG_KEXEC_SIG is not set
CONFIG_KEXEC=y
CONFIG_KEYBOARD_ADC=m
@@ -3178,6 +3255,7 @@ CONFIG_KEYSTONE_IRQ=m
# CONFIG_KEYSTONE_REMOTEPROC is not set
CONFIG_KEYSTONE_USB_PHY=m
CONFIG_KEYS=y
+CONFIG_KGDB_HONOUR_BLOCKLIST=y
CONFIG_KGDB_KDB=y
CONFIG_KGDB_LOW_LEVEL_TRAP=y
CONFIG_KGDB_SERIAL_CONSOLE=y
@@ -3234,6 +3312,7 @@ CONFIG_LDISC_AUTOLOAD=y
CONFIG_LDM_PARTITION=y
# CONFIG_LEDS_AAT1290 is not set
CONFIG_LEDS_AN30259A=m
+# CONFIG_LEDS_ARIEL is not set
CONFIG_LEDS_AS3645A=m
# CONFIG_LEDS_AW2013 is not set
# CONFIG_LEDS_BCM6328 is not set
@@ -3260,6 +3339,7 @@ CONFIG_LEDS_LM3601X=m
CONFIG_LEDS_LM3692X=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
+CONFIG_LEDS_LP50XX=m
# CONFIG_LEDS_LP5521 is not set
# CONFIG_LEDS_LP5523 is not set
# CONFIG_LEDS_LP5562 is not set
@@ -3587,9 +3667,12 @@ CONFIG_MFD_CROS_EC_DEV=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
+CONFIG_MFD_ENE_KB3930=m
CONFIG_MFD_EXYNOS_LPASS=m
# CONFIG_MFD_GATEWORKS_GSC is not set
# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_MFD_HI6421_SPMI is not set
+CONFIG_MFD_INTEL_M10_BMC=m
# CONFIG_MFD_INTEL_PMC_BXT is not set
# CONFIG_MFD_IQS62X is not set
# CONFIG_MFD_JANZ_CMODIO is not set
@@ -3633,6 +3716,7 @@ CONFIG_MFD_RK808=y
CONFIG_MFD_SEC_CORE=y
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SL28CPLD is not set
CONFIG_MFD_SM501_GPIO=y
CONFIG_MFD_SM501=m
# CONFIG_MFD_SMSC is not set
@@ -3677,6 +3761,7 @@ CONFIG_MFD_WL1273_CORE=m
CONFIG_MFD_WM8994=m
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
+# CONFIG_MHI_BUS_DEBUG is not set
CONFIG_MHI_BUS=m
CONFIG_MICREL_KS8995MA=m
CONFIG_MICREL_PHY=m
@@ -3979,6 +4064,7 @@ CONFIG_MVMDIO=m
CONFIG_MVNETA_BM_ENABLE=m
CONFIG_MVNETA=m
CONFIG_MVPP2=m
+CONFIG_MVPP2_PTP=y
CONFIG_MV_XOR=y
CONFIG_MWAVE=m
CONFIG_MWIFIEX=m
@@ -4416,6 +4502,7 @@ CONFIG_NFS_V3=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
CONFIG_NFS_V4_1=y
+# CONFIG_NFS_V4_2_READ_PLUS is not set
CONFIG_NFS_V4_2=y
CONFIG_NFS_V4=m
CONFIG_NF_TABLES_ARP=y
@@ -4738,6 +4825,7 @@ CONFIG_PCIE_DW_PLAT_HOST=y
CONFIG_PCIE_DW=y
CONFIG_PCIE_ECRC=y
CONFIG_PCIE_EDR=y
+# CONFIG_PCIE_HISI_ERR is not set
# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set
# CONFIG_PCIE_MOBIVEIL is not set
# CONFIG_PCI_ENDPOINT is not set
@@ -4787,6 +4875,7 @@ CONFIG_PCMCIA_SMC91C92=m
CONFIG_PCMCIA_XIRC2PS=m
CONFIG_PCMCIA_XIRCOM=m
CONFIG_PCNET32=m
+CONFIG_PCS_XPCS=m
CONFIG_PD6729=m
CONFIG_PDA_POWER=m
CONFIG_PDC_ADMA=m
@@ -4810,7 +4899,10 @@ CONFIG_PHY_EXYNOS_DP_VIDEO=m
CONFIG_PHY_EXYNOS_MIPI_VIDEO=m
CONFIG_PHY_EXYNOS_PCIE=y
# CONFIG_PHY_FSL_IMX8MQ_USB is not set
+# CONFIG_PHY_HI3670_USB is not set
# CONFIG_PHY_INTEL_EMMC is not set
+# CONFIG_PHY_INTEL_KEEMBAY_EMMC is not set
+# CONFIG_PHY_INTEL_LGM_EMMC is not set
CONFIG_PHYLIB=y
CONFIG_PHYLINK=m
# CONFIG_PHY_MAPPHONE_MDM6600 is not set
@@ -4893,6 +4985,7 @@ CONFIG_PINCTRL_IMX8MQ=y
# CONFIG_PINCTRL_MDM9615 is not set
# CONFIG_PINCTRL_MESON8B is not set
# CONFIG_PINCTRL_MESON8 is not set
+CONFIG_PINCTRL_MSM8226=m
# CONFIG_PINCTRL_MSM8976 is not set
# CONFIG_PINCTRL_MSM8994 is not set
# CONFIG_PINCTRL_MSM8996 is not set
@@ -4911,6 +5004,8 @@ CONFIG_PINCTRL_SINGLE=y
# CONFIG_PINCTRL_SM8250 is not set
# CONFIG_PINCTRL_STMFX is not set
CONFIG_PINCTRL_SUN4I_A10=y
+# CONFIG_PINCTRL_SUN50I_A100 is not set
+# CONFIG_PINCTRL_SUN50I_A100_R is not set
# CONFIG_PINCTRL_SUN50I_A64 is not set
# CONFIG_PINCTRL_SUN50I_A64_R is not set
# CONFIG_PINCTRL_SUN50I_H5 is not set
@@ -4973,7 +5068,6 @@ CONFIG_POSIX_MQUEUE=y
# CONFIG_POWER7_CPU is not set
# CONFIG_POWER8_CPU is not set
# CONFIG_POWER9_CPU is not set
-CONFIG_POWER_AVS=y
CONFIG_POWERCAP=y
CONFIG_POWER_RESET_AS3722=y
# CONFIG_POWER_RESET_BRCMKONA is not set
@@ -4997,6 +5091,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_PPC_PROT_SAO_LPAR is not set
# CONFIG_PPC_PTDUMP is not set
# CONFIG_PPC_QUEUED_SPINLOCKS is not set
+CONFIG_PPC_RTAS_FILTER=y
CONFIG_PPDEV=m
CONFIG_PPP_ASYNC=m
CONFIG_PPP_BSDCOMP=m
@@ -5020,6 +5115,8 @@ CONFIG_PPTP=m
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PRESTERA=m
+CONFIG_PRESTERA_PCI=m
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_PRIME_NUMBERS is not set
CONFIG_PRINTER=m
@@ -5207,6 +5304,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_PERF_TEST is not set
CONFIG_RCU_REF_SCALE_TEST=m
+# CONFIG_RCU_SCALE_TEST is not set
CONFIG_RCU_TORTURE_TEST=m
# CONFIG_RCU_TRACE is not set
CONFIG_RC_XBOX_DVD=m
@@ -5281,7 +5379,10 @@ CONFIG_REGULATOR_PV88060=m
# CONFIG_REGULATOR_PV88080 is not set
CONFIG_REGULATOR_PV88090=m
CONFIG_REGULATOR_PWM=y
+CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m
CONFIG_REGULATOR_RK808=y
+CONFIG_REGULATOR_RT4801=m
+CONFIG_REGULATOR_RTMV20=m
CONFIG_REGULATOR_S2MPA01=m
CONFIG_REGULATOR_S2MPS11=m
CONFIG_REGULATOR_S5M8767=m
@@ -5331,6 +5432,7 @@ CONFIG_RESET_IMX7=y
CONFIG_RESET_MESON_AUDIO_ARB=m
# CONFIG_RESET_QCOM_AOSS is not set
CONFIG_RESET_QCOM_PDC=m
+CONFIG_RESET_RASPBERRYPI=y
CONFIG_RESET_SCMI=y
CONFIG_RESET_SIMPLE=y
CONFIG_RESET_STM32MP157=y
@@ -5354,6 +5456,7 @@ CONFIG_RMI4_F11=y
CONFIG_RMI4_F12=y
CONFIG_RMI4_F30=y
CONFIG_RMI4_F34=y
+CONFIG_RMI4_F3A=y
# CONFIG_RMI4_F54 is not set
CONFIG_RMI4_F55=y
CONFIG_RMI4_I2C=m
@@ -5504,6 +5607,7 @@ CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_RV3028=m
CONFIG_RTC_DRV_RV3029C2=m
CONFIG_RTC_DRV_RV3029_HWMON=y
+CONFIG_RTC_DRV_RV3032=m
# CONFIG_RTC_DRV_RV8803 is not set
CONFIG_RTC_DRV_RX4581=m
# CONFIG_RTC_DRV_RX6110 is not set
@@ -5533,7 +5637,7 @@ CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_SYSFS=y
-# CONFIG_RTC_NVMEM is not set
+CONFIG_RTC_NVMEM=y
# CONFIG_RTC_SYSTOHC is not set
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_RTL8180=m
@@ -5604,6 +5708,7 @@ CONFIG_SCD30_CORE=m
CONFIG_SCD30_I2C=m
CONFIG_SCD30_SERIAL=m
# CONFIG_SC_DISPCC_7180 is not set
+# CONFIG_SCF_TORTURE_TEST is not set
CONFIG_SC_GCC_7180=m
# CONFIG_SC_GPUCC_7180 is not set
CONFIG_SCHED_AUTOGROUP=y
@@ -5749,7 +5854,7 @@ CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0
CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_DISABLE=y
+# CONFIG_SECURITY_SELINUX_DISABLE is not set
CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
CONFIG_SECURITY_SELINUX=y
@@ -5769,6 +5874,7 @@ CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
# CONFIG_SENSORS_ADM1177 is not set
+CONFIG_SENSORS_ADM1266=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ADS7828=m
@@ -5820,6 +5926,7 @@ CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
# CONFIG_SENSORS_INSPUR_IPSPS is not set
+CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -5884,6 +5991,8 @@ CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_MLXREG_FAN=m
+CONFIG_SENSORS_MP2975=m
+CONFIG_SENSORS_MR75203=m
CONFIG_SENSORS_NCT6683=m
CONFIG_SENSORS_NCT6775=m
CONFIG_SENSORS_NCT7802=m
@@ -6078,6 +6187,7 @@ CONFIG_SMC911X=m
CONFIG_SMC91X=m
CONFIG_SMC_DIAG=m
CONFIG_SMC=m
+# CONFIG_SM_DISPCC_8250 is not set
# CONFIG_SM_FTL is not set
# CONFIG_SM_GCC_8150 is not set
CONFIG_SM_GCC_8250=m
@@ -6094,6 +6204,8 @@ CONFIG_SMS_SDIO_DRV=m
CONFIG_SMS_SIANO_MDTV=m
CONFIG_SMS_SIANO_RC=y
CONFIG_SMS_USB_DRV=m
+# CONFIG_SM_VIDEOCC_8150 is not set
+# CONFIG_SM_VIDEOCC_8250 is not set
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AD1889=m
@@ -6288,6 +6400,7 @@ CONFIG_SND_SOC_CROS_EC_CODEC=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
+CONFIG_SND_SOC_CS4234=m
CONFIG_SND_SOC_CS4265=m
# CONFIG_SND_SOC_CS4270 is not set
CONFIG_SND_SOC_CS4271_I2C=m
@@ -6314,10 +6427,10 @@ CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_ES8328_SPI=m
CONFIG_SND_SOC_FSL_ASOC_CARD=m
CONFIG_SND_SOC_FSL_ASRC=m
-# CONFIG_SND_SOC_FSL_AUDMIX is not set
-# CONFIG_SND_SOC_FSL_EASRC is not set
+CONFIG_SND_SOC_FSL_AUDMIX=m
+CONFIG_SND_SOC_FSL_EASRC=m
CONFIG_SND_SOC_FSL_ESAI=m
-# CONFIG_SND_SOC_FSL_MICFIL is not set
+CONFIG_SND_SOC_FSL_MICFIL=m
CONFIG_SND_SOC_FSL_MQS=m
CONFIG_SND_SOC_FSL_SAI=m
CONFIG_SND_SOC_FSL_SPDIF=m
@@ -6330,18 +6443,20 @@ CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_HDMI_CODEC=m
CONFIG_SND_SOC_ICS43432=m
# CONFIG_SND_SOC_IMG is not set
-# CONFIG_SND_SOC_IMX_AUDMIX is not set
+CONFIG_SND_SOC_IMX_AUDMIX=m
CONFIG_SND_SOC_IMX_AUDMUX=m
# CONFIG_SND_SOC_IMX_ES8328 is not set
CONFIG_SND_SOC_IMX_SGTL5000=m
CONFIG_SND_SOC_IMX_SPDIF=m
# CONFIG_SND_SOC_INNO_RK3036 is not set
-CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
+# CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set
+# CONFIG_SND_SOC_INTEL_CATPT is not set
# CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH is not set
CONFIG_SND_SOC_INTEL_KEEMBAY=m
CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
# CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH is not set
-CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
+CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m
+# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set
CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
@@ -6396,14 +6511,14 @@ CONFIG_SND_SOC_ROCKCHIP_MAX98090=m
CONFIG_SND_SOC_ROCKCHIP_PDM=m
CONFIG_SND_SOC_ROCKCHIP_RT5645=m
CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
-# CONFIG_SND_SOC_RT1308_SDW is not set
+CONFIG_SND_SOC_RT1308_SDW=m
# CONFIG_SND_SOC_RT5616 is not set
CONFIG_SND_SOC_RT5631=m
CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_RT5682_SDW=m
-# CONFIG_SND_SOC_RT700_SDW is not set
-# CONFIG_SND_SOC_RT711_SDW is not set
-# CONFIG_SND_SOC_RT715_SDW is not set
+CONFIG_SND_SOC_RT700_SDW=m
+CONFIG_SND_SOC_RT711_SDW=m
+CONFIG_SND_SOC_RT715_SDW=m
# CONFIG_SND_SOC_SAMSUNG_ARIES_WM8994 is not set
CONFIG_SND_SOC_SAMSUNG=m
CONFIG_SND_SOC_SAMSUNG_MIDAS_WM1811=m
@@ -6439,6 +6554,7 @@ CONFIG_SND_SOC_SPDIF=m
# CONFIG_SND_SOC_STM32_SPDIFRX is not set
# CONFIG_SND_SOC_TAS2552 is not set
CONFIG_SND_SOC_TAS2562=m
+CONFIG_SND_SOC_TAS2764=m
CONFIG_SND_SOC_TAS2770=m
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TAS571X is not set
@@ -6569,9 +6685,25 @@ CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SOUNDWIRE_CADENCE=m
# CONFIG_SOUNDWIRE_INTEL is not set
+# CONFIG_SOUNDWIRE_QCOM is not set
CONFIG_SOUNDWIRE=y
CONFIG_SPARSEMEM_MANUAL=y
-# CONFIG_SPEAKUP is not set
+CONFIG_SPEAKUP=m
+# CONFIG_SPEAKUP_SYNTH_ACNTPC is not set
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+# CONFIG_SPEAKUP_SYNTH_DECEXT is not set
+# CONFIG_SPEAKUP_SYNTH_DECPC is not set
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+# CONFIG_SPEAKUP_SYNTH_DTLK is not set
+# CONFIG_SPEAKUP_SYNTH_DUMMY is not set
+# CONFIG_SPEAKUP_SYNTH_KEYPC is not set
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_AMD is not set
CONFIG_SPI_ARMADA_3700=m
@@ -6634,6 +6766,7 @@ CONFIG_SPI_TI_QSPI=m
CONFIG_SPI=y
# CONFIG_SPI_ZYNQMP_GQSPI is not set
CONFIG_SPI_ZYNQ_QSPI=m
+# CONFIG_SPMI_HISI3670 is not set
# CONFIG_SPMI is not set
CONFIG_SPMI_PMIC_CLKDIV=m
# CONFIG_SPS30 is not set
@@ -6673,6 +6806,7 @@ CONFIG_STACK_VALIDATION=y
CONFIG_STAGING_MEDIA=y
CONFIG_STAGING=y
CONFIG_STANDALONE=y
+# CONFIG_STATIC_CALL_SELFTEST is not set
# CONFIG_STATIC_KEYS_SELFTEST is not set
# CONFIG_STATIC_USERMODEHELPER is not set
CONFIG_STE10XP=m
@@ -6867,6 +7001,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_HEXDUMP is not set
# CONFIG_TEST_HMM is not set
# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_KASAN_MODULE is not set
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
CONFIG_TEST_LIST_SORT=y
@@ -6964,6 +7099,8 @@ CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
CONFIG_TI_PIPE3=m
+# CONFIG_TI_PRUSS_INTC is not set
+# CONFIG_TI_PRUSS is not set
CONFIG_TI_PWMSS=y
# CONFIG_TI_SCI_CLK is not set
CONFIG_TI_SCI_PROTOCOL=m
@@ -7060,6 +7197,7 @@ CONFIG_TOUCHSCREEN_WACOM_W8001=m
# CONFIG_TOUCHSCREEN_WM97XX is not set
CONFIG_TOUCHSCREEN_ZET6223=m
CONFIG_TOUCHSCREEN_ZFORCE=m
+CONFIG_TOUCHSCREEN_ZINITIX=m
# CONFIG_TPL0102 is not set
CONFIG_TPM_KEY_PARSER=m
# CONFIG_TPS6105X is not set
@@ -7107,8 +7245,11 @@ CONFIG_TYPEC_HD3SS3220=m
CONFIG_TYPEC=m
CONFIG_TYPEC_MUX_PI3USB30532=m
CONFIG_TYPEC_NVIDIA_ALTMODE=m
+CONFIG_TYPEC_QCOM_PMIC=m
# CONFIG_TYPEC_RT1711H is not set
+CONFIG_TYPEC_STUSB160X=m
CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPCI_MAXIM=m
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
@@ -7161,6 +7302,7 @@ CONFIG_UNWINDER_ARM=y
# CONFIG_UNWINDER_FRAME_POINTER is not set
CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
+# CONFIG_USB4_DEBUGFS_WRITE is not set
CONFIG_USB4_NET=m
CONFIG_USB4=y
CONFIG_USB_ACM=m
@@ -7179,7 +7321,11 @@ CONFIG_USB_BELKIN=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_CATC=m
# CONFIG_USB_CDC_COMPOSITE is not set
-# CONFIG_USB_CDNS3 is not set
+CONFIG_USB_CDNS3_GADGET=y
+CONFIG_USB_CDNS3_HOST=y
+CONFIG_USB_CDNS3_IMX=m
+CONFIG_USB_CDNS3=m
+CONFIG_USB_CDNS3_PCI_WRAP=m
CONFIG_USB_CHAOSKEY=m
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_CHIPIDEA=m
@@ -7247,6 +7393,7 @@ CONFIG_USB_EMI62=m
CONFIG_USB_EPSON2888=y
# CONFIG_USB_ETH is not set
CONFIG_USB_EZUSB_FX2=m
+# CONFIG_USB_FEW_INIT_RETRIES is not set
# CONFIG_USB_FOTG210_HCD is not set
# CONFIG_USB_FOTG210_UDC is not set
CONFIG_USB_FTDI_ELAN=m
@@ -7357,6 +7504,7 @@ CONFIG_USB_LD=m
CONFIG_USB_LEDS_TRIGGER_USBPORT=m
CONFIG_USB_LED_TRIG=y
CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LGM_PHY=m
# CONFIG_USB_LINK_LAYER_TEST is not set
CONFIG_USB_M5602=m
# CONFIG_USB_M66592 is not set
@@ -7548,7 +7696,7 @@ CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_HISTB is not set
CONFIG_USB_XHCI_MVEBU=m
-CONFIG_USB_XHCI_PCI_RENESAS=y
+CONFIG_USB_XHCI_PCI_RENESAS=m
CONFIG_USB_XHCI_PLATFORM=m
CONFIG_USB_XHCI_TEGRA=m
CONFIG_USB_XUSBATM=m
@@ -7596,6 +7744,7 @@ CONFIG_VFIO_MDEV_DEVICE=m
CONFIG_VFIO_MDEV=m
# CONFIG_VFIO_NOIOMMU is not set
CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_ZDEV=y
# CONFIG_VFIO_PLATFORM_AMDXGBE_RESET is not set
CONFIG_VFIO_PLATFORM_CALXEDAXGMAC_RESET=m
CONFIG_VFIO_PLATFORM=m
@@ -7776,6 +7925,7 @@ CONFIG_VIDEO_SUNXI_CEDRUS=m
CONFIG_VIDEO_SUNXI=y
CONFIG_VIDEO_TEGRA_HDMI_CEC=m
CONFIG_VIDEO_TEGRA=m
+# CONFIG_VIDEO_TEGRA_TPG is not set
CONFIG_VIDEO_TI_CAL=m
# CONFIG_VIDEO_TI_VPE_DEBUG is not set
CONFIG_VIDEO_TI_VPE=m
@@ -7792,6 +7942,7 @@ CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_VIDEO_VS6624=m
# CONFIG_VIDEO_XILINX is not set
+# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIPERBOARD_ADC is not set
CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
@@ -7956,6 +8107,7 @@ CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_STATISTICS=y
CONFIG_XFRM_SUB_POLICY=y
+# CONFIG_XFRM_USER_COMPAT is not set
CONFIG_XFRM_USER=y
CONFIG_XFRM=y
# CONFIG_XFS_DEBUG is not set
@@ -7965,6 +8117,7 @@ CONFIG_XFS_ONLINE_SCRUB=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_QUOTA=y
# CONFIG_XFS_RT is not set
+CONFIG_XFS_SUPPORT_V4=y
CONFIG_XFS_WARN=y
# CONFIG_XIL_AXIS_FIFO is not set
# CONFIG_XILINX_AXI_EMAC is not set
@@ -7996,6 +8149,7 @@ CONFIG_Z3FOLD=y
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBUD=y
+# CONFIG_ZCRYPT_DEBUG is not set
# CONFIG_ZD1211RW_DEBUG is not set
CONFIG_ZD1211RW=m
CONFIG_ZEROPLUS_FF=y
@@ -8029,4 +8183,5 @@ CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
# Select this config option to add support for the initrd= command
# This option determines the default init for the system if no init=
# warnings from C=1 sparse checker or -Wextra compilations. It has
+# You can set the size of pernuma CMA by specifying "cma_pernuma=size"
CONFIG_ZENIFY=y
diff --git a/SOURCES/kernel-armv7hl-lpae-fedora.config b/SOURCES/kernel-armv7hl-lpae-fedora.config
index d2ea177..e8264c8 100644
--- a/SOURCES/kernel-armv7hl-lpae-fedora.config
+++ b/SOURCES/kernel-armv7hl-lpae-fedora.config
@@ -1,5 +1,6 @@
# arm
# 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
+# beginning with "crc=". If the string "crc=0" is found, the
# CONFIG_60XX_WDT is not set
CONFIG_6LOWPAN_DEBUGFS=y
CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
@@ -39,6 +40,7 @@ CONFIG_ACENIC=m
CONFIG_ACPI_ALS=m
# CONFIG_ACPI_DEBUGGER is not set
# CONFIG_ACPI_DEBUG is not set
+# CONFIG_ACPI_DPTF is not set
CONFIG_ACPI_HMAT=y
# CONFIG_ACPI_NFIT is not set
CONFIG_ACPI_PCI_SLOT=y
@@ -128,6 +130,7 @@ CONFIG_ADUX1020=m
# CONFIG_ADXL345_SPI is not set
CONFIG_ADXL372_I2C=m
CONFIG_ADXL372_SPI=m
+CONFIG_ADXRS290=m
# CONFIG_ADXRS450 is not set
CONFIG_AEABI=y
# CONFIG_AFE4403 is not set
@@ -285,6 +288,7 @@ CONFIG_ARCH_VEXPRESS_SPC=y
CONFIG_ARCH_VEXPRESS_TC2_PM=y
CONFIG_ARCH_VEXPRESS=y
CONFIG_ARCH_VIRT=y
+# CONFIG_ARCH_VISCONTI is not set
# CONFIG_ARCH_WM8850 is not set
# CONFIG_ARCH_ZX is not set
# CONFIG_ARCH_ZYNQ is not set
@@ -295,6 +299,7 @@ CONFIG_ARM64_AMU_EXTN=y
CONFIG_ARM64_BTI=y
CONFIG_ARM64_E0PD=y
CONFIG_ARM64_ERRATUM_1319367=y
+CONFIG_ARM64_ERRATUM_1508412=y
CONFIG_ARM64_ERRATUM_1530923=y
CONFIG_ARM64_ERRATUM_1542419=y
CONFIG_ARM64_ERRATUM_858921=y
@@ -321,6 +326,7 @@ CONFIG_ARM_CCI_PMU=m
CONFIG_ARM_CCI=y
CONFIG_ARM_CCN=y
# CONFIG_ARM_CHARLCD is not set
+# CONFIG_ARM_CMN is not set
CONFIG_ARM_CPUIDLE=y
CONFIG_ARM_CPU_SUSPEND=y
CONFIG_ARM_CPU_TOPOLOGY=y
@@ -386,6 +392,7 @@ CONFIG_ARM_SMCCC_SOC_ID=y
CONFIG_ARM_SMC_WATCHDOG=m
CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT=y
# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set
+# CONFIG_ARM_SMMU_V3_SVA is not set
CONFIG_ARM_SMMU=y
CONFIG_ARM_SP805_WATCHDOG=m
CONFIG_ARM_SPE_PMU=m
@@ -403,6 +410,7 @@ CONFIG_ARM_VEXPRESS_SPC_CPUFREQ=m
CONFIG_ARM_VIRT_EXT=y
CONFIG_ARM=y
# CONFIG_AS3935 is not set
+# CONFIG_AS73211 is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE=m
CONFIG_ASYNC_RAID6_TEST=m
@@ -429,9 +437,11 @@ CONFIG_ATH10K_SNOC=m
# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
+CONFIG_ATH11K_AHB=m
CONFIG_ATH11K_DEBUGFS=y
# CONFIG_ATH11K_DEBUG is not set
CONFIG_ATH11K=m
+CONFIG_ATH11K_PCI=m
# CONFIG_ATH11K_SPECTRAL is not set
# CONFIG_ATH11K_TRACING is not set
CONFIG_ATH5K_DEBUG=y
@@ -545,6 +555,7 @@ CONFIG_BACKLIGHT_ARCXCNN=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=m
CONFIG_BACKLIGHT_GPIO=m
+CONFIG_BACKLIGHT_KTD253=m
CONFIG_BACKLIGHT_LED=m
# CONFIG_BACKLIGHT_LM3630A is not set
# CONFIG_BACKLIGHT_LM3639 is not set
@@ -717,6 +728,8 @@ CONFIG_BPF_JIT=y
# CONFIG_BPF_KPROBE_OVERRIDE is not set
CONFIG_BPF_LIRC_MODE2=y
CONFIG_BPF_LSM=y
+CONFIG_BPF_PRELOAD_UMD=m
+CONFIG_BPF_PRELOAD=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -850,6 +863,7 @@ CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_ISOTP is not set
# CONFIG_CAN_J1939 is not set
# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
@@ -859,6 +873,7 @@ CONFIG_CAN_M_CAN=m
# CONFIG_CAN_M_CAN_PLATFORM is not set
# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
+# CONFIG_CAN_MCP251XFD is not set
CONFIG_CAN_MCP251X=m
CONFIG_CAN_PEAK_PCIEC=y
CONFIG_CAN_PEAK_PCIEFD=m
@@ -951,6 +966,7 @@ CONFIG_CHARGER_BQ24190=m
CONFIG_CHARGER_BQ24735=m
CONFIG_CHARGER_BQ2515X=m
# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_BQ25980 is not set
CONFIG_CHARGER_CROS_USBPD=m
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
CONFIG_CHARGER_GPIO=m
@@ -970,7 +986,8 @@ CONFIG_CHARLCD_BL_FLASH=y
# CONFIG_CHARLCD_BL_OFF is not set
# CONFIG_CHARLCD_BL_ON is not set
CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_CHELSIO_IPSEC_INLINE=y
+CONFIG_CHELSIO_INLINE_CRYPTO=y
+CONFIG_CHELSIO_IPSEC_INLINE=m
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -978,7 +995,7 @@ CONFIG_CHELSIO_T4_DCB=y
# CONFIG_CHELSIO_T4_FCOE is not set
CONFIG_CHELSIO_T4=m
CONFIG_CHELSIO_T4VF=m
-CONFIG_CHELSIO_TLS_DEVICE=y
+CONFIG_CHELSIO_TLS_DEVICE=m
CONFIG_CHR_DEV_SCH=m
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_ST=m
@@ -1007,8 +1024,19 @@ CONFIG_CLK_IMX8MM=y
CONFIG_CLK_IMX8MN=y
# CONFIG_CLK_IMX8MP is not set
CONFIG_CLK_IMX8MQ=y
+CONFIG_CLK_PX30=y
# CONFIG_CLK_QORIQ is not set
CONFIG_CLK_RASPBERRYPI=y
+CONFIG_CLK_RK3036=y
+CONFIG_CLK_RK312X=y
+CONFIG_CLK_RK3188=y
+CONFIG_CLK_RK322X=y
+CONFIG_CLK_RK3288=y
+CONFIG_CLK_RK3308=y
+CONFIG_CLK_RK3328=y
+CONFIG_CLK_RK3368=y
+CONFIG_CLK_RK3399=y
+CONFIG_CLK_RV110X=y
# CONFIG_CLK_SIFIVE is not set
CONFIG_CLK_SP810=y
# CONFIG_CLKSRC_STM32_LP is not set
@@ -1051,10 +1079,12 @@ CONFIG_CNIC=m
# CONFIG_COMMON_CLK_FSL_SAI is not set
CONFIG_COMMON_CLK_MAX77686=y
# CONFIG_COMMON_CLK_MAX9485 is not set
+CONFIG_COMMON_CLK_MESON8B=y
# CONFIG_COMMON_CLK_MMP2_AUDIO is not set
CONFIG_COMMON_CLK_PALMAS=m
CONFIG_COMMON_CLK_PWM=m
CONFIG_COMMON_CLK_RK808=y
+CONFIG_COMMON_CLK_ROCKCHIP=y
CONFIG_COMMON_CLK_S2MPS11=m
CONFIG_COMMON_CLK_SCMI=m
CONFIG_COMMON_CLK_SCPI=m
@@ -1244,9 +1274,14 @@ CONFIG_CRYPTO_DEV_STM32_HASH=m
CONFIG_CRYPTO_DEV_SUN4I_SS=m
CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y
# CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG is not set
+CONFIG_CRYPTO_DEV_SUN8I_CE_HASH=y
CONFIG_CRYPTO_DEV_SUN8I_CE=m
+CONFIG_CRYPTO_DEV_SUN8I_CE_PRNG=y
+CONFIG_CRYPTO_DEV_SUN8I_CE_TRNG=y
# CONFIG_CRYPTO_DEV_SUN8I_SS_DEBUG is not set
+CONFIG_CRYPTO_DEV_SUN8I_SS_HASH=y
CONFIG_CRYPTO_DEV_SUN8I_SS=m
+CONFIG_CRYPTO_DEV_SUN8I_SS_PRNG=y
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
@@ -1310,7 +1345,9 @@ CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA3=m
CONFIG_CRYPTO_SHA512_ARM64=m
CONFIG_CRYPTO_SHA512_ARM=y
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
+CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
CONFIG_CRYPTO_STATS=y
@@ -1320,7 +1357,9 @@ CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_USER_API_AEAD=y
+# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
CONFIG_CRYPTO_USER_API_HASH=y
+# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER=m
@@ -1331,6 +1370,7 @@ CONFIG_CRYPTO_XTS=y
CONFIG_CRYPTO_XXHASH=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ZSTD=m
+# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
# CONFIG_CUSE is not set
CONFIG_CW1200=m
CONFIG_CW1200_WLAN_SDIO=m
@@ -1467,6 +1507,7 @@ CONFIG_DMA_ENGINE=y
# CONFIG_DMA_FENCE_TRACE is not set
CONFIG_DMA_OF=y
CONFIG_DMA_OMAP=m
+# CONFIG_DMA_PERNUMA_CMA is not set
# CONFIG_DMARD06 is not set
# CONFIG_DMARD09 is not set
CONFIG_DMARD10=m
@@ -1522,6 +1563,7 @@ CONFIG_DP83869_PHY=m
# CONFIG_DP83TC811_PHY is not set
CONFIG_DPOT_DAC=m
# CONFIG_DPS310 is not set
+# CONFIG_DPTF_PCH_FIVR is not set
CONFIG_DRA752_THERMAL=y
CONFIG_DRAGONRISE_FF=y
# CONFIG_DRBD_FAULT_INJECTION is not set
@@ -1530,6 +1572,7 @@ CONFIG_DRM_AMD_DC_DCN2_0=y
CONFIG_DRM_AMD_DC_DCN3_0=y
CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
CONFIG_DRM_AMD_DC_HDCP=y
+CONFIG_DRM_AMD_DC_SI=y
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMDGPU_CIK=y
# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
@@ -1544,6 +1587,7 @@ CONFIG_DRM_ARMADA=m
CONFIG_DRM_AST=m
CONFIG_DRM_BOCHS=m
# CONFIG_DRM_CDNS_DSI is not set
+CONFIG_DRM_CDNS_MHDP8546=m
CONFIG_DRM_CHRONTEL_CH7033=m
CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_SELFTEST is not set
@@ -1595,6 +1639,7 @@ CONFIG_DRM_KOMEDA=m
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LIMA=m
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LONTIUM_LT9611 is not set
# CONFIG_DRM_LVDS_CODEC is not set
# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
@@ -1605,7 +1650,9 @@ CONFIG_DRM_MESON_DW_HDMI=m
CONFIG_DRM_MESON=m
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
+CONFIG_DRM_MSM_DP=y
CONFIG_DRM_MSM_DSI_10NM_PHY=y
+CONFIG_DRM_MSM_DSI_7NM_PHY=y
# CONFIG_DRM_MXSFB is not set
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
@@ -1636,6 +1683,7 @@ CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m
# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
CONFIG_DRM_PANEL_LVDS=m
+CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m
# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
CONFIG_DRM_PANEL_NOVATEK_NT35510=m
# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
@@ -1661,7 +1709,7 @@ CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_PANEL_SITRONIX_ST7701=m
CONFIG_DRM_PANEL_SITRONIX_ST7703=m
-# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+CONFIG_DRM_PANEL_SITRONIX_ST7789V=m
# CONFIG_DRM_PANEL_SONY_ACX424AKP is not set
# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
@@ -1708,9 +1756,11 @@ CONFIG_DRM_TIDSS=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TI_TPD12S015=m
+CONFIG_DRM_TOSHIBA_TC358762=m
CONFIG_DRM_TOSHIBA_TC358764=m
CONFIG_DRM_TOSHIBA_TC358767=m
CONFIG_DRM_TOSHIBA_TC358768=m
+CONFIG_DRM_TOSHIBA_TC358775=m
CONFIG_DRM_TVE200=m
CONFIG_DRM_UDL=m
CONFIG_DRM_V3D=m
@@ -1821,6 +1871,7 @@ CONFIG_DW_EDMA_PCIE=m
CONFIG_DWMAC_DWC_QOS_ETH=m
CONFIG_DWMAC_GENERIC=m
CONFIG_DWMAC_IMX8=m
+CONFIG_DWMAC_INTEL_PLAT=m
CONFIG_DWMAC_MESON=m
CONFIG_DWMAC_ROCKCHIP=m
CONFIG_DWMAC_STM32=m
@@ -1898,7 +1949,10 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
CONFIG_ETHTOOL_NETLINK=y
# CONFIG_EUROTECH_WDT is not set
-# CONFIG_EVM is not set
+# CONFIG_EVM_ADD_XATTRS is not set
+CONFIG_EVM_ATTR_FSUUID=y
+# CONFIG_EVM_LOAD_X509 is not set
+CONFIG_EVM=y
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
CONFIG_EXFAT_FS=m
# CONFIG_EXPERT is not set
@@ -1958,6 +2012,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
# CONFIG_FAT_DEFAULT_UTF8 is not set
CONFIG_FAT_FS=m
# CONFIG_FAULT_INJECTION is not set
+# CONFIG_FAULT_INJECTION_USERCOPY is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_ARK is not set
CONFIG_FB_ARMCLCD=y
@@ -2097,6 +2152,7 @@ CONFIG_FTRACE=y
# CONFIG_FUNCTION_GRAPH_TRACER is not set
CONFIG_FUNCTION_PROFILER=y
CONFIG_FUNCTION_TRACER=y
+CONFIG_FUSE_DAX=y
CONFIG_FUSE_FS=m
CONFIG_FUSION_CTL=m
CONFIG_FUSION_FC=m
@@ -2153,7 +2209,10 @@ CONFIG_GIGASET_CAPI=y
CONFIG_GIGASET_M101=m
CONFIG_GIGASET_M105=m
# CONFIG_GLOB_SELFTEST is not set
-# CONFIG_GNSS is not set
+CONFIG_GNSS=m
+CONFIG_GNSS_MTK_SERIAL=m
+CONFIG_GNSS_SIRF_SERIAL=m
+CONFIG_GNSS_UBX_SERIAL=m
# CONFIG_GOLDFISH is not set
# CONFIG_GOOGLE_FIRMWARE is not set
CONFIG_GP2AP002=m
@@ -2169,6 +2228,7 @@ CONFIG_GPIO_AGGREGATOR=m
# CONFIG_GPIO_BCM_XGS_IPROC is not set
CONFIG_GPIO_BD9571MWV=m
CONFIG_GPIO_CADENCE=m
+CONFIG_GPIO_CDEV_V1=y
CONFIG_GPIO_DAVINCI=y
CONFIG_GPIO_DWAPB=m
CONFIG_GPIO_EXAR=m
@@ -2194,6 +2254,7 @@ CONFIG_GPIO_MLXBF2=m
CONFIG_GPIO_MOXTET=m
# CONFIG_GPIO_MPC8XXX is not set
CONFIG_GPIO_MVEBU=y
+CONFIG_GPIO_MXC=m
CONFIG_GPIO_OMAP=y
CONFIG_GPIO_PALMAS=y
CONFIG_GPIO_PCA953X_IRQ=y
@@ -2248,6 +2309,7 @@ CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HD44780=m
CONFIG_HDC100X=m
+CONFIG_HDC2010=m
CONFIG_HDQ_MASTER_OMAP=m
CONFIG_HEADERS_CHECK=y
CONFIG_HEADERS_INSTALL=y
@@ -2363,6 +2425,7 @@ CONFIG_HID_U2FZERO=m
CONFIG_HID_UCLOGIC=m
CONFIG_HID_UDRAW_PS3=m
CONFIG_HID_VIEWSONIC=m
+CONFIG_HID_VIVALDI=m
CONFIG_HID_WACOM=m
CONFIG_HID_WALTOP=m
CONFIG_HID_WIIMOTE=m
@@ -2375,6 +2438,7 @@ CONFIG_HIGHPTE=y
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_HIPPI is not set
# CONFIG_HISI_DMA is not set
+CONFIG_HISI_HIKEY_USB=m
# CONFIG_HISILICON_IRQ_MBIGEN is not set
CONFIG_HISI_PMU=y
# CONFIG_HIST_TRIGGERS_DEBUG is not set
@@ -2429,6 +2493,7 @@ CONFIG_HW_RANDOM_STM32=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=y
+CONFIG_HW_RANDOM_XIPHERA=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK_OMAP=m
# CONFIG_HWSPINLOCK_STM32 is not set
@@ -2486,6 +2551,7 @@ CONFIG_I2C_IMX_LPI2C=m
CONFIG_I2C_IMX=m
# CONFIG_I2C_ISCH is not set
CONFIG_I2C_MESON=m
+CONFIG_I2C_MLXBF=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MUX_GPIO=m
CONFIG_I2C_MUX_GPMUX=m
@@ -2518,6 +2584,7 @@ CONFIG_I2C_SIMTEC=m
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
CONFIG_I2C_SLAVE_EEPROM=m
+# CONFIG_I2C_SLAVE_TESTUNIT is not set
CONFIG_I2C_SLAVE=y
# CONFIG_I2C_STM32F4 is not set
CONFIG_I2C_STM32F7=m
@@ -2572,6 +2639,8 @@ CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IGC=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_DMAENGINE=m
+CONFIG_IIO_BUFFER_DMA=m
CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
@@ -2607,6 +2676,7 @@ CONFIG_IIO_SW_TRIGGER=m
CONFIG_IIO_SYSFS_TRIGGER=m
CONFIG_IIO_TIGHTLOOP_TRIGGER=m
CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_TRIGGERED_EVENT=m
CONFIG_IIO_TRIGGER=y
# CONFIG_IKCONFIG is not set
CONFIG_IKHEADERS=m
@@ -2617,6 +2687,7 @@ CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
+CONFIG_IMA_DEFAULT_HASH="sha256"
CONFIG_IMA_DEFAULT_HASH_SHA256=y
# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
@@ -2641,7 +2712,7 @@ CONFIG_IMX_DSP=m
CONFIG_IMX_GPCV2_PM_DOMAINS=y
CONFIG_IMX_GPCV2=y
# CONFIG_IMX_IPUV3_CORE is not set
-# CONFIG_IMX_IRQSTEER is not set
+CONFIG_IMX_IRQSTEER=y
CONFIG_IMX_MBOX=m
CONFIG_IMX_REMOTEPROC=m
# CONFIG_IMX_SCU is not set
@@ -2661,6 +2732,7 @@ CONFIG_INET_ESPINTCP=y
CONFIG_INET_ESP=m
CONFIG_INET_ESP_OFFLOAD=m
CONFIG_INET_IPCOMP=m
+CONFIG_INET_MPTCP_DIAG=m
CONFIG_INET_RAW_DIAG=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_UDP_DIAG=m
@@ -2779,6 +2851,7 @@ CONFIG_INTEGRITY=y
# CONFIG_INTEL_IDMA64 is not set
CONFIG_INTEL_IDXD=m
# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
+# CONFIG_INTEL_MEI_VIRTIO is not set
# CONFIG_INTEL_SCU_PCI is not set
# CONFIG_INTEL_SCU_PLATFORM is not set
CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m
@@ -2797,6 +2870,8 @@ CONFIG_INTERCONNECT_QCOM_MSM8916=m
CONFIG_INTERCONNECT_QCOM_OSM_L3=m
# CONFIG_INTERCONNECT_QCOM_QCS404 is not set
CONFIG_INTERCONNECT_QCOM_SC7180=m
+CONFIG_INTERCONNECT_QCOM_SM8150=m
+CONFIG_INTERCONNECT_QCOM_SM8250=m
CONFIG_INTERCONNECT_QCOM=y
CONFIG_INTERCONNECT=y
# CONFIG_INTERVAL_TREE_TEST is not set
@@ -3062,6 +3137,7 @@ CONFIG_JFS_SECURITY=y
CONFIG_JME=m
CONFIG_JOLIET=y
CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADC=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
@@ -3078,23 +3154,23 @@ CONFIG_JOYSTICK_IFORCE=m
CONFIG_JOYSTICK_IFORCE_USB=m
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
-CONFIG_JOYSTICK_MAGELLAN=m
+# CONFIG_JOYSTICK_MAGELLAN is not set
CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_PXRC=m
CONFIG_JOYSTICK_SIDEWINDER=m
-CONFIG_JOYSTICK_SPACEBALL=m
-CONFIG_JOYSTICK_SPACEORB=m
-CONFIG_JOYSTICK_STINGER=m
+# CONFIG_JOYSTICK_SPACEBALL is not set
+# CONFIG_JOYSTICK_SPACEORB is not set
+# CONFIG_JOYSTICK_STINGER is not set
CONFIG_JOYSTICK_TMDC=m
CONFIG_JOYSTICK_TURBOGRAFX=m
-CONFIG_JOYSTICK_TWIDJOY=m
+# CONFIG_JOYSTICK_TWIDJOY is not set
CONFIG_JOYSTICK_WALKERA0701=m
-CONFIG_JOYSTICK_WARRIOR=m
+# CONFIG_JOYSTICK_WARRIOR is not set
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
CONFIG_JOYSTICK_XPAD=m
-CONFIG_JOYSTICK_ZHENHUA=m
+# CONFIG_JOYSTICK_ZHENHUA is not set
# CONFIG_JSA1212 is not set
CONFIG_JUMP_LABEL=y
CONFIG_KALLSYMS_ALL=y
@@ -3115,6 +3191,7 @@ CONFIG_KERNEL_MODE_NEON=y
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_ZSTD is not set
# CONFIG_KEXEC_FILE is not set
+CONFIG_KEXEC_IMAGE_VERIFY_SIG=y
# CONFIG_KEXEC_SIG is not set
CONFIG_KEXEC=y
CONFIG_KEYBOARD_ADC=m
@@ -3161,6 +3238,7 @@ CONFIG_KEYSTONE_IRQ=m
# CONFIG_KEYSTONE_REMOTEPROC is not set
CONFIG_KEYSTONE_USB_PHY=m
CONFIG_KEYS=y
+CONFIG_KGDB_HONOUR_BLOCKLIST=y
# CONFIG_KGDB_KDB is not set
CONFIG_KGDB_LOW_LEVEL_TRAP=y
CONFIG_KGDB_SERIAL_CONSOLE=y
@@ -3217,6 +3295,7 @@ CONFIG_LDISC_AUTOLOAD=y
CONFIG_LDM_PARTITION=y
# CONFIG_LEDS_AAT1290 is not set
CONFIG_LEDS_AN30259A=m
+# CONFIG_LEDS_ARIEL is not set
CONFIG_LEDS_AS3645A=m
# CONFIG_LEDS_AW2013 is not set
# CONFIG_LEDS_BCM6328 is not set
@@ -3243,6 +3322,7 @@ CONFIG_LEDS_LM3601X=m
CONFIG_LEDS_LM3692X=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
+CONFIG_LEDS_LP50XX=m
# CONFIG_LEDS_LP5521 is not set
# CONFIG_LEDS_LP5523 is not set
# CONFIG_LEDS_LP5562 is not set
@@ -3569,9 +3649,12 @@ CONFIG_MFD_CROS_EC_DEV=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
+CONFIG_MFD_ENE_KB3930=m
CONFIG_MFD_EXYNOS_LPASS=m
# CONFIG_MFD_GATEWORKS_GSC is not set
# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_MFD_HI6421_SPMI is not set
+CONFIG_MFD_INTEL_M10_BMC=m
# CONFIG_MFD_INTEL_PMC_BXT is not set
# CONFIG_MFD_IQS62X is not set
# CONFIG_MFD_JANZ_CMODIO is not set
@@ -3615,6 +3698,7 @@ CONFIG_MFD_RK808=y
CONFIG_MFD_SEC_CORE=y
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SL28CPLD is not set
CONFIG_MFD_SM501_GPIO=y
CONFIG_MFD_SM501=m
# CONFIG_MFD_SMSC is not set
@@ -3659,6 +3743,7 @@ CONFIG_MFD_WL1273_CORE=m
CONFIG_MFD_WM8994=m
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
+# CONFIG_MHI_BUS_DEBUG is not set
CONFIG_MHI_BUS=m
CONFIG_MICREL_KS8995MA=m
CONFIG_MICREL_PHY=m
@@ -3961,6 +4046,7 @@ CONFIG_MVMDIO=m
CONFIG_MVNETA_BM_ENABLE=m
CONFIG_MVNETA=m
CONFIG_MVPP2=m
+CONFIG_MVPP2_PTP=y
CONFIG_MV_XOR=y
CONFIG_MWAVE=m
CONFIG_MWIFIEX=m
@@ -4398,6 +4484,7 @@ CONFIG_NFS_V3=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
CONFIG_NFS_V4_1=y
+# CONFIG_NFS_V4_2_READ_PLUS is not set
CONFIG_NFS_V4_2=y
CONFIG_NFS_V4=m
CONFIG_NF_TABLES_ARP=y
@@ -4720,6 +4807,7 @@ CONFIG_PCIE_DW_PLAT_HOST=y
CONFIG_PCIE_DW=y
CONFIG_PCIE_ECRC=y
CONFIG_PCIE_EDR=y
+# CONFIG_PCIE_HISI_ERR is not set
# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set
# CONFIG_PCIE_MOBIVEIL is not set
# CONFIG_PCI_ENDPOINT is not set
@@ -4769,6 +4857,7 @@ CONFIG_PCMCIA_SMC91C92=m
CONFIG_PCMCIA_XIRC2PS=m
CONFIG_PCMCIA_XIRCOM=m
CONFIG_PCNET32=m
+CONFIG_PCS_XPCS=m
CONFIG_PD6729=m
CONFIG_PDA_POWER=m
CONFIG_PDC_ADMA=m
@@ -4792,7 +4881,10 @@ CONFIG_PHY_EXYNOS_DP_VIDEO=m
CONFIG_PHY_EXYNOS_MIPI_VIDEO=m
CONFIG_PHY_EXYNOS_PCIE=y
# CONFIG_PHY_FSL_IMX8MQ_USB is not set
+# CONFIG_PHY_HI3670_USB is not set
# CONFIG_PHY_INTEL_EMMC is not set
+# CONFIG_PHY_INTEL_KEEMBAY_EMMC is not set
+# CONFIG_PHY_INTEL_LGM_EMMC is not set
CONFIG_PHYLIB=y
CONFIG_PHYLINK=m
# CONFIG_PHY_MAPPHONE_MDM6600 is not set
@@ -4875,6 +4967,7 @@ CONFIG_PINCTRL_IMX8MQ=y
# CONFIG_PINCTRL_MDM9615 is not set
# CONFIG_PINCTRL_MESON8B is not set
# CONFIG_PINCTRL_MESON8 is not set
+CONFIG_PINCTRL_MSM8226=m
# CONFIG_PINCTRL_MSM8976 is not set
# CONFIG_PINCTRL_MSM8994 is not set
# CONFIG_PINCTRL_MSM8996 is not set
@@ -4893,6 +4986,8 @@ CONFIG_PINCTRL_SINGLE=y
# CONFIG_PINCTRL_SM8250 is not set
# CONFIG_PINCTRL_STMFX is not set
CONFIG_PINCTRL_SUN4I_A10=y
+# CONFIG_PINCTRL_SUN50I_A100 is not set
+# CONFIG_PINCTRL_SUN50I_A100_R is not set
# CONFIG_PINCTRL_SUN50I_A64 is not set
# CONFIG_PINCTRL_SUN50I_A64_R is not set
# CONFIG_PINCTRL_SUN50I_H5 is not set
@@ -4955,7 +5050,6 @@ CONFIG_POSIX_MQUEUE=y
# CONFIG_POWER7_CPU is not set
# CONFIG_POWER8_CPU is not set
# CONFIG_POWER9_CPU is not set
-CONFIG_POWER_AVS=y
CONFIG_POWERCAP=y
CONFIG_POWER_RESET_AS3722=y
# CONFIG_POWER_RESET_BRCMKONA is not set
@@ -4979,6 +5073,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_PPC_PROT_SAO_LPAR is not set
# CONFIG_PPC_PTDUMP is not set
# CONFIG_PPC_QUEUED_SPINLOCKS is not set
+CONFIG_PPC_RTAS_FILTER=y
CONFIG_PPDEV=m
CONFIG_PPP_ASYNC=m
CONFIG_PPP_BSDCOMP=m
@@ -5002,6 +5097,8 @@ CONFIG_PPTP=m
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PRESTERA=m
+CONFIG_PRESTERA_PCI=m
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_PRIME_NUMBERS is not set
CONFIG_PRINTER=m
@@ -5189,6 +5286,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_PERF_TEST is not set
# CONFIG_RCU_REF_SCALE_TEST is not set
+# CONFIG_RCU_SCALE_TEST is not set
CONFIG_RCU_TORTURE_TEST=m
# CONFIG_RCU_TRACE is not set
CONFIG_RC_XBOX_DVD=m
@@ -5263,7 +5361,10 @@ CONFIG_REGULATOR_PV88060=m
# CONFIG_REGULATOR_PV88080 is not set
CONFIG_REGULATOR_PV88090=m
CONFIG_REGULATOR_PWM=y
+CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m
CONFIG_REGULATOR_RK808=y
+CONFIG_REGULATOR_RT4801=m
+CONFIG_REGULATOR_RTMV20=m
CONFIG_REGULATOR_S2MPA01=m
CONFIG_REGULATOR_S2MPS11=m
CONFIG_REGULATOR_S5M8767=m
@@ -5313,6 +5414,7 @@ CONFIG_RESET_IMX7=y
CONFIG_RESET_MESON_AUDIO_ARB=m
# CONFIG_RESET_QCOM_AOSS is not set
CONFIG_RESET_QCOM_PDC=m
+CONFIG_RESET_RASPBERRYPI=y
CONFIG_RESET_SCMI=y
CONFIG_RESET_SIMPLE=y
CONFIG_RESET_STM32MP157=y
@@ -5336,6 +5438,7 @@ CONFIG_RMI4_F11=y
CONFIG_RMI4_F12=y
CONFIG_RMI4_F30=y
CONFIG_RMI4_F34=y
+CONFIG_RMI4_F3A=y
# CONFIG_RMI4_F54 is not set
CONFIG_RMI4_F55=y
CONFIG_RMI4_I2C=m
@@ -5486,6 +5589,7 @@ CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_RV3028=m
CONFIG_RTC_DRV_RV3029C2=m
CONFIG_RTC_DRV_RV3029_HWMON=y
+CONFIG_RTC_DRV_RV3032=m
# CONFIG_RTC_DRV_RV8803 is not set
CONFIG_RTC_DRV_RX4581=m
# CONFIG_RTC_DRV_RX6110 is not set
@@ -5515,7 +5619,7 @@ CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_SYSFS=y
-# CONFIG_RTC_NVMEM is not set
+CONFIG_RTC_NVMEM=y
# CONFIG_RTC_SYSTOHC is not set
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_RTL8180=m
@@ -5586,6 +5690,7 @@ CONFIG_SCD30_CORE=m
CONFIG_SCD30_I2C=m
CONFIG_SCD30_SERIAL=m
# CONFIG_SC_DISPCC_7180 is not set
+# CONFIG_SCF_TORTURE_TEST is not set
CONFIG_SC_GCC_7180=m
# CONFIG_SC_GPUCC_7180 is not set
CONFIG_SCHED_AUTOGROUP=y
@@ -5731,7 +5836,7 @@ CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0
CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_DISABLE=y
+# CONFIG_SECURITY_SELINUX_DISABLE is not set
CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
CONFIG_SECURITY_SELINUX=y
@@ -5751,6 +5856,7 @@ CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
# CONFIG_SENSORS_ADM1177 is not set
+CONFIG_SENSORS_ADM1266=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ADS7828=m
@@ -5802,6 +5908,7 @@ CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
# CONFIG_SENSORS_INSPUR_IPSPS is not set
+CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -5866,6 +5973,8 @@ CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_MLXREG_FAN=m
+CONFIG_SENSORS_MP2975=m
+CONFIG_SENSORS_MR75203=m
CONFIG_SENSORS_NCT6683=m
CONFIG_SENSORS_NCT6775=m
CONFIG_SENSORS_NCT7802=m
@@ -6060,6 +6169,7 @@ CONFIG_SMC911X=m
CONFIG_SMC91X=m
CONFIG_SMC_DIAG=m
CONFIG_SMC=m
+# CONFIG_SM_DISPCC_8250 is not set
# CONFIG_SM_FTL is not set
# CONFIG_SM_GCC_8150 is not set
CONFIG_SM_GCC_8250=m
@@ -6076,6 +6186,8 @@ CONFIG_SMS_SDIO_DRV=m
CONFIG_SMS_SIANO_MDTV=m
CONFIG_SMS_SIANO_RC=y
CONFIG_SMS_USB_DRV=m
+# CONFIG_SM_VIDEOCC_8150 is not set
+# CONFIG_SM_VIDEOCC_8250 is not set
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AD1889=m
@@ -6269,6 +6381,7 @@ CONFIG_SND_SOC_CROS_EC_CODEC=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
+CONFIG_SND_SOC_CS4234=m
CONFIG_SND_SOC_CS4265=m
# CONFIG_SND_SOC_CS4270 is not set
CONFIG_SND_SOC_CS4271_I2C=m
@@ -6295,10 +6408,10 @@ CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_ES8328_SPI=m
CONFIG_SND_SOC_FSL_ASOC_CARD=m
CONFIG_SND_SOC_FSL_ASRC=m
-# CONFIG_SND_SOC_FSL_AUDMIX is not set
-# CONFIG_SND_SOC_FSL_EASRC is not set
+CONFIG_SND_SOC_FSL_AUDMIX=m
+CONFIG_SND_SOC_FSL_EASRC=m
CONFIG_SND_SOC_FSL_ESAI=m
-# CONFIG_SND_SOC_FSL_MICFIL is not set
+CONFIG_SND_SOC_FSL_MICFIL=m
CONFIG_SND_SOC_FSL_MQS=m
CONFIG_SND_SOC_FSL_SAI=m
CONFIG_SND_SOC_FSL_SPDIF=m
@@ -6311,18 +6424,20 @@ CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_HDMI_CODEC=m
CONFIG_SND_SOC_ICS43432=m
# CONFIG_SND_SOC_IMG is not set
-# CONFIG_SND_SOC_IMX_AUDMIX is not set
+CONFIG_SND_SOC_IMX_AUDMIX=m
CONFIG_SND_SOC_IMX_AUDMUX=m
# CONFIG_SND_SOC_IMX_ES8328 is not set
CONFIG_SND_SOC_IMX_SGTL5000=m
CONFIG_SND_SOC_IMX_SPDIF=m
# CONFIG_SND_SOC_INNO_RK3036 is not set
-CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
+# CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set
+# CONFIG_SND_SOC_INTEL_CATPT is not set
# CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH is not set
CONFIG_SND_SOC_INTEL_KEEMBAY=m
CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
# CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH is not set
-CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
+CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m
+# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set
CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
@@ -6377,14 +6492,14 @@ CONFIG_SND_SOC_ROCKCHIP_MAX98090=m
CONFIG_SND_SOC_ROCKCHIP_PDM=m
CONFIG_SND_SOC_ROCKCHIP_RT5645=m
CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
-# CONFIG_SND_SOC_RT1308_SDW is not set
+CONFIG_SND_SOC_RT1308_SDW=m
# CONFIG_SND_SOC_RT5616 is not set
CONFIG_SND_SOC_RT5631=m
CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_RT5682_SDW=m
-# CONFIG_SND_SOC_RT700_SDW is not set
-# CONFIG_SND_SOC_RT711_SDW is not set
-# CONFIG_SND_SOC_RT715_SDW is not set
+CONFIG_SND_SOC_RT700_SDW=m
+CONFIG_SND_SOC_RT711_SDW=m
+CONFIG_SND_SOC_RT715_SDW=m
# CONFIG_SND_SOC_SAMSUNG_ARIES_WM8994 is not set
CONFIG_SND_SOC_SAMSUNG=m
CONFIG_SND_SOC_SAMSUNG_MIDAS_WM1811=m
@@ -6419,6 +6534,7 @@ CONFIG_SND_SOC_SPDIF=m
# CONFIG_SND_SOC_STM32_SPDIFRX is not set
# CONFIG_SND_SOC_TAS2552 is not set
CONFIG_SND_SOC_TAS2562=m
+CONFIG_SND_SOC_TAS2764=m
CONFIG_SND_SOC_TAS2770=m
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TAS571X is not set
@@ -6549,9 +6665,25 @@ CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SOUNDWIRE_CADENCE=m
# CONFIG_SOUNDWIRE_INTEL is not set
+# CONFIG_SOUNDWIRE_QCOM is not set
CONFIG_SOUNDWIRE=y
CONFIG_SPARSEMEM_MANUAL=y
-# CONFIG_SPEAKUP is not set
+CONFIG_SPEAKUP=m
+# CONFIG_SPEAKUP_SYNTH_ACNTPC is not set
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+# CONFIG_SPEAKUP_SYNTH_DECEXT is not set
+# CONFIG_SPEAKUP_SYNTH_DECPC is not set
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+# CONFIG_SPEAKUP_SYNTH_DTLK is not set
+# CONFIG_SPEAKUP_SYNTH_DUMMY is not set
+# CONFIG_SPEAKUP_SYNTH_KEYPC is not set
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_AMD is not set
CONFIG_SPI_ARMADA_3700=m
@@ -6614,6 +6746,7 @@ CONFIG_SPI_TI_QSPI=m
CONFIG_SPI=y
# CONFIG_SPI_ZYNQMP_GQSPI is not set
CONFIG_SPI_ZYNQ_QSPI=m
+# CONFIG_SPMI_HISI3670 is not set
# CONFIG_SPMI is not set
CONFIG_SPMI_PMIC_CLKDIV=m
# CONFIG_SPS30 is not set
@@ -6653,6 +6786,7 @@ CONFIG_STACK_VALIDATION=y
CONFIG_STAGING_MEDIA=y
CONFIG_STAGING=y
CONFIG_STANDALONE=y
+# CONFIG_STATIC_CALL_SELFTEST is not set
# CONFIG_STATIC_KEYS_SELFTEST is not set
# CONFIG_STATIC_USERMODEHELPER is not set
CONFIG_STE10XP=m
@@ -6847,6 +6981,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_HEXDUMP is not set
# CONFIG_TEST_HMM is not set
# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_KASAN_MODULE is not set
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_LIST_SORT is not set
@@ -6944,6 +7079,8 @@ CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
CONFIG_TI_PIPE3=m
+# CONFIG_TI_PRUSS_INTC is not set
+# CONFIG_TI_PRUSS is not set
CONFIG_TI_PWMSS=y
# CONFIG_TI_SCI_CLK is not set
CONFIG_TI_SCI_PROTOCOL=m
@@ -7040,6 +7177,7 @@ CONFIG_TOUCHSCREEN_WACOM_W8001=m
# CONFIG_TOUCHSCREEN_WM97XX is not set
CONFIG_TOUCHSCREEN_ZET6223=m
CONFIG_TOUCHSCREEN_ZFORCE=m
+CONFIG_TOUCHSCREEN_ZINITIX=m
# CONFIG_TPL0102 is not set
CONFIG_TPM_KEY_PARSER=m
# CONFIG_TPS6105X is not set
@@ -7087,8 +7225,11 @@ CONFIG_TYPEC_HD3SS3220=m
CONFIG_TYPEC=m
CONFIG_TYPEC_MUX_PI3USB30532=m
CONFIG_TYPEC_NVIDIA_ALTMODE=m
+CONFIG_TYPEC_QCOM_PMIC=m
# CONFIG_TYPEC_RT1711H is not set
+CONFIG_TYPEC_STUSB160X=m
CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPCI_MAXIM=m
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
@@ -7141,6 +7282,7 @@ CONFIG_UNWINDER_ARM=y
# CONFIG_UNWINDER_FRAME_POINTER is not set
CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
+# CONFIG_USB4_DEBUGFS_WRITE is not set
CONFIG_USB4_NET=m
CONFIG_USB4=y
CONFIG_USB_ACM=m
@@ -7159,7 +7301,11 @@ CONFIG_USB_BELKIN=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_CATC=m
# CONFIG_USB_CDC_COMPOSITE is not set
-# CONFIG_USB_CDNS3 is not set
+CONFIG_USB_CDNS3_GADGET=y
+CONFIG_USB_CDNS3_HOST=y
+CONFIG_USB_CDNS3_IMX=m
+CONFIG_USB_CDNS3=m
+CONFIG_USB_CDNS3_PCI_WRAP=m
CONFIG_USB_CHAOSKEY=m
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_CHIPIDEA=m
@@ -7227,6 +7373,7 @@ CONFIG_USB_EMI62=m
CONFIG_USB_EPSON2888=y
# CONFIG_USB_ETH is not set
CONFIG_USB_EZUSB_FX2=m
+# CONFIG_USB_FEW_INIT_RETRIES is not set
# CONFIG_USB_FOTG210_HCD is not set
# CONFIG_USB_FOTG210_UDC is not set
CONFIG_USB_FTDI_ELAN=m
@@ -7337,6 +7484,7 @@ CONFIG_USB_LD=m
CONFIG_USB_LEDS_TRIGGER_USBPORT=m
CONFIG_USB_LED_TRIG=y
CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LGM_PHY=m
# CONFIG_USB_LINK_LAYER_TEST is not set
CONFIG_USB_M5602=m
# CONFIG_USB_M66592 is not set
@@ -7528,7 +7676,7 @@ CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_HISTB is not set
CONFIG_USB_XHCI_MVEBU=m
-CONFIG_USB_XHCI_PCI_RENESAS=y
+CONFIG_USB_XHCI_PCI_RENESAS=m
CONFIG_USB_XHCI_PLATFORM=m
CONFIG_USB_XHCI_TEGRA=m
CONFIG_USB_XUSBATM=m
@@ -7576,6 +7724,7 @@ CONFIG_VFIO_MDEV_DEVICE=m
CONFIG_VFIO_MDEV=m
# CONFIG_VFIO_NOIOMMU is not set
CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_ZDEV=y
# CONFIG_VFIO_PLATFORM_AMDXGBE_RESET is not set
CONFIG_VFIO_PLATFORM_CALXEDAXGMAC_RESET=m
CONFIG_VFIO_PLATFORM=m
@@ -7756,6 +7905,7 @@ CONFIG_VIDEO_SUNXI_CEDRUS=m
CONFIG_VIDEO_SUNXI=y
CONFIG_VIDEO_TEGRA_HDMI_CEC=m
CONFIG_VIDEO_TEGRA=m
+# CONFIG_VIDEO_TEGRA_TPG is not set
CONFIG_VIDEO_TI_CAL=m
# CONFIG_VIDEO_TI_VPE_DEBUG is not set
CONFIG_VIDEO_TI_VPE=m
@@ -7772,6 +7922,7 @@ CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_VIDEO_VS6624=m
# CONFIG_VIDEO_XILINX is not set
+# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIPERBOARD_ADC is not set
CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
@@ -7935,6 +8086,7 @@ CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_STATISTICS=y
CONFIG_XFRM_SUB_POLICY=y
+# CONFIG_XFRM_USER_COMPAT is not set
CONFIG_XFRM_USER=y
CONFIG_XFRM=y
# CONFIG_XFS_DEBUG is not set
@@ -7944,6 +8096,7 @@ CONFIG_XFS_ONLINE_SCRUB=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_QUOTA=y
# CONFIG_XFS_RT is not set
+CONFIG_XFS_SUPPORT_V4=y
# CONFIG_XFS_WARN is not set
# CONFIG_XIL_AXIS_FIFO is not set
# CONFIG_XILINX_AXI_EMAC is not set
@@ -7975,6 +8128,7 @@ CONFIG_Z3FOLD=y
CONFIG_ZBOOT_ROM_BSS=0x0
CONFIG_ZBOOT_ROM_TEXT=0x0
CONFIG_ZBUD=y
+# CONFIG_ZCRYPT_DEBUG is not set
# CONFIG_ZD1211RW_DEBUG is not set
CONFIG_ZD1211RW=m
CONFIG_ZEROPLUS_FF=y
@@ -8008,4 +8162,5 @@ CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
# Select this config option to add support for the initrd= command
# This option determines the default init for the system if no init=
# warnings from C=1 sparse checker or -Wextra compilations. It has
-CONFIG_ZENIFY=y
+# You can set the size of pernuma CMA by specifying "cma_pernuma=size"
+CONFIG_ZENIFY=y \ No newline at end of file
diff --git a/SOURCES/kernel-i686-debug-fedora.config b/SOURCES/kernel-i686-debug-fedora.config
index adf894c..006304c 100644
--- a/SOURCES/kernel-i686-debug-fedora.config
+++ b/SOURCES/kernel-i686-debug-fedora.config
@@ -1,5 +1,6 @@
# i386
# 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
+# beginning with "crc=". If the string "crc=0" is found, the
# CONFIG_60XX_WDT is not set
# CONFIG_64BIT is not set
CONFIG_6LOWPAN_DEBUGFS=y
@@ -57,6 +58,7 @@ CONFIG_ACPI_CUSTOM_METHOD=m
# CONFIG_ACPI_DEBUGGER is not set
CONFIG_ACPI_DEBUG=y
CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_DPTF=y
CONFIG_ACPI_EC_DEBUGFS=m
# CONFIG_ACPI_EXTLOG is not set
CONFIG_ACPI_FAN=y
@@ -164,6 +166,7 @@ CONFIG_ADUX1020=m
# CONFIG_ADXL345_SPI is not set
CONFIG_ADXL372_I2C=m
CONFIG_ADXL372_SPI=m
+CONFIG_ADXRS290=m
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -264,21 +267,26 @@ CONFIG_ARCH_RANDOM=y
# CONFIG_ARCH_S3C24XX is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_SPARX5 is not set
+# CONFIG_ARCH_VISCONTI is not set
# CONFIG_ARCNET is not set
CONFIG_ARM64_AMU_EXTN=y
CONFIG_ARM64_BTI=y
CONFIG_ARM64_E0PD=y
CONFIG_ARM64_ERRATUM_1319367=y
+CONFIG_ARM64_ERRATUM_1508412=y
CONFIG_ARM64_ERRATUM_1530923=y
CONFIG_ARM64_ERRATUM_1542419=y
CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_USE_LSE_ATOMICS=y
+# CONFIG_ARM_CMN is not set
CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y
CONFIG_ARM_PTDUMP_DEBUGFS=y
CONFIG_ARM_SMCCC_SOC_ID=y
# CONFIG_ARM_SMC_WATCHDOG is not set
# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set
+# CONFIG_ARM_SMMU_V3_SVA is not set
# CONFIG_AS3935 is not set
+# CONFIG_AS73211 is not set
CONFIG_ASUS_LAPTOP=m
CONFIG_ASUS_NB_WMI=m
CONFIG_ASUS_WIRELESS=m
@@ -306,9 +314,11 @@ CONFIG_ATH10K_SDIO=m
# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
+CONFIG_ATH11K_AHB=m
CONFIG_ATH11K_DEBUGFS=y
# CONFIG_ATH11K_DEBUG is not set
CONFIG_ATH11K=m
+CONFIG_ATH11K_PCI=m
# CONFIG_ATH11K_SPECTRAL is not set
# CONFIG_ATH11K_TRACING is not set
CONFIG_ATH5K_DEBUG=y
@@ -414,6 +424,7 @@ CONFIG_BACKLIGHT_ARCXCNN=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
# CONFIG_BACKLIGHT_GPIO is not set
+CONFIG_BACKLIGHT_KTD253=m
CONFIG_BACKLIGHT_LED=m
# CONFIG_BACKLIGHT_LM3630A is not set
# CONFIG_BACKLIGHT_LM3639 is not set
@@ -575,6 +586,8 @@ CONFIG_BPF_JIT=y
CONFIG_BPF_KPROBE_OVERRIDE=y
CONFIG_BPF_LIRC_MODE2=y
CONFIG_BPF_LSM=y
+CONFIG_BPF_PRELOAD_UMD=m
+CONFIG_BPF_PRELOAD=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -706,6 +719,7 @@ CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_ISOTP is not set
# CONFIG_CAN_J1939 is not set
# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
@@ -715,6 +729,7 @@ CONFIG_CAN_M_CAN=m
# CONFIG_CAN_M_CAN_PLATFORM is not set
# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
+# CONFIG_CAN_MCP251XFD is not set
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
CONFIG_CAN_PEAK_PCIEFD=m
@@ -794,6 +809,7 @@ CONFIG_CHARGER_BD99954=m
# CONFIG_CHARGER_BQ24735 is not set
CONFIG_CHARGER_BQ2515X=m
# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_BQ25980 is not set
CONFIG_CHARGER_CROS_USBPD=m
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
# CONFIG_CHARGER_GPIO is not set
@@ -812,7 +828,8 @@ CONFIG_CHARLCD_BL_FLASH=y
# CONFIG_CHARLCD_BL_OFF is not set
# CONFIG_CHARLCD_BL_ON is not set
# CONFIG_CHECKPOINT_RESTORE is not set
-CONFIG_CHELSIO_IPSEC_INLINE=y
+CONFIG_CHELSIO_INLINE_CRYPTO=y
+CONFIG_CHELSIO_IPSEC_INLINE=m
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -820,7 +837,7 @@ CONFIG_CHELSIO_T4_DCB=y
# CONFIG_CHELSIO_T4_FCOE is not set
CONFIG_CHELSIO_T4=m
CONFIG_CHELSIO_T4VF=m
-CONFIG_CHELSIO_TLS_DEVICE=y
+CONFIG_CHELSIO_TLS_DEVICE=m
CONFIG_CHR_DEV_SCH=m
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_ST=m
@@ -1087,7 +1104,9 @@ CONFIG_CRYPTO_SERPENT_SSE2_586=m
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA3=m
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
+CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
CONFIG_CRYPTO_STATS=y
@@ -1098,7 +1117,9 @@ CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_TWOFISH_586=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_USER_API_AEAD=y
+# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
CONFIG_CRYPTO_USER_API_HASH=y
+# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER=m
@@ -1111,6 +1132,7 @@ CONFIG_CRYPTO=y
CONFIG_CRYPTO_ZSTD=m
CONFIG_CS5535_CLOCK_EVENT_SRC=m
CONFIG_CS5535_MFGPT=m
+# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
CONFIG_CUSE=m
CONFIG_CW1200=m
CONFIG_CW1200_WLAN_SDIO=m
@@ -1257,6 +1279,7 @@ CONFIG_DMADEVICES_DEBUG=y
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
# CONFIG_DMA_FENCE_TRACE is not set
+# CONFIG_DMA_PERNUMA_CMA is not set
# CONFIG_DMARD06 is not set
# CONFIG_DMARD09 is not set
CONFIG_DMARD10=m
@@ -1307,6 +1330,7 @@ CONFIG_DP83869_PHY=m
# CONFIG_DP83TC811_PHY is not set
CONFIG_DPOT_DAC=m
# CONFIG_DPS310 is not set
+CONFIG_DPTF_PCH_FIVR=m
CONFIG_DPTF_POWER=m
CONFIG_DRAGONRISE_FF=y
CONFIG_DRBD_FAULT_INJECTION=y
@@ -1317,6 +1341,7 @@ CONFIG_DRM_AMD_DC_DCN2_1=y
CONFIG_DRM_AMD_DC_DCN3_0=y
CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
CONFIG_DRM_AMD_DC_HDCP=y
+CONFIG_DRM_AMD_DC_SI=y
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMDGPU_CIK=y
# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
@@ -1329,6 +1354,7 @@ CONFIG_DRM_ANALOGIX_ANX78XX=m
CONFIG_DRM_AST=m
CONFIG_DRM_BOCHS=m
# CONFIG_DRM_CDNS_DSI is not set
+# CONFIG_DRM_CDNS_MHDP8546 is not set
CONFIG_DRM_CHRONTEL_CH7033=m
CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_SELFTEST is not set
@@ -1363,6 +1389,7 @@ CONFIG_DRM_I915_USERPTR=y
# CONFIG_DRM_KOMEDA is not set
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LONTIUM_LT9611 is not set
# CONFIG_DRM_LVDS_CODEC is not set
# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
@@ -1393,6 +1420,7 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m
# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_LVDS is not set
+CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m
# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
CONFIG_DRM_PANEL_NOVATEK_NT35510=m
# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
@@ -1448,9 +1476,11 @@ CONFIG_DRM_TIDSS=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TI_TPD12S015=m
+CONFIG_DRM_TOSHIBA_TC358762=m
CONFIG_DRM_TOSHIBA_TC358764=m
# CONFIG_DRM_TOSHIBA_TC358767 is not set
CONFIG_DRM_TOSHIBA_TC358768=m
+CONFIG_DRM_TOSHIBA_TC358775=m
CONFIG_DRM_UDL=m
CONFIG_DRM_VBOXVIDEO=m
CONFIG_DRM_VGEM=m
@@ -1556,6 +1586,7 @@ CONFIG_DW_EDMA=m
CONFIG_DW_EDMA_PCIE=m
CONFIG_DWMAC_IMX8=m
CONFIG_DWMAC_INTEL=m
+CONFIG_DWMAC_INTEL_PLAT=m
# CONFIG_DW_WATCHDOG is not set
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DYNAMIC_FTRACE=y
@@ -1649,7 +1680,10 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
CONFIG_ETHTOOL_NETLINK=y
# CONFIG_EUROTECH_WDT is not set
-# CONFIG_EVM is not set
+# CONFIG_EVM_ADD_XATTRS is not set
+CONFIG_EVM_ATTR_FSUUID=y
+# CONFIG_EVM_LOAD_X509 is not set
+CONFIG_EVM=y
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
CONFIG_EXFAT_FS=m
# CONFIG_EXPERT is not set
@@ -1709,6 +1743,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
CONFIG_FAT_FS=m
CONFIG_FAULT_INJECTION_DEBUG_FS=y
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
+# CONFIG_FAULT_INJECTION_USERCOPY is not set
CONFIG_FAULT_INJECTION=y
# CONFIG_FB_3DFX is not set
# CONFIG_FB_ARC is not set
@@ -1857,6 +1892,7 @@ CONFIG_FUJITSU_TABLET=m
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_FUNCTION_TRACER=y
+CONFIG_FUSE_DAX=y
CONFIG_FUSE_FS=m
CONFIG_FUSION_CTL=m
CONFIG_FUSION_FC=m
@@ -1915,7 +1951,10 @@ CONFIG_GIGASET_CAPI=y
CONFIG_GIGASET_M101=m
CONFIG_GIGASET_M105=m
# CONFIG_GLOB_SELFTEST is not set
-# CONFIG_GNSS is not set
+CONFIG_GNSS=m
+CONFIG_GNSS_MTK_SERIAL=m
+CONFIG_GNSS_SIRF_SERIAL=m
+CONFIG_GNSS_UBX_SERIAL=m
# CONFIG_GOLDFISH is not set
# CONFIG_GOOGLE_FIRMWARE is not set
CONFIG_GP2AP002=m
@@ -1933,6 +1972,7 @@ CONFIG_GPIO_AMDPT=m
# CONFIG_GPIO_BCM_XGS_IPROC is not set
CONFIG_GPIO_BD9571MWV=m
CONFIG_GPIO_CADENCE=m
+CONFIG_GPIO_CDEV_V1=y
CONFIG_GPIO_CRYSTAL_COVE=y
CONFIG_GPIO_CS5535=y
# CONFIG_GPIO_DWAPB is not set
@@ -1960,6 +2000,7 @@ CONFIG_GPIO_MAX77650=m
CONFIG_GPIO_MLXBF2=m
# CONFIG_GPIO_MOCKUP is not set
CONFIG_GPIO_MSIC=y
+CONFIG_GPIO_MXC=m
# CONFIG_GPIO_PCA953X_IRQ is not set
CONFIG_GPIO_PCA953X=m
CONFIG_GPIO_PCA9570=m
@@ -2004,6 +2045,7 @@ CONFIG_HARDENED_USERCOPY=y
CONFIG_HARDLOCKUP_DETECTOR=y
CONFIG_HD44780=m
# CONFIG_HDC100X is not set
+CONFIG_HDC2010=m
CONFIG_HDMI_LPE_AUDIO=m
CONFIG_HEADERS_CHECK=y
CONFIG_HEADERS_INSTALL=y
@@ -2120,6 +2162,7 @@ CONFIG_HID_U2FZERO=m
CONFIG_HID_UCLOGIC=m
CONFIG_HID_UDRAW_PS3=m
CONFIG_HID_VIEWSONIC=m
+CONFIG_HID_VIVALDI=m
CONFIG_HID_WACOM=m
CONFIG_HID_WALTOP=m
CONFIG_HID_WIIMOTE=m
@@ -2134,6 +2177,7 @@ CONFIG_HIGHPTE=y
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_HIPPI is not set
# CONFIG_HISI_DMA is not set
+CONFIG_HISI_HIKEY_USB=m
# CONFIG_HIST_TRIGGERS_DEBUG is not set
CONFIG_HIST_TRIGGERS=y
CONFIG_HMC425=m
@@ -2193,6 +2237,7 @@ CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIA=m
CONFIG_HW_RANDOM_VIRTIO=y
+CONFIG_HW_RANDOM_XIPHERA=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK=y
# CONFIG_HX711 is not set
@@ -2249,6 +2294,7 @@ CONFIG_I2C_HID=m
CONFIG_I2C_I801=m
CONFIG_I2C_ISCH=m
CONFIG_I2C_ISMT=m
+CONFIG_I2C_MLXBF=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MULTI_INSTANTIATE=m
# CONFIG_I2C_MUX_GPIO is not set
@@ -2280,6 +2326,7 @@ CONFIG_I2C_SIS5595=m
CONFIG_I2C_SIS630=m
CONFIG_I2C_SIS96X=m
CONFIG_I2C_SLAVE_EEPROM=m
+# CONFIG_I2C_SLAVE_TESTUNIT is not set
CONFIG_I2C_SLAVE=y
CONFIG_I2C_STUB=m
# CONFIG_I2C_TAOS_EVM is not set
@@ -2335,6 +2382,8 @@ CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IGC=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_DMAENGINE=m
+CONFIG_IIO_BUFFER_DMA=m
CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
@@ -2363,6 +2412,7 @@ CONFIG_IIO_SW_TRIGGER=m
# CONFIG_IIO_SYSFS_TRIGGER is not set
CONFIG_IIO_TIGHTLOOP_TRIGGER=m
CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_TRIGGERED_EVENT=m
CONFIG_IIO_TRIGGER=y
# CONFIG_IKCONFIG is not set
CONFIG_IKHEADERS=m
@@ -2370,9 +2420,10 @@ CONFIG_IMA_APPRAISE_BOOTPARAM=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_APPRAISE=y
-# CONFIG_IMA_ARCH_POLICY is not set
+CONFIG_IMA_ARCH_POLICY=y
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
+CONFIG_IMA_DEFAULT_HASH="sha256"
CONFIG_IMA_DEFAULT_HASH_SHA256=y
# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
@@ -2382,6 +2433,7 @@ CONFIG_IMA_LSM_RULES=y
CONFIG_IMA_MEASURE_PCR_IDX=10
CONFIG_IMA_NG_TEMPLATE=y
CONFIG_IMA_READ_POLICY=y
+CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT=y
# CONFIG_IMA_SIG_TEMPLATE is not set
# CONFIG_IMA_TEMPLATE is not set
# CONFIG_IMA_TRUSTED_KEYRING is not set
@@ -2401,6 +2453,7 @@ CONFIG_INET_ESPINTCP=y
CONFIG_INET_ESP=m
CONFIG_INET_ESP_OFFLOAD=m
CONFIG_INET_IPCOMP=m
+CONFIG_INET_MPTCP_DIAG=m
CONFIG_INET_RAW_DIAG=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_UDP_DIAG=m
@@ -2531,7 +2584,6 @@ CONFIG_INTEL_IOATDMA=m
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y
-CONFIG_INTEL_IOMMU_SVM=y
CONFIG_INTEL_IOMMU=y
CONFIG_INTEL_IPS=m
CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER=m
@@ -2539,6 +2591,7 @@ CONFIG_INTEL_MEI_HDCP=m
CONFIG_INTEL_MEI=m
CONFIG_INTEL_MEI_ME=m
CONFIG_INTEL_MEI_TXE=m
+CONFIG_INTEL_MEI_VIRTIO=m
CONFIG_INTEL_MEI_WDT=m
# CONFIG_INTEL_MENLOW is not set
CONFIG_INTEL_MFLD_THERMAL=m
@@ -2839,6 +2892,7 @@ CONFIG_JFS_SECURITY=y
CONFIG_JME=m
CONFIG_JOLIET=y
CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADC=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
@@ -2880,6 +2934,7 @@ CONFIG_KARMA_PARTITION=y
# CONFIG_KASAN is not set
CONFIG_KASAN_VMALLOC=y
# CONFIG_KCOV is not set
+# CONFIG_KCSAN is not set
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
CONFIG_KDB_DEFAULT_ENABLE=0x0
CONFIG_KDB_KEYBOARD=y
@@ -2893,6 +2948,7 @@ CONFIG_KERNEL_HEADER_TEST=y
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_ZSTD is not set
# CONFIG_KEXEC_FILE is not set
+CONFIG_KEXEC_IMAGE_VERIFY_SIG=y
# CONFIG_KEXEC_JUMP is not set
# CONFIG_KEXEC_SIG_FORCE is not set
CONFIG_KEXEC_SIG=y
@@ -2932,6 +2988,7 @@ CONFIG_KEY_DH_OPERATIONS=y
CONFIG_KEY_NOTIFICATIONS=y
CONFIG_KEYS_REQUEST_CACHE=y
CONFIG_KEYS=y
+CONFIG_KGDB_HONOUR_BLOCKLIST=y
CONFIG_KGDB_KDB=y
CONFIG_KGDB_LOW_LEVEL_TRAP=y
CONFIG_KGDB_SERIAL_CONSOLE=y
@@ -2991,6 +3048,7 @@ CONFIG_LDM_PARTITION=y
# CONFIG_LEDS_AAT1290 is not set
CONFIG_LEDS_AN30259A=m
CONFIG_LEDS_APU=m
+# CONFIG_LEDS_ARIEL is not set
CONFIG_LEDS_AS3645A=m
# CONFIG_LEDS_AW2013 is not set
# CONFIG_LEDS_BCM6328 is not set
@@ -3018,6 +3076,7 @@ CONFIG_LEDS_LM3601X=m
CONFIG_LEDS_LM3692X=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
+CONFIG_LEDS_LP50XX=m
# CONFIG_LEDS_LP5521 is not set
# CONFIG_LEDS_LP5523 is not set
# CONFIG_LEDS_LP5562 is not set
@@ -3317,10 +3376,13 @@ CONFIG_MFD_CS5535=y
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
+CONFIG_MFD_ENE_KB3930=m
# CONFIG_MFD_GATEWORKS_GSC is not set
# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_MFD_HI6421_SPMI is not set
CONFIG_MFD_INTEL_LPSS_ACPI=y
CONFIG_MFD_INTEL_LPSS_PCI=y
+CONFIG_MFD_INTEL_M10_BMC=m
CONFIG_MFD_INTEL_MSIC=y
CONFIG_MFD_INTEL_PMC_BXT=m
# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set
@@ -3362,6 +3424,7 @@ CONFIG_MFD_MAX77650=m
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SL28CPLD is not set
CONFIG_MFD_SM501_GPIO=y
CONFIG_MFD_SM501=m
# CONFIG_MFD_SMSC is not set
@@ -3399,6 +3462,7 @@ CONFIG_MFD_WL1273_CORE=m
# CONFIG_MFD_WM8994 is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
+# CONFIG_MHI_BUS_DEBUG is not set
CONFIG_MHI_BUS=m
# CONFIG_MICREL_KS8995MA is not set
CONFIG_MICREL_PHY=m
@@ -3667,6 +3731,7 @@ CONFIG_MUX_MMIO=m
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
CONFIG_MVMDIO=m
+CONFIG_MVPP2_PTP=y
CONFIG_MWAVE=m
CONFIG_MWIFIEX=m
CONFIG_MWIFIEX_PCIE=m
@@ -4105,6 +4170,7 @@ CONFIG_NFS_V3=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
CONFIG_NFS_V4_1=y
+# CONFIG_NFS_V4_2_READ_PLUS is not set
CONFIG_NFS_V4_2=y
CONFIG_NFS_V4=m
CONFIG_NF_TABLES_ARP=y
@@ -4156,6 +4222,7 @@ CONFIG_N_HDLC=m
# CONFIG_NI903X_WDT is not set
CONFIG_NIC7018_WDT=m
CONFIG_NILFS2_FS=m
+CONFIG_NITRO_ENCLAVES=m
CONFIG_NIU=m
# CONFIG_NL80211_TESTMODE is not set
CONFIG_NLMON=m
@@ -4393,6 +4460,7 @@ CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT_HOST is not set
CONFIG_PCIE_ECRC=y
CONFIG_PCIE_EDR=y
+# CONFIG_PCIE_HISI_ERR is not set
# CONFIG_PCIE_INTEL_GW is not set
# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set
# CONFIG_PCIE_MOBIVEIL is not set
@@ -4441,6 +4509,7 @@ CONFIG_PCMCIA_XIRC2PS=m
CONFIG_PCMCIA_XIRCOM=m
CONFIG_PCMCIA=y
CONFIG_PCNET32=m
+CONFIG_PCS_XPCS=m
CONFIG_PD6729=m
# CONFIG_PDA_POWER is not set
CONFIG_PDC_ADMA=m
@@ -4463,8 +4532,12 @@ CONFIG_PHY_CADENCE_SIERRA=m
CONFIG_PHY_CADENCE_TORRENT=m
# CONFIG_PHY_CPCAP_USB is not set
# CONFIG_PHY_FSL_IMX8MQ_USB is not set
+# CONFIG_PHY_HI3670_USB is not set
CONFIG_PHY_INTEL_COMBO=y
CONFIG_PHY_INTEL_EMMC=m
+# CONFIG_PHY_INTEL_KEEMBAY_EMMC is not set
+CONFIG_PHY_INTEL_LGM_COMBO=y
+CONFIG_PHY_INTEL_LGM_EMMC=m
CONFIG_PHYLIB=y
CONFIG_PHYLINK=m
# CONFIG_PHY_MAPPHONE_MDM6600 is not set
@@ -4502,6 +4575,7 @@ CONFIG_PINCTRL_JASPERLAKE=m
CONFIG_PINCTRL_LEWISBURG=m
CONFIG_PINCTRL_LYNXPOINT=m
# CONFIG_PINCTRL_MCP23S08 is not set
+# CONFIG_PINCTRL_MSM8226 is not set
# CONFIG_PINCTRL_MSM8976 is not set
# CONFIG_PINCTRL_OCELOT is not set
# CONFIG_PINCTRL_QCS404 is not set
@@ -4513,6 +4587,8 @@ CONFIG_PINCTRL_RK805=m
# CONFIG_PINCTRL_SM8250 is not set
# CONFIG_PINCTRL_STMFX is not set
# CONFIG_PINCTRL_SUN4I_A10 is not set
+# CONFIG_PINCTRL_SUN50I_A100 is not set
+# CONFIG_PINCTRL_SUN50I_A100_R is not set
# CONFIG_PINCTRL_SUN50I_A64 is not set
# CONFIG_PINCTRL_SUN50I_A64_R is not set
# CONFIG_PINCTRL_SUN50I_H5 is not set
@@ -4570,7 +4646,6 @@ CONFIG_POSIX_MQUEUE=y
# CONFIG_POWER7_CPU is not set
# CONFIG_POWER8_CPU is not set
# CONFIG_POWER9_CPU is not set
-# CONFIG_POWER_AVS is not set
CONFIG_POWERCAP=y
# CONFIG_POWER_RESET_BRCMKONA is not set
# CONFIG_POWER_RESET_BRCMSTB is not set
@@ -4589,6 +4664,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_PPC_PROT_SAO_LPAR is not set
# CONFIG_PPC_PTDUMP is not set
# CONFIG_PPC_QUEUED_SPINLOCKS is not set
+CONFIG_PPC_RTAS_FILTER=y
CONFIG_PPDEV=m
CONFIG_PPP_ASYNC=m
CONFIG_PPP_BSDCOMP=m
@@ -4613,6 +4689,8 @@ CONFIG_PPTP=m
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PRESTERA=m
+CONFIG_PRESTERA_PCI=m
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_PRIME_NUMBERS is not set
CONFIG_PRINTER=m
@@ -4705,8 +4783,10 @@ CONFIG_QLCNIC_SRIOV=y
CONFIG_QLGE=m
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX6FS_FS is not set
-# CONFIG_QRTR is not set
+CONFIG_QRTR=m
CONFIG_QRTR_MHI=m
+CONFIG_QRTR_SMD=m
+CONFIG_QRTR_TUN=m
CONFIG_QSEMI_PHY=m
CONFIG_QTNFMAC_PCIE=m
# CONFIG_QUICC_ENGINE is not set
@@ -4766,6 +4846,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_PERF_TEST is not set
CONFIG_RCU_REF_SCALE_TEST=m
+# CONFIG_RCU_SCALE_TEST is not set
CONFIG_RCU_TORTURE_TEST=m
# CONFIG_RCU_TRACE is not set
CONFIG_RC_XBOX_DVD=m
@@ -4799,7 +4880,7 @@ CONFIG_REGULATOR_BD9571MWV=m
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR_FAN53555 is not set
# CONFIG_REGULATOR_FAN53880 is not set
-# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
# CONFIG_REGULATOR_GPIO is not set
# CONFIG_REGULATOR_ISL6271A is not set
# CONFIG_REGULATOR_ISL9305 is not set
@@ -4827,6 +4908,9 @@ CONFIG_REGULATOR_MP886X=m
# CONFIG_REGULATOR_PV88080 is not set
# CONFIG_REGULATOR_PV88090 is not set
# CONFIG_REGULATOR_PWM is not set
+# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set
+CONFIG_REGULATOR_RT4801=m
+CONFIG_REGULATOR_RTMV20=m
# CONFIG_REGULATOR_SLG51000 is not set
# CONFIG_REGULATOR_SY8106A is not set
# CONFIG_REGULATOR_SY8824X is not set
@@ -4877,6 +4961,7 @@ CONFIG_RMI4_F11=y
CONFIG_RMI4_F12=y
CONFIG_RMI4_F30=y
CONFIG_RMI4_F34=y
+CONFIG_RMI4_F3A=y
# CONFIG_RMI4_F54 is not set
CONFIG_RMI4_F55=y
CONFIG_RMI4_I2C=m
@@ -4992,6 +5077,7 @@ CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_RV3028=m
CONFIG_RTC_DRV_RV3029C2=m
CONFIG_RTC_DRV_RV3029_HWMON=y
+CONFIG_RTC_DRV_RV3032=m
# CONFIG_RTC_DRV_RV8803 is not set
CONFIG_RTC_DRV_RX4581=m
# CONFIG_RTC_DRV_RX6110 is not set
@@ -5014,7 +5100,7 @@ CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_SYSFS=y
-# CONFIG_RTC_NVMEM is not set
+CONFIG_RTC_NVMEM=y
# CONFIG_RTC_SYSTOHC is not set
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_RTL8180=m
@@ -5087,6 +5173,7 @@ CONFIG_SCD30_CORE=m
CONFIG_SCD30_I2C=m
CONFIG_SCD30_SERIAL=m
# CONFIG_SC_DISPCC_7180 is not set
+# CONFIG_SCF_TORTURE_TEST is not set
# CONFIG_SC_GPUCC_7180 is not set
CONFIG_SCHED_AUTOGROUP=y
CONFIG_SCHED_DEBUG=y
@@ -5224,7 +5311,7 @@ CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0
CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_DISABLE=y
+# CONFIG_SECURITY_SELINUX_DISABLE is not set
CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
CONFIG_SECURITY_SELINUX=y
@@ -5247,6 +5334,7 @@ CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
# CONFIG_SENSORS_ADM1177 is not set
+CONFIG_SENSORS_ADM1266=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ADS7828=m
@@ -5305,6 +5393,7 @@ CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
# CONFIG_SENSORS_INSPUR_IPSPS is not set
+CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -5371,6 +5460,8 @@ CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_MLXREG_FAN=m
+CONFIG_SENSORS_MP2975=m
+CONFIG_SENSORS_MR75203=m
CONFIG_SENSORS_NCT6683=m
CONFIG_SENSORS_NCT6775=m
CONFIG_SENSORS_NCT7802=m
@@ -5537,6 +5628,7 @@ CONFIG_SLUB=y
CONFIG_SMARTJOYPLUS_FF=y
CONFIG_SMC_DIAG=m
CONFIG_SMC=m
+# CONFIG_SM_DISPCC_8250 is not set
# CONFIG_SM_FTL is not set
CONFIG_SMP=y
# CONFIG_SMSC37B787_WDT is not set
@@ -5549,6 +5641,8 @@ CONFIG_SMS_SDIO_DRV=m
CONFIG_SMS_SIANO_MDTV=m
CONFIG_SMS_SIANO_RC=y
CONFIG_SMS_USB_DRV=m
+# CONFIG_SM_VIDEOCC_8150 is not set
+# CONFIG_SM_VIDEOCC_8250 is not set
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AD1889=m
@@ -5720,6 +5814,7 @@ CONFIG_SND_SOC_BD28623=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
+CONFIG_SND_SOC_CS4234=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -5757,7 +5852,6 @@ CONFIG_SND_SOC_HDAC_HDA=m
CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_IMG is not set
-# CONFIG_SND_SOC_IMX_AUDMIX is not set
# CONFIG_SND_SOC_IMX_AUDMUX is not set
# CONFIG_SND_SOC_IMX_ES8328 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
@@ -5772,6 +5866,7 @@ CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m
CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
+CONFIG_SND_SOC_INTEL_CATPT=m
CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
@@ -5801,6 +5896,7 @@ CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH=m
CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH=m
+CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
@@ -5840,14 +5936,14 @@ CONFIG_SND_SOC_PCM512x_I2C=m
# CONFIG_SND_SOC_PCM512x_SPI is not set
# CONFIG_SND_SOC_RK3328 is not set
CONFIG_SND_SOC_RL6231=m
-# CONFIG_SND_SOC_RT1308_SDW is not set
+CONFIG_SND_SOC_RT1308_SDW=m
# CONFIG_SND_SOC_RT5616 is not set
# CONFIG_SND_SOC_RT5631 is not set
CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_RT5682_SDW=m
-# CONFIG_SND_SOC_RT700_SDW is not set
-# CONFIG_SND_SOC_RT711_SDW is not set
-# CONFIG_SND_SOC_RT715_SDW is not set
+CONFIG_SND_SOC_RT700_SDW=m
+CONFIG_SND_SOC_RT711_SDW=m
+CONFIG_SND_SOC_RT715_SDW=m
# CONFIG_SND_SOC_SAMSUNG_ARIES_WM8994 is not set
CONFIG_SND_SOC_SAMSUNG_MIDAS_WM1811=m
# CONFIG_SND_SOC_SGTL5000 is not set
@@ -5871,6 +5967,7 @@ CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y
CONFIG_SND_SOC_SOF_HDA_LINK=y
CONFIG_SND_SOC_SOF_HDA_PROBES=y
CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK=y
CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
@@ -5891,6 +5988,7 @@ CONFIG_SND_SOC_SSM4567=m
# CONFIG_SND_SOC_STI_SAS is not set
# CONFIG_SND_SOC_TAS2552 is not set
CONFIG_SND_SOC_TAS2562=m
+CONFIG_SND_SOC_TAS2764=m
CONFIG_SND_SOC_TAS2770=m
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TAS571X is not set
@@ -5984,11 +6082,27 @@ CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SOUNDWIRE_CADENCE=m
CONFIG_SOUNDWIRE_INTEL=m
+# CONFIG_SOUNDWIRE_QCOM is not set
CONFIG_SOUNDWIRE=y
CONFIG_SP5100_TCO=m
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSEMEM_MANUAL=y
-# CONFIG_SPEAKUP is not set
+CONFIG_SPEAKUP=m
+# CONFIG_SPEAKUP_SYNTH_ACNTPC is not set
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+# CONFIG_SPEAKUP_SYNTH_DECEXT is not set
+# CONFIG_SPEAKUP_SYNTH_DECPC is not set
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+# CONFIG_SPEAKUP_SYNTH_DTLK is not set
+# CONFIG_SPEAKUP_SYNTH_DUMMY is not set
+# CONFIG_SPEAKUP_SYNTH_KEYPC is not set
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_AMD is not set
# CONFIG_SPI_AXI_SPI_ENGINE is not set
@@ -6025,6 +6139,7 @@ CONFIG_SPI_SPIDEV=m
# CONFIG_SPI_XILINX is not set
CONFIG_SPI=y
# CONFIG_SPI_ZYNQMP_GQSPI is not set
+# CONFIG_SPMI_HISI3670 is not set
# CONFIG_SPMI is not set
# CONFIG_SPS30 is not set
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
@@ -6063,6 +6178,7 @@ CONFIG_STACK_VALIDATION=y
CONFIG_STAGING_MEDIA=y
CONFIG_STAGING=y
CONFIG_STANDALONE=y
+# CONFIG_STATIC_CALL_SELFTEST is not set
# CONFIG_STATIC_KEYS_SELFTEST is not set
# CONFIG_STATIC_USERMODEHELPER is not set
CONFIG_STE10XP=m
@@ -6088,6 +6204,7 @@ CONFIG_ST_UVIS25_I2C=m
CONFIG_ST_UVIS25=m
CONFIG_ST_UVIS25_SPI=m
# CONFIG_SUN50I_DE2_BUS is not set
+# CONFIG_SUN50I_IOMMU is not set
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -6203,6 +6320,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_HEXDUMP is not set
# CONFIG_TEST_HMM is not set
# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_KASAN_MODULE is not set
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
CONFIG_TEST_LIST_SORT=y
@@ -6380,6 +6498,7 @@ CONFIG_TOUCHSCREEN_WACOM_W8001=m
# CONFIG_TOUCHSCREEN_WM97XX is not set
CONFIG_TOUCHSCREEN_ZET6223=m
CONFIG_TOUCHSCREEN_ZFORCE=m
+CONFIG_TOUCHSCREEN_ZINITIX=m
# CONFIG_TPL0102 is not set
CONFIG_TPM_KEY_PARSER=m
# CONFIG_TPS6105X is not set
@@ -6427,8 +6546,11 @@ CONFIG_TYPEC=m
CONFIG_TYPEC_MUX_INTEL_PMC=m
CONFIG_TYPEC_MUX_PI3USB30532=m
CONFIG_TYPEC_NVIDIA_ALTMODE=m
+# CONFIG_TYPEC_QCOM_PMIC is not set
# CONFIG_TYPEC_RT1711H is not set
+CONFIG_TYPEC_STUSB160X=m
CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPCI_MAXIM=m
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
@@ -6480,6 +6602,7 @@ CONFIG_UNUSED_SYMBOLS=y
CONFIG_UNWINDER_FRAME_POINTER=y
CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
+# CONFIG_USB4_DEBUGFS_WRITE is not set
CONFIG_USB4=m
CONFIG_USB4_NET=m
CONFIG_USB_ACM=m
@@ -6526,6 +6649,7 @@ CONFIG_USB_EMI62=m
CONFIG_USB_EPSON2888=y
# CONFIG_USB_ETH is not set
CONFIG_USB_EZUSB_FX2=m
+# CONFIG_USB_FEW_INIT_RETRIES is not set
# CONFIG_USB_FOTG210_HCD is not set
CONFIG_USB_FTDI_ELAN=m
# CONFIG_USB_FUNCTIONFS is not set
@@ -6626,6 +6750,7 @@ CONFIG_USB_LD=m
CONFIG_USB_LEDS_TRIGGER_USBPORT=m
CONFIG_USB_LED_TRIG=y
CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LGM_PHY=m
# CONFIG_USB_LINK_LAYER_TEST is not set
CONFIG_USB_M5602=m
CONFIG_USB_MA901=m
@@ -6799,7 +6924,7 @@ CONFIG_USB_WDM=m
CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_HISTB is not set
-CONFIG_USB_XHCI_PCI_RENESAS=y
+CONFIG_USB_XHCI_PCI_RENESAS=m
# CONFIG_USB_XHCI_PLATFORM is not set
CONFIG_USB_XUSBATM=m
CONFIG_USB=y
@@ -6844,6 +6969,7 @@ CONFIG_VFIO_MDEV=m
CONFIG_VFIO_PCI_IGD=y
CONFIG_VFIO_PCI=m
CONFIG_VFIO_PCI_VGA=y
+CONFIG_VFIO_PCI_ZDEV=y
CONFIG_VGA_ARB_MAX_GPUS=16
CONFIG_VGA_ARB=y
# CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT is not set
@@ -6988,6 +7114,7 @@ CONFIG_VIDEO_SOLO6X10=m
CONFIG_VIDEO_SR030PC30=m
CONFIG_VIDEO_STK1160_COMMON=m
CONFIG_VIDEO_STK1160=m
+# CONFIG_VIDEO_TEGRA_TPG is not set
CONFIG_VIDEO_TM6000_ALSA=m
CONFIG_VIDEO_TM6000_DVB=m
CONFIG_VIDEO_TM6000=m
@@ -7001,6 +7128,7 @@ CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_VIDEO_VS6624=m
# CONFIG_VIDEO_XILINX is not set
+# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIPERBOARD_ADC is not set
# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
@@ -7257,6 +7385,7 @@ CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_STATISTICS=y
CONFIG_XFRM_SUB_POLICY=y
+# CONFIG_XFRM_USER_COMPAT is not set
CONFIG_XFRM_USER=y
CONFIG_XFRM=y
# CONFIG_XFS_DEBUG is not set
@@ -7266,6 +7395,7 @@ CONFIG_XFS_ONLINE_SCRUB=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_QUOTA=y
# CONFIG_XFS_RT is not set
+CONFIG_XFS_SUPPORT_V4=y
CONFIG_XFS_WARN=y
# CONFIG_XIAOMI_WMI is not set
# CONFIG_XIL_AXIS_FIFO is not set
@@ -7296,6 +7426,7 @@ CONFIG_YELLOWFIN=m
CONFIG_YENTA=m
CONFIG_Z3FOLD=y
CONFIG_ZBUD=y
+# CONFIG_ZCRYPT_DEBUG is not set
# CONFIG_ZD1211RW_DEBUG is not set
CONFIG_ZD1211RW=m
CONFIG_ZEROPLUS_FF=y
@@ -7330,4 +7461,5 @@ CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
# Select this config option to add support for the initrd= command
# This option determines the default init for the system if no init=
# warnings from C=1 sparse checker or -Wextra compilations. It has
+# You can set the size of pernuma CMA by specifying "cma_pernuma=size"
CONFIG_ZENIFY=y
diff --git a/SOURCES/kernel-i686-fedora.config b/SOURCES/kernel-i686-fedora.config
index 63ea3c0..c0280f0 100644
--- a/SOURCES/kernel-i686-fedora.config
+++ b/SOURCES/kernel-i686-fedora.config
@@ -1,5 +1,6 @@
# i386
# 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
+# beginning with "crc=". If the string "crc=0" is found, the
# CONFIG_60XX_WDT is not set
# CONFIG_64BIT is not set
CONFIG_6LOWPAN_DEBUGFS=y
@@ -57,6 +58,7 @@ CONFIG_ACPI_CUSTOM_METHOD=m
# CONFIG_ACPI_DEBUGGER is not set
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_DPTF=y
CONFIG_ACPI_EC_DEBUGFS=m
# CONFIG_ACPI_EXTLOG is not set
CONFIG_ACPI_FAN=y
@@ -164,6 +166,7 @@ CONFIG_ADUX1020=m
# CONFIG_ADXL345_SPI is not set
CONFIG_ADXL372_I2C=m
CONFIG_ADXL372_SPI=m
+CONFIG_ADXRS290=m
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -264,20 +267,25 @@ CONFIG_ARCH_RANDOM=y
# CONFIG_ARCH_S3C24XX is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_SPARX5 is not set
+# CONFIG_ARCH_VISCONTI is not set
# CONFIG_ARCNET is not set
CONFIG_ARM64_AMU_EXTN=y
CONFIG_ARM64_BTI=y
CONFIG_ARM64_E0PD=y
CONFIG_ARM64_ERRATUM_1319367=y
+CONFIG_ARM64_ERRATUM_1508412=y
CONFIG_ARM64_ERRATUM_1530923=y
CONFIG_ARM64_ERRATUM_1542419=y
CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_USE_LSE_ATOMICS=y
+# CONFIG_ARM_CMN is not set
CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y
CONFIG_ARM_SMCCC_SOC_ID=y
# CONFIG_ARM_SMC_WATCHDOG is not set
# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set
+# CONFIG_ARM_SMMU_V3_SVA is not set
# CONFIG_AS3935 is not set
+# CONFIG_AS73211 is not set
CONFIG_ASUS_LAPTOP=m
CONFIG_ASUS_NB_WMI=m
CONFIG_ASUS_WIRELESS=m
@@ -305,9 +313,11 @@ CONFIG_ATH10K_SDIO=m
# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
+CONFIG_ATH11K_AHB=m
CONFIG_ATH11K_DEBUGFS=y
# CONFIG_ATH11K_DEBUG is not set
CONFIG_ATH11K=m
+CONFIG_ATH11K_PCI=m
# CONFIG_ATH11K_SPECTRAL is not set
# CONFIG_ATH11K_TRACING is not set
CONFIG_ATH5K_DEBUG=y
@@ -413,6 +423,7 @@ CONFIG_BACKLIGHT_ARCXCNN=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
# CONFIG_BACKLIGHT_GPIO is not set
+CONFIG_BACKLIGHT_KTD253=m
CONFIG_BACKLIGHT_LED=m
# CONFIG_BACKLIGHT_LM3630A is not set
# CONFIG_BACKLIGHT_LM3639 is not set
@@ -574,6 +585,8 @@ CONFIG_BPF_JIT=y
# CONFIG_BPF_KPROBE_OVERRIDE is not set
CONFIG_BPF_LIRC_MODE2=y
CONFIG_BPF_LSM=y
+CONFIG_BPF_PRELOAD_UMD=m
+CONFIG_BPF_PRELOAD=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -705,6 +718,7 @@ CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_ISOTP is not set
# CONFIG_CAN_J1939 is not set
# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
@@ -714,6 +728,7 @@ CONFIG_CAN_M_CAN=m
# CONFIG_CAN_M_CAN_PLATFORM is not set
# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
+# CONFIG_CAN_MCP251XFD is not set
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
CONFIG_CAN_PEAK_PCIEFD=m
@@ -793,6 +808,7 @@ CONFIG_CHARGER_BD99954=m
# CONFIG_CHARGER_BQ24735 is not set
CONFIG_CHARGER_BQ2515X=m
# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_BQ25980 is not set
CONFIG_CHARGER_CROS_USBPD=m
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
# CONFIG_CHARGER_GPIO is not set
@@ -811,7 +827,8 @@ CONFIG_CHARLCD_BL_FLASH=y
# CONFIG_CHARLCD_BL_OFF is not set
# CONFIG_CHARLCD_BL_ON is not set
# CONFIG_CHECKPOINT_RESTORE is not set
-CONFIG_CHELSIO_IPSEC_INLINE=y
+CONFIG_CHELSIO_INLINE_CRYPTO=y
+CONFIG_CHELSIO_IPSEC_INLINE=m
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -819,7 +836,7 @@ CONFIG_CHELSIO_T4_DCB=y
# CONFIG_CHELSIO_T4_FCOE is not set
CONFIG_CHELSIO_T4=m
CONFIG_CHELSIO_T4VF=m
-CONFIG_CHELSIO_TLS_DEVICE=y
+CONFIG_CHELSIO_TLS_DEVICE=m
CONFIG_CHR_DEV_SCH=m
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_ST=m
@@ -1086,7 +1103,9 @@ CONFIG_CRYPTO_SERPENT_SSE2_586=m
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA3=m
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
+CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
CONFIG_CRYPTO_STATS=y
@@ -1097,7 +1116,9 @@ CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_TWOFISH_586=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_USER_API_AEAD=y
+# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
CONFIG_CRYPTO_USER_API_HASH=y
+# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER=m
@@ -1110,6 +1131,7 @@ CONFIG_CRYPTO=y
CONFIG_CRYPTO_ZSTD=m
CONFIG_CS5535_CLOCK_EVENT_SRC=m
CONFIG_CS5535_MFGPT=m
+# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
CONFIG_CUSE=m
CONFIG_CW1200=m
CONFIG_CW1200_WLAN_SDIO=m
@@ -1248,6 +1270,7 @@ CONFIG_DMA_CMA=y
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
# CONFIG_DMA_FENCE_TRACE is not set
+# CONFIG_DMA_PERNUMA_CMA is not set
# CONFIG_DMARD06 is not set
# CONFIG_DMARD09 is not set
CONFIG_DMARD10=m
@@ -1298,6 +1321,7 @@ CONFIG_DP83869_PHY=m
# CONFIG_DP83TC811_PHY is not set
CONFIG_DPOT_DAC=m
# CONFIG_DPS310 is not set
+CONFIG_DPTF_PCH_FIVR=m
CONFIG_DPTF_POWER=m
CONFIG_DRAGONRISE_FF=y
# CONFIG_DRBD_FAULT_INJECTION is not set
@@ -1308,6 +1332,7 @@ CONFIG_DRM_AMD_DC_DCN2_1=y
CONFIG_DRM_AMD_DC_DCN3_0=y
CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
CONFIG_DRM_AMD_DC_HDCP=y
+CONFIG_DRM_AMD_DC_SI=y
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMDGPU_CIK=y
# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
@@ -1320,6 +1345,7 @@ CONFIG_DRM_ANALOGIX_ANX78XX=m
CONFIG_DRM_AST=m
CONFIG_DRM_BOCHS=m
# CONFIG_DRM_CDNS_DSI is not set
+# CONFIG_DRM_CDNS_MHDP8546 is not set
CONFIG_DRM_CHRONTEL_CH7033=m
CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_SELFTEST is not set
@@ -1354,6 +1380,7 @@ CONFIG_DRM_I915_USERPTR=y
# CONFIG_DRM_KOMEDA is not set
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LONTIUM_LT9611 is not set
# CONFIG_DRM_LVDS_CODEC is not set
# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
@@ -1384,6 +1411,7 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m
# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_LVDS is not set
+CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m
# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
CONFIG_DRM_PANEL_NOVATEK_NT35510=m
# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
@@ -1439,9 +1467,11 @@ CONFIG_DRM_TIDSS=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TI_TPD12S015=m
+CONFIG_DRM_TOSHIBA_TC358762=m
CONFIG_DRM_TOSHIBA_TC358764=m
# CONFIG_DRM_TOSHIBA_TC358767 is not set
CONFIG_DRM_TOSHIBA_TC358768=m
+CONFIG_DRM_TOSHIBA_TC358775=m
CONFIG_DRM_UDL=m
CONFIG_DRM_VBOXVIDEO=m
CONFIG_DRM_VGEM=m
@@ -1547,6 +1577,7 @@ CONFIG_DW_EDMA=m
CONFIG_DW_EDMA_PCIE=m
CONFIG_DWMAC_IMX8=m
CONFIG_DWMAC_INTEL=m
+CONFIG_DWMAC_INTEL_PLAT=m
# CONFIG_DW_WATCHDOG is not set
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DYNAMIC_FTRACE=y
@@ -1640,7 +1671,10 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
CONFIG_ETHTOOL_NETLINK=y
# CONFIG_EUROTECH_WDT is not set
-# CONFIG_EVM is not set
+# CONFIG_EVM_ADD_XATTRS is not set
+CONFIG_EVM_ATTR_FSUUID=y
+# CONFIG_EVM_LOAD_X509 is not set
+CONFIG_EVM=y
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
CONFIG_EXFAT_FS=m
# CONFIG_EXPERT is not set
@@ -1693,6 +1727,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
# CONFIG_FAT_DEFAULT_UTF8 is not set
CONFIG_FAT_FS=m
# CONFIG_FAULT_INJECTION is not set
+# CONFIG_FAULT_INJECTION_USERCOPY is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_ARK is not set
@@ -1840,6 +1875,7 @@ CONFIG_FUJITSU_TABLET=m
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_FUNCTION_TRACER=y
+CONFIG_FUSE_DAX=y
CONFIG_FUSE_FS=m
CONFIG_FUSION_CTL=m
CONFIG_FUSION_FC=m
@@ -1898,7 +1934,10 @@ CONFIG_GIGASET_CAPI=y
CONFIG_GIGASET_M101=m
CONFIG_GIGASET_M105=m
# CONFIG_GLOB_SELFTEST is not set
-# CONFIG_GNSS is not set
+CONFIG_GNSS=m
+CONFIG_GNSS_MTK_SERIAL=m
+CONFIG_GNSS_SIRF_SERIAL=m
+CONFIG_GNSS_UBX_SERIAL=m
# CONFIG_GOLDFISH is not set
# CONFIG_GOOGLE_FIRMWARE is not set
CONFIG_GP2AP002=m
@@ -1916,6 +1955,7 @@ CONFIG_GPIO_AMDPT=m
# CONFIG_GPIO_BCM_XGS_IPROC is not set
CONFIG_GPIO_BD9571MWV=m
CONFIG_GPIO_CADENCE=m
+CONFIG_GPIO_CDEV_V1=y
CONFIG_GPIO_CRYSTAL_COVE=y
CONFIG_GPIO_CS5535=y
# CONFIG_GPIO_DWAPB is not set
@@ -1943,6 +1983,7 @@ CONFIG_GPIO_MAX77650=m
CONFIG_GPIO_MLXBF2=m
# CONFIG_GPIO_MOCKUP is not set
CONFIG_GPIO_MSIC=y
+CONFIG_GPIO_MXC=m
# CONFIG_GPIO_PCA953X_IRQ is not set
CONFIG_GPIO_PCA953X=m
CONFIG_GPIO_PCA9570=m
@@ -1987,6 +2028,7 @@ CONFIG_HARDENED_USERCOPY=y
CONFIG_HARDLOCKUP_DETECTOR=y
CONFIG_HD44780=m
# CONFIG_HDC100X is not set
+CONFIG_HDC2010=m
CONFIG_HDMI_LPE_AUDIO=m
CONFIG_HEADERS_CHECK=y
CONFIG_HEADERS_INSTALL=y
@@ -2103,6 +2145,7 @@ CONFIG_HID_U2FZERO=m
CONFIG_HID_UCLOGIC=m
CONFIG_HID_UDRAW_PS3=m
CONFIG_HID_VIEWSONIC=m
+CONFIG_HID_VIVALDI=m
CONFIG_HID_WACOM=m
CONFIG_HID_WALTOP=m
CONFIG_HID_WIIMOTE=m
@@ -2117,6 +2160,7 @@ CONFIG_HIGHPTE=y
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_HIPPI is not set
# CONFIG_HISI_DMA is not set
+CONFIG_HISI_HIKEY_USB=m
# CONFIG_HIST_TRIGGERS_DEBUG is not set
CONFIG_HIST_TRIGGERS=y
CONFIG_HMC425=m
@@ -2176,6 +2220,7 @@ CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIA=m
CONFIG_HW_RANDOM_VIRTIO=y
+CONFIG_HW_RANDOM_XIPHERA=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK=y
# CONFIG_HX711 is not set
@@ -2232,6 +2277,7 @@ CONFIG_I2C_HID=m
CONFIG_I2C_I801=m
CONFIG_I2C_ISCH=m
CONFIG_I2C_ISMT=m
+CONFIG_I2C_MLXBF=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MULTI_INSTANTIATE=m
# CONFIG_I2C_MUX_GPIO is not set
@@ -2263,6 +2309,7 @@ CONFIG_I2C_SIS5595=m
CONFIG_I2C_SIS630=m
CONFIG_I2C_SIS96X=m
CONFIG_I2C_SLAVE_EEPROM=m
+# CONFIG_I2C_SLAVE_TESTUNIT is not set
CONFIG_I2C_SLAVE=y
CONFIG_I2C_STUB=m
# CONFIG_I2C_TAOS_EVM is not set
@@ -2318,6 +2365,8 @@ CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IGC=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_DMAENGINE=m
+CONFIG_IIO_BUFFER_DMA=m
CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
@@ -2346,6 +2395,7 @@ CONFIG_IIO_SW_TRIGGER=m
# CONFIG_IIO_SYSFS_TRIGGER is not set
CONFIG_IIO_TIGHTLOOP_TRIGGER=m
CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_TRIGGERED_EVENT=m
CONFIG_IIO_TRIGGER=y
# CONFIG_IKCONFIG is not set
CONFIG_IKHEADERS=m
@@ -2353,9 +2403,10 @@ CONFIG_IMA_APPRAISE_BOOTPARAM=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_APPRAISE=y
-# CONFIG_IMA_ARCH_POLICY is not set
+CONFIG_IMA_ARCH_POLICY=y
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
+CONFIG_IMA_DEFAULT_HASH="sha256"
CONFIG_IMA_DEFAULT_HASH_SHA256=y
# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
@@ -2365,6 +2416,7 @@ CONFIG_IMA_LSM_RULES=y
CONFIG_IMA_MEASURE_PCR_IDX=10
CONFIG_IMA_NG_TEMPLATE=y
CONFIG_IMA_READ_POLICY=y
+CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT=y
# CONFIG_IMA_SIG_TEMPLATE is not set
# CONFIG_IMA_TEMPLATE is not set
# CONFIG_IMA_TRUSTED_KEYRING is not set
@@ -2384,6 +2436,7 @@ CONFIG_INET_ESPINTCP=y
CONFIG_INET_ESP=m
CONFIG_INET_ESP_OFFLOAD=m
CONFIG_INET_IPCOMP=m
+CONFIG_INET_MPTCP_DIAG=m
CONFIG_INET_RAW_DIAG=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_UDP_DIAG=m
@@ -2514,7 +2567,6 @@ CONFIG_INTEL_IOATDMA=m
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y
-CONFIG_INTEL_IOMMU_SVM=y
CONFIG_INTEL_IOMMU=y
CONFIG_INTEL_IPS=m
CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER=m
@@ -2522,6 +2574,7 @@ CONFIG_INTEL_MEI_HDCP=m
CONFIG_INTEL_MEI=m
CONFIG_INTEL_MEI_ME=m
CONFIG_INTEL_MEI_TXE=m
+CONFIG_INTEL_MEI_VIRTIO=m
CONFIG_INTEL_MEI_WDT=m
# CONFIG_INTEL_MENLOW is not set
CONFIG_INTEL_MFLD_THERMAL=m
@@ -2822,6 +2875,7 @@ CONFIG_JFS_SECURITY=y
CONFIG_JME=m
CONFIG_JOLIET=y
CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADC=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
@@ -2863,6 +2917,7 @@ CONFIG_KARMA_PARTITION=y
# CONFIG_KASAN is not set
# CONFIG_KASAN_VMALLOC is not set
# CONFIG_KCOV is not set
+# CONFIG_KCSAN is not set
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
# CONFIG_KERNEL_BZIP2 is not set
CONFIG_KERNEL_GZIP=y
@@ -2874,6 +2929,7 @@ CONFIG_KERNEL_HEADER_TEST=y
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_ZSTD is not set
# CONFIG_KEXEC_FILE is not set
+CONFIG_KEXEC_IMAGE_VERIFY_SIG=y
# CONFIG_KEXEC_JUMP is not set
# CONFIG_KEXEC_SIG_FORCE is not set
CONFIG_KEXEC_SIG=y
@@ -2913,6 +2969,7 @@ CONFIG_KEY_DH_OPERATIONS=y
CONFIG_KEY_NOTIFICATIONS=y
CONFIG_KEYS_REQUEST_CACHE=y
CONFIG_KEYS=y
+CONFIG_KGDB_HONOUR_BLOCKLIST=y
# CONFIG_KGDB_KDB is not set
CONFIG_KGDB_LOW_LEVEL_TRAP=y
CONFIG_KGDB_SERIAL_CONSOLE=y
@@ -2972,6 +3029,7 @@ CONFIG_LDM_PARTITION=y
# CONFIG_LEDS_AAT1290 is not set
CONFIG_LEDS_AN30259A=m
CONFIG_LEDS_APU=m
+# CONFIG_LEDS_ARIEL is not set
CONFIG_LEDS_AS3645A=m
# CONFIG_LEDS_AW2013 is not set
# CONFIG_LEDS_BCM6328 is not set
@@ -2999,6 +3057,7 @@ CONFIG_LEDS_LM3601X=m
CONFIG_LEDS_LM3692X=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
+CONFIG_LEDS_LP50XX=m
# CONFIG_LEDS_LP5521 is not set
# CONFIG_LEDS_LP5523 is not set
# CONFIG_LEDS_LP5562 is not set
@@ -3298,10 +3357,13 @@ CONFIG_MFD_CS5535=y
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
+CONFIG_MFD_ENE_KB3930=m
# CONFIG_MFD_GATEWORKS_GSC is not set
# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_MFD_HI6421_SPMI is not set
CONFIG_MFD_INTEL_LPSS_ACPI=y
CONFIG_MFD_INTEL_LPSS_PCI=y
+CONFIG_MFD_INTEL_M10_BMC=m
CONFIG_MFD_INTEL_MSIC=y
CONFIG_MFD_INTEL_PMC_BXT=m
# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set
@@ -3343,6 +3405,7 @@ CONFIG_MFD_MAX77650=m
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SL28CPLD is not set
CONFIG_MFD_SM501_GPIO=y
CONFIG_MFD_SM501=m
# CONFIG_MFD_SMSC is not set
@@ -3380,6 +3443,7 @@ CONFIG_MFD_WL1273_CORE=m
# CONFIG_MFD_WM8994 is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
+# CONFIG_MHI_BUS_DEBUG is not set
CONFIG_MHI_BUS=m
# CONFIG_MICREL_KS8995MA is not set
CONFIG_MICREL_PHY=m
@@ -3648,6 +3712,7 @@ CONFIG_MUX_MMIO=m
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
CONFIG_MVMDIO=m
+CONFIG_MVPP2_PTP=y
CONFIG_MWAVE=m
CONFIG_MWIFIEX=m
CONFIG_MWIFIEX_PCIE=m
@@ -4086,6 +4151,7 @@ CONFIG_NFS_V3=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
CONFIG_NFS_V4_1=y
+# CONFIG_NFS_V4_2_READ_PLUS is not set
CONFIG_NFS_V4_2=y
CONFIG_NFS_V4=m
CONFIG_NF_TABLES_ARP=y
@@ -4137,6 +4203,7 @@ CONFIG_N_HDLC=m
# CONFIG_NI903X_WDT is not set
CONFIG_NIC7018_WDT=m
CONFIG_NILFS2_FS=m
+CONFIG_NITRO_ENCLAVES=m
CONFIG_NIU=m
# CONFIG_NL80211_TESTMODE is not set
CONFIG_NLMON=m
@@ -4374,6 +4441,7 @@ CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT_HOST is not set
CONFIG_PCIE_ECRC=y
CONFIG_PCIE_EDR=y
+# CONFIG_PCIE_HISI_ERR is not set
# CONFIG_PCIE_INTEL_GW is not set
# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set
# CONFIG_PCIE_MOBIVEIL is not set
@@ -4422,6 +4490,7 @@ CONFIG_PCMCIA_XIRC2PS=m
CONFIG_PCMCIA_XIRCOM=m
CONFIG_PCMCIA=y
CONFIG_PCNET32=m
+CONFIG_PCS_XPCS=m
CONFIG_PD6729=m
# CONFIG_PDA_POWER is not set
CONFIG_PDC_ADMA=m
@@ -4444,8 +4513,12 @@ CONFIG_PHY_CADENCE_SIERRA=m
CONFIG_PHY_CADENCE_TORRENT=m
# CONFIG_PHY_CPCAP_USB is not set
# CONFIG_PHY_FSL_IMX8MQ_USB is not set
+# CONFIG_PHY_HI3670_USB is not set
CONFIG_PHY_INTEL_COMBO=y
CONFIG_PHY_INTEL_EMMC=m
+# CONFIG_PHY_INTEL_KEEMBAY_EMMC is not set
+CONFIG_PHY_INTEL_LGM_COMBO=y
+CONFIG_PHY_INTEL_LGM_EMMC=m
CONFIG_PHYLIB=y
CONFIG_PHYLINK=m
# CONFIG_PHY_MAPPHONE_MDM6600 is not set
@@ -4483,6 +4556,7 @@ CONFIG_PINCTRL_JASPERLAKE=m
CONFIG_PINCTRL_LEWISBURG=m
CONFIG_PINCTRL_LYNXPOINT=m
# CONFIG_PINCTRL_MCP23S08 is not set
+# CONFIG_PINCTRL_MSM8226 is not set
# CONFIG_PINCTRL_MSM8976 is not set
# CONFIG_PINCTRL_OCELOT is not set
# CONFIG_PINCTRL_QCS404 is not set
@@ -4494,6 +4568,8 @@ CONFIG_PINCTRL_RK805=m
# CONFIG_PINCTRL_SM8250 is not set
# CONFIG_PINCTRL_STMFX is not set
# CONFIG_PINCTRL_SUN4I_A10 is not set
+# CONFIG_PINCTRL_SUN50I_A100 is not set
+# CONFIG_PINCTRL_SUN50I_A100_R is not set
# CONFIG_PINCTRL_SUN50I_A64 is not set
# CONFIG_PINCTRL_SUN50I_A64_R is not set
# CONFIG_PINCTRL_SUN50I_H5 is not set
@@ -4551,7 +4627,6 @@ CONFIG_POSIX_MQUEUE=y
# CONFIG_POWER7_CPU is not set
# CONFIG_POWER8_CPU is not set
# CONFIG_POWER9_CPU is not set
-# CONFIG_POWER_AVS is not set
CONFIG_POWERCAP=y
# CONFIG_POWER_RESET_BRCMKONA is not set
# CONFIG_POWER_RESET_BRCMSTB is not set
@@ -4570,6 +4645,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_PPC_PROT_SAO_LPAR is not set
# CONFIG_PPC_PTDUMP is not set
# CONFIG_PPC_QUEUED_SPINLOCKS is not set
+CONFIG_PPC_RTAS_FILTER=y
CONFIG_PPDEV=m
CONFIG_PPP_ASYNC=m
CONFIG_PPP_BSDCOMP=m
@@ -4594,6 +4670,8 @@ CONFIG_PPTP=m
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PRESTERA=m
+CONFIG_PRESTERA_PCI=m
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_PRIME_NUMBERS is not set
CONFIG_PRINTER=m
@@ -4686,8 +4764,10 @@ CONFIG_QLCNIC_SRIOV=y
CONFIG_QLGE=m
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX6FS_FS is not set
-# CONFIG_QRTR is not set
+CONFIG_QRTR=m
CONFIG_QRTR_MHI=m
+CONFIG_QRTR_SMD=m
+CONFIG_QRTR_TUN=m
CONFIG_QSEMI_PHY=m
CONFIG_QTNFMAC_PCIE=m
# CONFIG_QUICC_ENGINE is not set
@@ -4747,6 +4827,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_PERF_TEST is not set
# CONFIG_RCU_REF_SCALE_TEST is not set
+# CONFIG_RCU_SCALE_TEST is not set
CONFIG_RCU_TORTURE_TEST=m
# CONFIG_RCU_TRACE is not set
CONFIG_RC_XBOX_DVD=m
@@ -4780,7 +4861,7 @@ CONFIG_REGULATOR_BD9571MWV=m
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR_FAN53555 is not set
# CONFIG_REGULATOR_FAN53880 is not set
-# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
# CONFIG_REGULATOR_GPIO is not set
# CONFIG_REGULATOR_ISL6271A is not set
# CONFIG_REGULATOR_ISL9305 is not set
@@ -4808,6 +4889,9 @@ CONFIG_REGULATOR_MP886X=m
# CONFIG_REGULATOR_PV88080 is not set
# CONFIG_REGULATOR_PV88090 is not set
# CONFIG_REGULATOR_PWM is not set
+# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set
+CONFIG_REGULATOR_RT4801=m
+CONFIG_REGULATOR_RTMV20=m
# CONFIG_REGULATOR_SLG51000 is not set
# CONFIG_REGULATOR_SY8106A is not set
# CONFIG_REGULATOR_SY8824X is not set
@@ -4858,6 +4942,7 @@ CONFIG_RMI4_F11=y
CONFIG_RMI4_F12=y
CONFIG_RMI4_F30=y
CONFIG_RMI4_F34=y
+CONFIG_RMI4_F3A=y
# CONFIG_RMI4_F54 is not set
CONFIG_RMI4_F55=y
CONFIG_RMI4_I2C=m
@@ -4973,6 +5058,7 @@ CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_RV3028=m
CONFIG_RTC_DRV_RV3029C2=m
CONFIG_RTC_DRV_RV3029_HWMON=y
+CONFIG_RTC_DRV_RV3032=m
# CONFIG_RTC_DRV_RV8803 is not set
CONFIG_RTC_DRV_RX4581=m
# CONFIG_RTC_DRV_RX6110 is not set
@@ -4995,7 +5081,7 @@ CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_SYSFS=y
-# CONFIG_RTC_NVMEM is not set
+CONFIG_RTC_NVMEM=y
# CONFIG_RTC_SYSTOHC is not set
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_RTL8180=m
@@ -5068,6 +5154,7 @@ CONFIG_SCD30_CORE=m
CONFIG_SCD30_I2C=m
CONFIG_SCD30_SERIAL=m
# CONFIG_SC_DISPCC_7180 is not set
+# CONFIG_SCF_TORTURE_TEST is not set
# CONFIG_SC_GPUCC_7180 is not set
CONFIG_SCHED_AUTOGROUP=y
CONFIG_SCHED_DEBUG=y
@@ -5205,7 +5292,7 @@ CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0
CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_DISABLE=y
+# CONFIG_SECURITY_SELINUX_DISABLE is not set
CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
CONFIG_SECURITY_SELINUX=y
@@ -5228,6 +5315,7 @@ CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
# CONFIG_SENSORS_ADM1177 is not set
+CONFIG_SENSORS_ADM1266=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ADS7828=m
@@ -5286,6 +5374,7 @@ CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
# CONFIG_SENSORS_INSPUR_IPSPS is not set
+CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -5352,6 +5441,8 @@ CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_MLXREG_FAN=m
+CONFIG_SENSORS_MP2975=m
+CONFIG_SENSORS_MR75203=m
CONFIG_SENSORS_NCT6683=m
CONFIG_SENSORS_NCT6775=m
CONFIG_SENSORS_NCT7802=m
@@ -5518,6 +5609,7 @@ CONFIG_SLUB=y
CONFIG_SMARTJOYPLUS_FF=y
CONFIG_SMC_DIAG=m
CONFIG_SMC=m
+# CONFIG_SM_DISPCC_8250 is not set
# CONFIG_SM_FTL is not set
CONFIG_SMP=y
# CONFIG_SMSC37B787_WDT is not set
@@ -5530,6 +5622,8 @@ CONFIG_SMS_SDIO_DRV=m
CONFIG_SMS_SIANO_MDTV=m
CONFIG_SMS_SIANO_RC=y
CONFIG_SMS_USB_DRV=m
+# CONFIG_SM_VIDEOCC_8150 is not set
+# CONFIG_SM_VIDEOCC_8250 is not set
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AD1889=m
@@ -5700,6 +5794,7 @@ CONFIG_SND_SOC_BD28623=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
+CONFIG_SND_SOC_CS4234=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -5737,7 +5832,6 @@ CONFIG_SND_SOC_HDAC_HDA=m
CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_IMG is not set
-# CONFIG_SND_SOC_IMX_AUDMIX is not set
# CONFIG_SND_SOC_IMX_AUDMUX is not set
# CONFIG_SND_SOC_IMX_ES8328 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
@@ -5752,6 +5846,7 @@ CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m
CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
+CONFIG_SND_SOC_INTEL_CATPT=m
CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
@@ -5781,6 +5876,7 @@ CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH=m
CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH=m
+CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
@@ -5820,14 +5916,14 @@ CONFIG_SND_SOC_PCM512x_I2C=m
# CONFIG_SND_SOC_PCM512x_SPI is not set
# CONFIG_SND_SOC_RK3328 is not set
CONFIG_SND_SOC_RL6231=m
-# CONFIG_SND_SOC_RT1308_SDW is not set
+CONFIG_SND_SOC_RT1308_SDW=m
# CONFIG_SND_SOC_RT5616 is not set
# CONFIG_SND_SOC_RT5631 is not set
CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_RT5682_SDW=m
-# CONFIG_SND_SOC_RT700_SDW is not set
-# CONFIG_SND_SOC_RT711_SDW is not set
-# CONFIG_SND_SOC_RT715_SDW is not set
+CONFIG_SND_SOC_RT700_SDW=m
+CONFIG_SND_SOC_RT711_SDW=m
+CONFIG_SND_SOC_RT715_SDW=m
# CONFIG_SND_SOC_SAMSUNG_ARIES_WM8994 is not set
CONFIG_SND_SOC_SAMSUNG_MIDAS_WM1811=m
# CONFIG_SND_SOC_SGTL5000 is not set
@@ -5850,6 +5946,7 @@ CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y
CONFIG_SND_SOC_SOF_HDA_LINK=y
CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK=y
CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
@@ -5870,6 +5967,7 @@ CONFIG_SND_SOC_SSM4567=m
# CONFIG_SND_SOC_STI_SAS is not set
# CONFIG_SND_SOC_TAS2552 is not set
CONFIG_SND_SOC_TAS2562=m
+CONFIG_SND_SOC_TAS2764=m
CONFIG_SND_SOC_TAS2770=m
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TAS571X is not set
@@ -5963,11 +6061,27 @@ CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SOUNDWIRE_CADENCE=m
CONFIG_SOUNDWIRE_INTEL=m
+# CONFIG_SOUNDWIRE_QCOM is not set
CONFIG_SOUNDWIRE=y
CONFIG_SP5100_TCO=m
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSEMEM_MANUAL=y
-# CONFIG_SPEAKUP is not set
+CONFIG_SPEAKUP=m
+# CONFIG_SPEAKUP_SYNTH_ACNTPC is not set
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+# CONFIG_SPEAKUP_SYNTH_DECEXT is not set
+# CONFIG_SPEAKUP_SYNTH_DECPC is not set
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+# CONFIG_SPEAKUP_SYNTH_DTLK is not set
+# CONFIG_SPEAKUP_SYNTH_DUMMY is not set
+# CONFIG_SPEAKUP_SYNTH_KEYPC is not set
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_AMD is not set
# CONFIG_SPI_AXI_SPI_ENGINE is not set
@@ -6004,6 +6118,7 @@ CONFIG_SPI_SPIDEV=m
# CONFIG_SPI_XILINX is not set
CONFIG_SPI=y
# CONFIG_SPI_ZYNQMP_GQSPI is not set
+# CONFIG_SPMI_HISI3670 is not set
# CONFIG_SPMI is not set
# CONFIG_SPS30 is not set
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
@@ -6042,6 +6157,7 @@ CONFIG_STACK_VALIDATION=y
CONFIG_STAGING_MEDIA=y
CONFIG_STAGING=y
CONFIG_STANDALONE=y
+# CONFIG_STATIC_CALL_SELFTEST is not set
# CONFIG_STATIC_KEYS_SELFTEST is not set
# CONFIG_STATIC_USERMODEHELPER is not set
CONFIG_STE10XP=m
@@ -6067,6 +6183,7 @@ CONFIG_ST_UVIS25_I2C=m
CONFIG_ST_UVIS25=m
CONFIG_ST_UVIS25_SPI=m
# CONFIG_SUN50I_DE2_BUS is not set
+# CONFIG_SUN50I_IOMMU is not set
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -6182,6 +6299,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_HEXDUMP is not set
# CONFIG_TEST_HMM is not set
# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_KASAN_MODULE is not set
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_LIST_SORT is not set
@@ -6359,6 +6477,7 @@ CONFIG_TOUCHSCREEN_WACOM_W8001=m
# CONFIG_TOUCHSCREEN_WM97XX is not set
CONFIG_TOUCHSCREEN_ZET6223=m
CONFIG_TOUCHSCREEN_ZFORCE=m
+CONFIG_TOUCHSCREEN_ZINITIX=m
# CONFIG_TPL0102 is not set
CONFIG_TPM_KEY_PARSER=m
# CONFIG_TPS6105X is not set
@@ -6406,8 +6525,11 @@ CONFIG_TYPEC=m
CONFIG_TYPEC_MUX_INTEL_PMC=m
CONFIG_TYPEC_MUX_PI3USB30532=m
CONFIG_TYPEC_NVIDIA_ALTMODE=m
+# CONFIG_TYPEC_QCOM_PMIC is not set
# CONFIG_TYPEC_RT1711H is not set
+CONFIG_TYPEC_STUSB160X=m
CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPCI_MAXIM=m
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
@@ -6459,6 +6581,7 @@ CONFIG_UNUSED_SYMBOLS=y
CONFIG_UNWINDER_FRAME_POINTER=y
CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
+# CONFIG_USB4_DEBUGFS_WRITE is not set
CONFIG_USB4=m
CONFIG_USB4_NET=m
CONFIG_USB_ACM=m
@@ -6505,6 +6628,7 @@ CONFIG_USB_EMI62=m
CONFIG_USB_EPSON2888=y
# CONFIG_USB_ETH is not set
CONFIG_USB_EZUSB_FX2=m
+# CONFIG_USB_FEW_INIT_RETRIES is not set
# CONFIG_USB_FOTG210_HCD is not set
CONFIG_USB_FTDI_ELAN=m
# CONFIG_USB_FUNCTIONFS is not set
@@ -6605,6 +6729,7 @@ CONFIG_USB_LD=m
CONFIG_USB_LEDS_TRIGGER_USBPORT=m
CONFIG_USB_LED_TRIG=y
CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LGM_PHY=m
# CONFIG_USB_LINK_LAYER_TEST is not set
CONFIG_USB_M5602=m
CONFIG_USB_MA901=m
@@ -6778,7 +6903,7 @@ CONFIG_USB_WDM=m
CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_HISTB is not set
-CONFIG_USB_XHCI_PCI_RENESAS=y
+CONFIG_USB_XHCI_PCI_RENESAS=m
# CONFIG_USB_XHCI_PLATFORM is not set
CONFIG_USB_XUSBATM=m
CONFIG_USB=y
@@ -6823,6 +6948,7 @@ CONFIG_VFIO_MDEV=m
CONFIG_VFIO_PCI_IGD=y
CONFIG_VFIO_PCI=m
CONFIG_VFIO_PCI_VGA=y
+CONFIG_VFIO_PCI_ZDEV=y
CONFIG_VGA_ARB_MAX_GPUS=16
CONFIG_VGA_ARB=y
# CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT is not set
@@ -6967,6 +7093,7 @@ CONFIG_VIDEO_SOLO6X10=m
CONFIG_VIDEO_SR030PC30=m
CONFIG_VIDEO_STK1160_COMMON=m
CONFIG_VIDEO_STK1160=m
+# CONFIG_VIDEO_TEGRA_TPG is not set
CONFIG_VIDEO_TM6000_ALSA=m
CONFIG_VIDEO_TM6000_DVB=m
CONFIG_VIDEO_TM6000=m
@@ -6980,6 +7107,7 @@ CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_VIDEO_VS6624=m
# CONFIG_VIDEO_XILINX is not set
+# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIPERBOARD_ADC is not set
# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
@@ -7235,6 +7363,7 @@ CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_STATISTICS=y
CONFIG_XFRM_SUB_POLICY=y
+# CONFIG_XFRM_USER_COMPAT is not set
CONFIG_XFRM_USER=y
CONFIG_XFRM=y
# CONFIG_XFS_DEBUG is not set
@@ -7244,6 +7373,7 @@ CONFIG_XFS_ONLINE_SCRUB=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_QUOTA=y
# CONFIG_XFS_RT is not set
+CONFIG_XFS_SUPPORT_V4=y
# CONFIG_XFS_WARN is not set
# CONFIG_XIAOMI_WMI is not set
# CONFIG_XIL_AXIS_FIFO is not set
@@ -7274,6 +7404,7 @@ CONFIG_YELLOWFIN=m
CONFIG_YENTA=m
CONFIG_Z3FOLD=y
CONFIG_ZBUD=y
+# CONFIG_ZCRYPT_DEBUG is not set
# CONFIG_ZD1211RW_DEBUG is not set
CONFIG_ZD1211RW=m
CONFIG_ZEROPLUS_FF=y
@@ -7308,4 +7439,5 @@ CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
# Select this config option to add support for the initrd= command
# This option determines the default init for the system if no init=
# warnings from C=1 sparse checker or -Wextra compilations. It has
+# You can set the size of pernuma CMA by specifying "cma_pernuma=size"
CONFIG_ZENIFY=y
diff --git a/SOURCES/kernel-ppc64le-debug-fedora.config b/SOURCES/kernel-ppc64le-debug-fedora.config
index 45d0ec9..18e581e 100644
--- a/SOURCES/kernel-ppc64le-debug-fedora.config
+++ b/SOURCES/kernel-ppc64le-debug-fedora.config
@@ -1,5 +1,6 @@
# powerpc
# 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
+# beginning with "crc=". If the string "crc=0" is found, the
# CONFIG_60XX_WDT is not set
CONFIG_6LOWPAN_DEBUGFS=y
CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
@@ -38,6 +39,7 @@ CONFIG_ACENIC=m
CONFIG_ACPI_ALS=m
# CONFIG_ACPI_DEBUGGER is not set
CONFIG_ACPI_DEBUG=y
+# CONFIG_ACPI_DPTF is not set
CONFIG_ACPI_HMAT=y
# CONFIG_ACPI_NFIT is not set
CONFIG_ACPI_PCI_SLOT=y
@@ -127,6 +129,7 @@ CONFIG_ADUX1020=m
# CONFIG_ADXL345_SPI is not set
CONFIG_ADXL372_I2C=m
CONFIG_ADXL372_SPI=m
+CONFIG_ADXRS290=m
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -207,21 +210,26 @@ CONFIG_ARCH_RANDOM=y
# CONFIG_ARCH_S3C24XX is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_SPARX5 is not set
+# CONFIG_ARCH_VISCONTI is not set
# CONFIG_ARCNET is not set
CONFIG_ARM64_AMU_EXTN=y
CONFIG_ARM64_BTI=y
CONFIG_ARM64_E0PD=y
CONFIG_ARM64_ERRATUM_1319367=y
+CONFIG_ARM64_ERRATUM_1508412=y
CONFIG_ARM64_ERRATUM_1530923=y
CONFIG_ARM64_ERRATUM_1542419=y
CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_USE_LSE_ATOMICS=y
+# CONFIG_ARM_CMN is not set
CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y
CONFIG_ARM_PTDUMP_DEBUGFS=y
CONFIG_ARM_SMCCC_SOC_ID=y
# CONFIG_ARM_SMC_WATCHDOG is not set
# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set
+# CONFIG_ARM_SMMU_V3_SVA is not set
# CONFIG_AS3935 is not set
+# CONFIG_AS73211 is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE=m
CONFIG_ASYNC_RAID6_TEST=m
@@ -245,9 +253,11 @@ CONFIG_ATH10K_SDIO=m
# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
+CONFIG_ATH11K_AHB=m
CONFIG_ATH11K_DEBUGFS=y
# CONFIG_ATH11K_DEBUG is not set
CONFIG_ATH11K=m
+CONFIG_ATH11K_PCI=m
# CONFIG_ATH11K_SPECTRAL is not set
# CONFIG_ATH11K_TRACING is not set
CONFIG_ATH5K_DEBUG=y
@@ -352,6 +362,7 @@ CONFIG_BACKLIGHT_ARCXCNN=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
# CONFIG_BACKLIGHT_GPIO is not set
+CONFIG_BACKLIGHT_KTD253=m
CONFIG_BACKLIGHT_LED=m
# CONFIG_BACKLIGHT_LM3630A is not set
# CONFIG_BACKLIGHT_LM3639 is not set
@@ -512,6 +523,8 @@ CONFIG_BPF_JIT=y
CONFIG_BPF_KPROBE_OVERRIDE=y
CONFIG_BPF_LIRC_MODE2=y
CONFIG_BPF_LSM=y
+CONFIG_BPF_PRELOAD_UMD=m
+CONFIG_BPF_PRELOAD=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -641,6 +654,7 @@ CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_ISOTP is not set
# CONFIG_CAN_J1939 is not set
# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
@@ -650,6 +664,7 @@ CONFIG_CAN_M_CAN=m
# CONFIG_CAN_M_CAN_PLATFORM is not set
# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
+# CONFIG_CAN_MCP251XFD is not set
# CONFIG_CAN_MCP251X is not set
# CONFIG_CAN_MSCAN is not set
CONFIG_CAN_PEAK_PCIEC=y
@@ -730,6 +745,7 @@ CONFIG_CHARGER_BD99954=m
# CONFIG_CHARGER_BQ24735 is not set
CONFIG_CHARGER_BQ2515X=m
# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_BQ25980 is not set
# CONFIG_CHARGER_CROS_USBPD is not set
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
# CONFIG_CHARGER_GPIO is not set
@@ -747,7 +763,8 @@ CONFIG_CHARLCD_BL_FLASH=y
# CONFIG_CHARLCD_BL_OFF is not set
# CONFIG_CHARLCD_BL_ON is not set
CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_CHELSIO_IPSEC_INLINE=y
+CONFIG_CHELSIO_INLINE_CRYPTO=y
+CONFIG_CHELSIO_IPSEC_INLINE=m
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -755,7 +772,7 @@ CONFIG_CHELSIO_T4_DCB=y
# CONFIG_CHELSIO_T4_FCOE is not set
CONFIG_CHELSIO_T4=m
CONFIG_CHELSIO_T4VF=m
-CONFIG_CHELSIO_TLS_DEVICE=y
+CONFIG_CHELSIO_TLS_DEVICE=m
CONFIG_CHR_DEV_SCH=m
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_ST=m
@@ -1005,7 +1022,9 @@ CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA3=m
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
+CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
CONFIG_CRYPTO_STATS=y
@@ -1015,7 +1034,9 @@ CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_USER_API_AEAD=y
+# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
CONFIG_CRYPTO_USER_API_HASH=y
+# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER=m
@@ -1027,6 +1048,7 @@ CONFIG_CRYPTO_XTS=y
CONFIG_CRYPTO_XXHASH=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ZSTD=m
+# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
CONFIG_CUSE=m
CONFIG_CW1200=m
CONFIG_CW1200_WLAN_SDIO=m
@@ -1165,6 +1187,7 @@ CONFIG_DMADEVICES_DEBUG=y
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
# CONFIG_DMA_FENCE_TRACE is not set
+# CONFIG_DMA_PERNUMA_CMA is not set
# CONFIG_DMARD06 is not set
# CONFIG_DMARD09 is not set
CONFIG_DMARD10=m
@@ -1213,6 +1236,7 @@ CONFIG_DP83869_PHY=m
# CONFIG_DP83TC811_PHY is not set
CONFIG_DPOT_DAC=m
# CONFIG_DPS310 is not set
+# CONFIG_DPTF_PCH_FIVR is not set
CONFIG_DRAGONRISE_FF=y
CONFIG_DRBD_FAULT_INJECTION=y
CONFIG_DRM_AMD_ACP=y
@@ -1220,6 +1244,7 @@ CONFIG_DRM_AMD_DC_DCN2_0=y
CONFIG_DRM_AMD_DC_DCN3_0=y
CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
CONFIG_DRM_AMD_DC_HDCP=y
+CONFIG_DRM_AMD_DC_SI=y
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMDGPU_CIK=y
# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
@@ -1232,6 +1257,7 @@ CONFIG_DRM_ANALOGIX_ANX78XX=m
CONFIG_DRM_AST=m
CONFIG_DRM_BOCHS=m
# CONFIG_DRM_CDNS_DSI is not set
+# CONFIG_DRM_CDNS_MHDP8546 is not set
CONFIG_DRM_CHRONTEL_CH7033=m
CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_SELFTEST is not set
@@ -1255,6 +1281,7 @@ CONFIG_DRM_I2C_SIL164=m
# CONFIG_DRM_KOMEDA is not set
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LONTIUM_LT9611 is not set
# CONFIG_DRM_LVDS_CODEC is not set
# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
@@ -1285,6 +1312,7 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m
# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_LVDS is not set
+CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m
# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
CONFIG_DRM_PANEL_NOVATEK_NT35510=m
# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
@@ -1340,9 +1368,11 @@ CONFIG_DRM_TIDSS=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TI_TPD12S015=m
+CONFIG_DRM_TOSHIBA_TC358762=m
CONFIG_DRM_TOSHIBA_TC358764=m
# CONFIG_DRM_TOSHIBA_TC358767 is not set
CONFIG_DRM_TOSHIBA_TC358768=m
+CONFIG_DRM_TOSHIBA_TC358775=m
CONFIG_DRM_UDL=m
# CONFIG_DRM_VBOXVIDEO is not set
CONFIG_DRM_VGEM=m
@@ -1446,6 +1476,7 @@ CONFIG_DW_DMAC_PCI=m
CONFIG_DW_EDMA=m
CONFIG_DW_EDMA_PCIE=m
CONFIG_DWMAC_IMX8=m
+CONFIG_DWMAC_INTEL_PLAT=m
# CONFIG_DW_WATCHDOG is not set
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DYNAMIC_FTRACE=y
@@ -1505,7 +1536,10 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
CONFIG_ETHTOOL_NETLINK=y
# CONFIG_EUROTECH_WDT is not set
-# CONFIG_EVM is not set
+# CONFIG_EVM_ADD_XATTRS is not set
+CONFIG_EVM_ATTR_FSUUID=y
+# CONFIG_EVM_LOAD_X509 is not set
+CONFIG_EVM=y
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
CONFIG_EXFAT_FS=m
# CONFIG_EXPERT is not set
@@ -1565,6 +1599,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
CONFIG_FAT_FS=m
CONFIG_FAULT_INJECTION_DEBUG_FS=y
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
+# CONFIG_FAULT_INJECTION_USERCOPY is not set
CONFIG_FAULT_INJECTION=y
# CONFIG_FB_3DFX is not set
# CONFIG_FB_ARK is not set
@@ -1700,6 +1735,7 @@ CONFIG_FTRACE=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_FUNCTION_TRACER=y
+CONFIG_FUSE_DAX=y
CONFIG_FUSE_FS=m
CONFIG_FUSION_CTL=m
CONFIG_FUSION_FC=m
@@ -1756,7 +1792,10 @@ CONFIG_GIGASET_CAPI=y
CONFIG_GIGASET_M101=m
CONFIG_GIGASET_M105=m
# CONFIG_GLOB_SELFTEST is not set
-# CONFIG_GNSS is not set
+CONFIG_GNSS=m
+CONFIG_GNSS_MTK_SERIAL=m
+CONFIG_GNSS_SIRF_SERIAL=m
+CONFIG_GNSS_UBX_SERIAL=m
# CONFIG_GOLDFISH is not set
# CONFIG_GOOGLE_FIRMWARE is not set
CONFIG_GP2AP002=m
@@ -1772,6 +1811,7 @@ CONFIG_GPIO_AGGREGATOR=m
# CONFIG_GPIO_BCM_XGS_IPROC is not set
CONFIG_GPIO_BD9571MWV=m
CONFIG_GPIO_CADENCE=m
+CONFIG_GPIO_CDEV_V1=y
# CONFIG_GPIO_DWAPB is not set
CONFIG_GPIO_EXAR=m
# CONFIG_GPIO_FTGPIO010 is not set
@@ -1792,6 +1832,7 @@ CONFIG_GPIO_MAX77650=m
# CONFIG_GPIO_MC33880 is not set
CONFIG_GPIO_MLXBF2=m
# CONFIG_GPIO_MOCKUP is not set
+CONFIG_GPIO_MXC=m
# CONFIG_GPIO_PCA953X_IRQ is not set
CONFIG_GPIO_PCA953X=m
CONFIG_GPIO_PCA9570=m
@@ -1833,6 +1874,7 @@ CONFIG_HAVE_BOOTMEM_INFO_NODE=y
# CONFIG_HCALL_STATS is not set
CONFIG_HD44780=m
# CONFIG_HDC100X is not set
+CONFIG_HDC2010=m
CONFIG_HEADERS_CHECK=y
CONFIG_HEADERS_INSTALL=y
CONFIG_HEADER_TEST=y
@@ -1947,6 +1989,7 @@ CONFIG_HID_U2FZERO=m
CONFIG_HID_UCLOGIC=m
CONFIG_HID_UDRAW_PS3=m
CONFIG_HID_VIEWSONIC=m
+CONFIG_HID_VIVALDI=m
CONFIG_HID_WACOM=m
CONFIG_HID_WALTOP=m
CONFIG_HID_WIIMOTE=m
@@ -1957,6 +2000,7 @@ CONFIG_HID_ZYDACRON=m
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_HIPPI is not set
# CONFIG_HISI_DMA is not set
+CONFIG_HISI_HIKEY_USB=m
# CONFIG_HIST_TRIGGERS_DEBUG is not set
CONFIG_HIST_TRIGGERS=y
CONFIG_HMC425=m
@@ -2011,6 +2055,7 @@ CONFIG_HW_RANDOM_PSERIES=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=y
+CONFIG_HW_RANDOM_XIPHERA=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK=y
# CONFIG_HX711 is not set
@@ -2057,6 +2102,7 @@ CONFIG_I2C_HID=m
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_ISCH is not set
CONFIG_I2C=m
+CONFIG_I2C_MLXBF=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MPC=m
# CONFIG_I2C_MUX_GPIO is not set
@@ -2085,6 +2131,7 @@ CONFIG_I2C_SIMTEC=m
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
CONFIG_I2C_SLAVE_EEPROM=m
+# CONFIG_I2C_SLAVE_TESTUNIT is not set
CONFIG_I2C_SLAVE=y
CONFIG_I2C_STUB=m
# CONFIG_I2C_TAOS_EVM is not set
@@ -2136,6 +2183,8 @@ CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IGC=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_DMAENGINE=m
+CONFIG_IIO_BUFFER_DMA=m
CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
@@ -2164,6 +2213,7 @@ CONFIG_IIO_SW_TRIGGER=m
# CONFIG_IIO_SYSFS_TRIGGER is not set
CONFIG_IIO_TIGHTLOOP_TRIGGER=m
CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_TRIGGERED_EVENT=m
CONFIG_IIO_TRIGGER=y
# CONFIG_IKCONFIG is not set
CONFIG_IKHEADERS=m
@@ -2171,9 +2221,10 @@ CONFIG_IMA_APPRAISE_BOOTPARAM=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_APPRAISE=y
-# CONFIG_IMA_ARCH_POLICY is not set
+CONFIG_IMA_ARCH_POLICY=y
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
+CONFIG_IMA_DEFAULT_HASH="sha256"
CONFIG_IMA_DEFAULT_HASH_SHA256=y
# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
@@ -2183,6 +2234,7 @@ CONFIG_IMA_LSM_RULES=y
CONFIG_IMA_MEASURE_PCR_IDX=10
CONFIG_IMA_NG_TEMPLATE=y
CONFIG_IMA_READ_POLICY=y
+CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT=y
# CONFIG_IMA_SIG_TEMPLATE is not set
# CONFIG_IMA_TEMPLATE is not set
# CONFIG_IMA_TRUSTED_KEYRING is not set
@@ -2202,6 +2254,7 @@ CONFIG_INET_ESPINTCP=y
CONFIG_INET_ESP=m
CONFIG_INET_ESP_OFFLOAD=m
CONFIG_INET_IPCOMP=m
+CONFIG_INET_MPTCP_DIAG=m
CONFIG_INET_RAW_DIAG=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_UDP_DIAG=m
@@ -2314,6 +2367,7 @@ CONFIG_INTEGRITY=y
# CONFIG_INTEL_IDMA64 is not set
CONFIG_INTEL_IDXD=m
# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
+# CONFIG_INTEL_MEI_VIRTIO is not set
# CONFIG_INTEL_SCU_PCI is not set
# CONFIG_INTEL_SCU_PLATFORM is not set
CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m
@@ -2576,6 +2630,7 @@ CONFIG_JFS_SECURITY=y
CONFIG_JME=m
CONFIG_JOLIET=y
CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADC=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
@@ -2592,23 +2647,23 @@ CONFIG_JOYSTICK_IFORCE=m
CONFIG_JOYSTICK_IFORCE_USB=m
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
-CONFIG_JOYSTICK_MAGELLAN=m
+# CONFIG_JOYSTICK_MAGELLAN is not set
CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_PXRC=m
CONFIG_JOYSTICK_SIDEWINDER=m
-CONFIG_JOYSTICK_SPACEBALL=m
-CONFIG_JOYSTICK_SPACEORB=m
-CONFIG_JOYSTICK_STINGER=m
+# CONFIG_JOYSTICK_SPACEBALL is not set
+# CONFIG_JOYSTICK_SPACEORB is not set
+# CONFIG_JOYSTICK_STINGER is not set
CONFIG_JOYSTICK_TMDC=m
CONFIG_JOYSTICK_TURBOGRAFX=m
-CONFIG_JOYSTICK_TWIDJOY=m
+# CONFIG_JOYSTICK_TWIDJOY is not set
CONFIG_JOYSTICK_WALKERA0701=m
-CONFIG_JOYSTICK_WARRIOR=m
+# CONFIG_JOYSTICK_WARRIOR is not set
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
CONFIG_JOYSTICK_XPAD=m
-CONFIG_JOYSTICK_ZHENHUA=m
+# CONFIG_JOYSTICK_ZHENHUA is not set
# CONFIG_JSA1212 is not set
# CONFIG_JUMP_LABEL_FEATURE_CHECKS is not set
CONFIG_JUMP_LABEL=y
@@ -2631,6 +2686,7 @@ CONFIG_KERNEL_HEADER_TEST=y
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_ZSTD is not set
CONFIG_KEXEC_FILE=y
+CONFIG_KEXEC_IMAGE_VERIFY_SIG=y
# CONFIG_KEXEC_SIG is not set
CONFIG_KEXEC=y
# CONFIG_KEYBOARD_ADC is not set
@@ -2668,6 +2724,7 @@ CONFIG_KEY_DH_OPERATIONS=y
CONFIG_KEY_NOTIFICATIONS=y
CONFIG_KEYS_REQUEST_CACHE=y
CONFIG_KEYS=y
+CONFIG_KGDB_HONOUR_BLOCKLIST=y
CONFIG_KGDB_KDB=y
CONFIG_KGDB_LOW_LEVEL_TRAP=y
CONFIG_KGDB_SERIAL_CONSOLE=y
@@ -2723,6 +2780,7 @@ CONFIG_LDISC_AUTOLOAD=y
CONFIG_LDM_PARTITION=y
# CONFIG_LEDS_AAT1290 is not set
CONFIG_LEDS_AN30259A=m
+# CONFIG_LEDS_ARIEL is not set
CONFIG_LEDS_AS3645A=m
# CONFIG_LEDS_AW2013 is not set
# CONFIG_LEDS_BCM6328 is not set
@@ -2749,6 +2807,7 @@ CONFIG_LEDS_LM3601X=m
CONFIG_LEDS_LM3692X=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
+CONFIG_LEDS_LP50XX=m
# CONFIG_LEDS_LP5521 is not set
# CONFIG_LEDS_LP5523 is not set
# CONFIG_LEDS_LP5562 is not set
@@ -3044,8 +3103,11 @@ CONFIG_MFD_CORE=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
+CONFIG_MFD_ENE_KB3930=m
# CONFIG_MFD_GATEWORKS_GSC is not set
# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_MFD_HI6421_SPMI is not set
+CONFIG_MFD_INTEL_M10_BMC=m
# CONFIG_MFD_INTEL_PMC_BXT is not set
# CONFIG_MFD_IQS62X is not set
# CONFIG_MFD_JANZ_CMODIO is not set
@@ -3085,6 +3147,7 @@ CONFIG_MFD_MAX77650=m
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SL28CPLD is not set
CONFIG_MFD_SM501_GPIO=y
CONFIG_MFD_SM501=m
# CONFIG_MFD_SMSC is not set
@@ -3122,6 +3185,7 @@ CONFIG_MFD_WL1273_CORE=m
# CONFIG_MFD_WM8994 is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
+# CONFIG_MHI_BUS_DEBUG is not set
CONFIG_MHI_BUS=m
# CONFIG_MICREL_KS8995MA is not set
CONFIG_MICREL_PHY=m
@@ -3370,6 +3434,7 @@ CONFIG_MUX_GPIO=m
CONFIG_MUX_MMIO=m
# CONFIG_MVIAC7 is not set
CONFIG_MVMDIO=m
+CONFIG_MVPP2_PTP=y
CONFIG_MWAVE=m
CONFIG_MWIFIEX=m
CONFIG_MWIFIEX_PCIE=m
@@ -3802,6 +3867,7 @@ CONFIG_NFS_V3=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
CONFIG_NFS_V4_1=y
+# CONFIG_NFS_V4_2_READ_PLUS is not set
CONFIG_NFS_V4_2=y
CONFIG_NFS_V4=m
CONFIG_NF_TABLES_ARP=y
@@ -4071,6 +4137,7 @@ CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT_HOST is not set
CONFIG_PCIE_ECRC=y
CONFIG_PCIE_EDR=y
+# CONFIG_PCIE_HISI_ERR is not set
# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set
# CONFIG_PCIE_MOBIVEIL is not set
# CONFIG_PCI_ENDPOINT is not set
@@ -4112,6 +4179,7 @@ CONFIG_PCMCIA_XIRC2PS=m
CONFIG_PCMCIA_XIRCOM=m
CONFIG_PCMCIA=y
CONFIG_PCNET32=m
+CONFIG_PCS_XPCS=m
CONFIG_PD6729=m
# CONFIG_PDA_POWER is not set
CONFIG_PDC_ADMA=m
@@ -4129,7 +4197,10 @@ CONFIG_PHY_CADENCE_SIERRA=m
CONFIG_PHY_CADENCE_TORRENT=m
# CONFIG_PHY_CPCAP_USB is not set
# CONFIG_PHY_FSL_IMX8MQ_USB is not set
+# CONFIG_PHY_HI3670_USB is not set
# CONFIG_PHY_INTEL_EMMC is not set
+# CONFIG_PHY_INTEL_KEEMBAY_EMMC is not set
+# CONFIG_PHY_INTEL_LGM_EMMC is not set
CONFIG_PHYLIB=y
CONFIG_PHYLINK=m
# CONFIG_PHY_MAPPHONE_MDM6600 is not set
@@ -4158,6 +4229,7 @@ CONFIG_PINCTRL_EMMITSBURG=m
# CONFIG_PINCTRL_JASPERLAKE is not set
# CONFIG_PINCTRL_LYNXPOINT is not set
# CONFIG_PINCTRL_MCP23S08 is not set
+# CONFIG_PINCTRL_MSM8226 is not set
# CONFIG_PINCTRL_MSM8976 is not set
# CONFIG_PINCTRL_OCELOT is not set
# CONFIG_PINCTRL_QCS404 is not set
@@ -4168,6 +4240,8 @@ CONFIG_PINCTRL_RK805=m
# CONFIG_PINCTRL_SM8250 is not set
# CONFIG_PINCTRL_STMFX is not set
# CONFIG_PINCTRL_SUN4I_A10 is not set
+# CONFIG_PINCTRL_SUN50I_A100 is not set
+# CONFIG_PINCTRL_SUN50I_A100_R is not set
# CONFIG_PINCTRL_SUN50I_A64 is not set
# CONFIG_PINCTRL_SUN50I_A64_R is not set
# CONFIG_PINCTRL_SUN50I_H5 is not set
@@ -4218,7 +4292,6 @@ CONFIG_POSIX_MQUEUE=y
# CONFIG_POWER7_CPU is not set
CONFIG_POWER8_CPU=y
# CONFIG_POWER9_CPU is not set
-# CONFIG_POWER_AVS is not set
CONFIG_POWERCAP=y
CONFIG_POWERNV_CPUFREQ=y
CONFIG_POWERNV_CPUIDLE=y
@@ -4265,6 +4338,8 @@ CONFIG_PPC_PSERIES=y
CONFIG_PPC_RADIX_MMU_DEFAULT=y
CONFIG_PPC_RADIX_MMU=y
CONFIG_PPC_RTAS_FILTER=y
+CONFIG_PPC_SECURE_BOOT=y
+CONFIG_PPC_SECVAR_SYSFS=y
CONFIG_PPC_SMLPAR=y
CONFIG_PPC_SPLPAR=y
CONFIG_PPC_SUBPAGE_PROT=y
@@ -4296,6 +4371,8 @@ CONFIG_PPTP=m
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PRESTERA=m
+CONFIG_PRESTERA_PCI=m
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_PRIME_NUMBERS is not set
CONFIG_PRINTER=m
@@ -4383,8 +4460,10 @@ CONFIG_QLCNIC_SRIOV=y
CONFIG_QLGE=m
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX6FS_FS is not set
-# CONFIG_QRTR is not set
+CONFIG_QRTR=m
CONFIG_QRTR_MHI=m
+CONFIG_QRTR_SMD=m
+CONFIG_QRTR_TUN=m
CONFIG_QSEMI_PHY=m
CONFIG_QTNFMAC_PCIE=m
# CONFIG_QUICC_ENGINE is not set
@@ -4441,6 +4520,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_PERF_TEST is not set
CONFIG_RCU_REF_SCALE_TEST=m
+# CONFIG_RCU_SCALE_TEST is not set
CONFIG_RCU_TORTURE_TEST=m
# CONFIG_RCU_TRACE is not set
CONFIG_RC_XBOX_DVD=m
@@ -4474,11 +4554,10 @@ CONFIG_REGULATOR_BD9571MWV=m
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR_FAN53555 is not set
# CONFIG_REGULATOR_FAN53880 is not set
-# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
# CONFIG_REGULATOR_GPIO is not set
# CONFIG_REGULATOR_ISL6271A is not set
# CONFIG_REGULATOR_ISL9305 is not set
-# CONFIG_REGULATOR is not set
# CONFIG_REGULATOR_LP3971 is not set
# CONFIG_REGULATOR_LP3972 is not set
# CONFIG_REGULATOR_LP872X is not set
@@ -4503,6 +4582,9 @@ CONFIG_REGULATOR_MP886X=m
# CONFIG_REGULATOR_PV88080 is not set
# CONFIG_REGULATOR_PV88090 is not set
# CONFIG_REGULATOR_PWM is not set
+# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set
+CONFIG_REGULATOR_RT4801=m
+CONFIG_REGULATOR_RTMV20=m
# CONFIG_REGULATOR_SLG51000 is not set
# CONFIG_REGULATOR_SY8106A is not set
# CONFIG_REGULATOR_SY8824X is not set
@@ -4517,6 +4599,7 @@ CONFIG_REGULATOR_MP886X=m
CONFIG_REGULATOR_VCTRL=m
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
# CONFIG_REGULATOR_VQMMC_IPQ4019 is not set
+CONFIG_REGULATOR=y
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_FS=m
CONFIG_REISERFS_FS_POSIX_ACL=y
@@ -4551,6 +4634,7 @@ CONFIG_RMI4_F11=y
CONFIG_RMI4_F12=y
CONFIG_RMI4_F30=y
CONFIG_RMI4_F34=y
+CONFIG_RMI4_F3A=y
# CONFIG_RMI4_F54 is not set
CONFIG_RMI4_F55=y
CONFIG_RMI4_I2C=m
@@ -4670,6 +4754,7 @@ CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_RV3028=m
CONFIG_RTC_DRV_RV3029C2=m
CONFIG_RTC_DRV_RV3029_HWMON=y
+CONFIG_RTC_DRV_RV3032=m
# CONFIG_RTC_DRV_RV8803 is not set
CONFIG_RTC_DRV_RX4581=m
# CONFIG_RTC_DRV_RX6110 is not set
@@ -4691,7 +4776,7 @@ CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_SYSFS=y
-# CONFIG_RTC_NVMEM is not set
+CONFIG_RTC_NVMEM=y
# CONFIG_RTC_SYSTOHC is not set
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_RTL8180=m
@@ -4762,6 +4847,7 @@ CONFIG_SCD30_CORE=m
CONFIG_SCD30_I2C=m
CONFIG_SCD30_SERIAL=m
# CONFIG_SC_DISPCC_7180 is not set
+# CONFIG_SCF_TORTURE_TEST is not set
# CONFIG_SC_GPUCC_7180 is not set
CONFIG_SCHED_AUTOGROUP=y
CONFIG_SCHED_DEBUG=y
@@ -4898,7 +4984,7 @@ CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0
CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_DISABLE=y
+# CONFIG_SECURITY_SELINUX_DISABLE is not set
CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
CONFIG_SECURITY_SELINUX=y
@@ -4918,6 +5004,7 @@ CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
# CONFIG_SENSORS_ADM1177 is not set
+CONFIG_SENSORS_ADM1266=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ADS7828=m
@@ -4968,6 +5055,7 @@ CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
# CONFIG_SENSORS_INSPUR_IPSPS is not set
+CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -5032,6 +5120,8 @@ CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_MLXREG_FAN=m
+CONFIG_SENSORS_MP2975=m
+CONFIG_SENSORS_MR75203=m
CONFIG_SENSORS_NCT6683=m
CONFIG_SENSORS_NCT6775=m
CONFIG_SENSORS_NCT7802=m
@@ -5198,6 +5288,7 @@ CONFIG_SLUB=y
CONFIG_SMARTJOYPLUS_FF=y
CONFIG_SMC_DIAG=m
CONFIG_SMC=m
+# CONFIG_SM_DISPCC_8250 is not set
# CONFIG_SM_FTL is not set
CONFIG_SMP=y
CONFIG_SMSC911X=m
@@ -5209,6 +5300,8 @@ CONFIG_SMS_SDIO_DRV=m
CONFIG_SMS_SIANO_MDTV=m
CONFIG_SMS_SIANO_RC=y
CONFIG_SMS_USB_DRV=m
+# CONFIG_SM_VIDEOCC_8150 is not set
+# CONFIG_SM_VIDEOCC_8250 is not set
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AD1889=m
@@ -5376,6 +5469,7 @@ CONFIG_SND_SOC_BD28623=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
+CONFIG_SND_SOC_CS4234=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -5411,16 +5505,17 @@ CONFIG_SND_SOC_HDAC_HDA=m
CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_IMG is not set
-# CONFIG_SND_SOC_IMX_AUDMIX is not set
# CONFIG_SND_SOC_IMX_AUDMUX is not set
# CONFIG_SND_SOC_IMX_ES8328 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
-CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
+# CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set
+# CONFIG_SND_SOC_INTEL_CATPT is not set
# CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH is not set
CONFIG_SND_SOC_INTEL_KEEMBAY=m
CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
# CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH is not set
-CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
+CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m
+# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set
# CONFIG_SND_SOC is not set
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
@@ -5456,14 +5551,14 @@ CONFIG_SND_SOC_PCM3060_SPI=m
# CONFIG_SND_SOC_PCM512x_SPI is not set
# CONFIG_SND_SOC_RK3328 is not set
CONFIG_SND_SOC_RL6231=m
-# CONFIG_SND_SOC_RT1308_SDW is not set
+CONFIG_SND_SOC_RT1308_SDW=m
# CONFIG_SND_SOC_RT5616 is not set
# CONFIG_SND_SOC_RT5631 is not set
CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_RT5682_SDW=m
-# CONFIG_SND_SOC_RT700_SDW is not set
-# CONFIG_SND_SOC_RT711_SDW is not set
-# CONFIG_SND_SOC_RT715_SDW is not set
+CONFIG_SND_SOC_RT700_SDW=m
+CONFIG_SND_SOC_RT711_SDW=m
+CONFIG_SND_SOC_RT715_SDW=m
# CONFIG_SND_SOC_SAMSUNG_ARIES_WM8994 is not set
CONFIG_SND_SOC_SAMSUNG_MIDAS_WM1811=m
# CONFIG_SND_SOC_SGTL5000 is not set
@@ -5490,6 +5585,7 @@ CONFIG_SND_SOC_SPDIF=m
# CONFIG_SND_SOC_STI_SAS is not set
# CONFIG_SND_SOC_TAS2552 is not set
CONFIG_SND_SOC_TAS2562=m
+CONFIG_SND_SOC_TAS2764=m
CONFIG_SND_SOC_TAS2770=m
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TAS571X is not set
@@ -5577,12 +5673,28 @@ CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SOUNDWIRE_CADENCE=m
# CONFIG_SOUNDWIRE_INTEL is not set
+# CONFIG_SOUNDWIRE_QCOM is not set
CONFIG_SOUNDWIRE=y
CONFIG_SPAPR_TCE_IOMMU=y
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM_VMEMMAP=y
-# CONFIG_SPEAKUP is not set
+CONFIG_SPEAKUP=m
+# CONFIG_SPEAKUP_SYNTH_ACNTPC is not set
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+# CONFIG_SPEAKUP_SYNTH_DECEXT is not set
+# CONFIG_SPEAKUP_SYNTH_DECPC is not set
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+# CONFIG_SPEAKUP_SYNTH_DTLK is not set
+# CONFIG_SPEAKUP_SYNTH_DUMMY is not set
+# CONFIG_SPEAKUP_SYNTH_KEYPC is not set
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_AMD is not set
# CONFIG_SPI_AXI_SPI_ENGINE is not set
@@ -5618,6 +5730,7 @@ CONFIG_SPI_MUX=m
# CONFIG_SPI_XCOMM is not set
# CONFIG_SPI_XILINX is not set
# CONFIG_SPI_ZYNQMP_GQSPI is not set
+# CONFIG_SPMI_HISI3670 is not set
# CONFIG_SPMI is not set
# CONFIG_SPS30 is not set
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
@@ -5656,6 +5769,7 @@ CONFIG_STACK_VALIDATION=y
CONFIG_STAGING_MEDIA=y
CONFIG_STAGING=y
CONFIG_STANDALONE=y
+# CONFIG_STATIC_CALL_SELFTEST is not set
# CONFIG_STATIC_KEYS_SELFTEST is not set
# CONFIG_STATIC_USERMODEHELPER is not set
CONFIG_STE10XP=m
@@ -5675,6 +5789,7 @@ CONFIG_ST_UVIS25_I2C=m
CONFIG_ST_UVIS25=m
CONFIG_ST_UVIS25_SPI=m
# CONFIG_SUN50I_DE2_BUS is not set
+# CONFIG_SUN50I_IOMMU is not set
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -5789,6 +5904,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_HEXDUMP is not set
# CONFIG_TEST_HMM is not set
# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_KASAN_MODULE is not set
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
CONFIG_TEST_LIST_SORT=y
@@ -5955,6 +6071,7 @@ CONFIG_TOUCHSCREEN_WACOM_W8001=m
# CONFIG_TOUCHSCREEN_WM97XX is not set
CONFIG_TOUCHSCREEN_ZET6223=m
CONFIG_TOUCHSCREEN_ZFORCE=m
+CONFIG_TOUCHSCREEN_ZINITIX=m
# CONFIG_TPL0102 is not set
CONFIG_TPM_KEY_PARSER=m
# CONFIG_TPS6105X is not set
@@ -6001,8 +6118,11 @@ CONFIG_TYPEC_HD3SS3220=m
CONFIG_TYPEC=m
CONFIG_TYPEC_MUX_PI3USB30532=m
CONFIG_TYPEC_NVIDIA_ALTMODE=m
+# CONFIG_TYPEC_QCOM_PMIC is not set
# CONFIG_TYPEC_RT1711H is not set
+CONFIG_TYPEC_STUSB160X=m
CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPCI_MAXIM=m
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
@@ -6054,6 +6174,7 @@ CONFIG_UNUSED_SYMBOLS=y
# CONFIG_UNWINDER_FRAME_POINTER is not set
CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
+# CONFIG_USB4_DEBUGFS_WRITE is not set
CONFIG_USB4_NET=m
CONFIG_USB4=y
CONFIG_USB_ACM=m
@@ -6101,6 +6222,7 @@ CONFIG_USB_EMI62=m
CONFIG_USB_EPSON2888=y
# CONFIG_USB_ETH is not set
CONFIG_USB_EZUSB_FX2=m
+# CONFIG_USB_FEW_INIT_RETRIES is not set
# CONFIG_USB_FOTG210_HCD is not set
CONFIG_USB_FTDI_ELAN=m
# CONFIG_USB_FUNCTIONFS is not set
@@ -6201,6 +6323,7 @@ CONFIG_USB_LD=m
CONFIG_USB_LEDS_TRIGGER_USBPORT=m
CONFIG_USB_LED_TRIG=y
CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LGM_PHY=m
# CONFIG_USB_LINK_LAYER_TEST is not set
CONFIG_USB_M5602=m
CONFIG_USB_MA901=m
@@ -6375,7 +6498,7 @@ CONFIG_USB_WDM=m
CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_HISTB is not set
-CONFIG_USB_XHCI_PCI_RENESAS=y
+CONFIG_USB_XHCI_PCI_RENESAS=m
# CONFIG_USB_XHCI_PLATFORM is not set
CONFIG_USB_XUSBATM=m
CONFIG_USB=y
@@ -6417,6 +6540,7 @@ CONFIG_VFIO_MDEV_DEVICE=m
CONFIG_VFIO_MDEV=m
# CONFIG_VFIO_NOIOMMU is not set
CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_ZDEV=y
CONFIG_VGA_ARB_MAX_GPUS=16
CONFIG_VGA_ARB=y
# CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT is not set
@@ -6556,6 +6680,7 @@ CONFIG_VIDEO_SOLO6X10=m
CONFIG_VIDEO_SR030PC30=m
CONFIG_VIDEO_STK1160_COMMON=m
CONFIG_VIDEO_STK1160=m
+# CONFIG_VIDEO_TEGRA_TPG is not set
CONFIG_VIDEO_TM6000_ALSA=m
CONFIG_VIDEO_TM6000_DVB=m
CONFIG_VIDEO_TM6000=m
@@ -6569,6 +6694,7 @@ CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_VIDEO_VS6624=m
# CONFIG_VIDEO_XILINX is not set
+# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIPERBOARD_ADC is not set
CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
@@ -6732,6 +6858,7 @@ CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_STATISTICS=y
CONFIG_XFRM_SUB_POLICY=y
+# CONFIG_XFRM_USER_COMPAT is not set
CONFIG_XFRM_USER=y
CONFIG_XFRM=y
# CONFIG_XFS_DEBUG is not set
@@ -6741,6 +6868,7 @@ CONFIG_XFS_ONLINE_SCRUB=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_QUOTA=y
# CONFIG_XFS_RT is not set
+CONFIG_XFS_SUPPORT_V4=y
CONFIG_XFS_WARN=y
# CONFIG_XIL_AXIS_FIFO is not set
# CONFIG_XILINX_AXI_EMAC is not set
@@ -6772,6 +6900,7 @@ CONFIG_YELLOWFIN=m
CONFIG_YENTA=m
CONFIG_Z3FOLD=y
CONFIG_ZBUD=y
+# CONFIG_ZCRYPT_DEBUG is not set
# CONFIG_ZD1211RW_DEBUG is not set
CONFIG_ZD1211RW=m
CONFIG_ZEROPLUS_FF=y
@@ -6806,4 +6935,5 @@ CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
# Select this config option to add support for the initrd= command
# This option determines the default init for the system if no init=
# warnings from C=1 sparse checker or -Wextra compilations. It has
+# You can set the size of pernuma CMA by specifying "cma_pernuma=size"
CONFIG_ZENIFY=y
diff --git a/SOURCES/kernel-ppc64le-fedora.config b/SOURCES/kernel-ppc64le-fedora.config
index 6ac8382..af930d6 100644
--- a/SOURCES/kernel-ppc64le-fedora.config
+++ b/SOURCES/kernel-ppc64le-fedora.config
@@ -1,5 +1,6 @@
# powerpc
# 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
+# beginning with "crc=". If the string "crc=0" is found, the
# CONFIG_60XX_WDT is not set
CONFIG_6LOWPAN_DEBUGFS=y
CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
@@ -38,6 +39,7 @@ CONFIG_ACENIC=m
CONFIG_ACPI_ALS=m
# CONFIG_ACPI_DEBUGGER is not set
# CONFIG_ACPI_DEBUG is not set
+# CONFIG_ACPI_DPTF is not set
CONFIG_ACPI_HMAT=y
# CONFIG_ACPI_NFIT is not set
CONFIG_ACPI_PCI_SLOT=y
@@ -127,6 +129,7 @@ CONFIG_ADUX1020=m
# CONFIG_ADXL345_SPI is not set
CONFIG_ADXL372_I2C=m
CONFIG_ADXL372_SPI=m
+CONFIG_ADXRS290=m
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -207,20 +210,25 @@ CONFIG_ARCH_RANDOM=y
# CONFIG_ARCH_S3C24XX is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_SPARX5 is not set
+# CONFIG_ARCH_VISCONTI is not set
# CONFIG_ARCNET is not set
CONFIG_ARM64_AMU_EXTN=y
CONFIG_ARM64_BTI=y
CONFIG_ARM64_E0PD=y
CONFIG_ARM64_ERRATUM_1319367=y
+CONFIG_ARM64_ERRATUM_1508412=y
CONFIG_ARM64_ERRATUM_1530923=y
CONFIG_ARM64_ERRATUM_1542419=y
CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_USE_LSE_ATOMICS=y
+# CONFIG_ARM_CMN is not set
CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y
CONFIG_ARM_SMCCC_SOC_ID=y
# CONFIG_ARM_SMC_WATCHDOG is not set
# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set
+# CONFIG_ARM_SMMU_V3_SVA is not set
# CONFIG_AS3935 is not set
+# CONFIG_AS73211 is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE=m
CONFIG_ASYNC_RAID6_TEST=m
@@ -244,9 +252,11 @@ CONFIG_ATH10K_SDIO=m
# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
+CONFIG_ATH11K_AHB=m
CONFIG_ATH11K_DEBUGFS=y
# CONFIG_ATH11K_DEBUG is not set
CONFIG_ATH11K=m
+CONFIG_ATH11K_PCI=m
# CONFIG_ATH11K_SPECTRAL is not set
# CONFIG_ATH11K_TRACING is not set
CONFIG_ATH5K_DEBUG=y
@@ -351,6 +361,7 @@ CONFIG_BACKLIGHT_ARCXCNN=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
# CONFIG_BACKLIGHT_GPIO is not set
+CONFIG_BACKLIGHT_KTD253=m
CONFIG_BACKLIGHT_LED=m
# CONFIG_BACKLIGHT_LM3630A is not set
# CONFIG_BACKLIGHT_LM3639 is not set
@@ -511,6 +522,8 @@ CONFIG_BPF_JIT=y
# CONFIG_BPF_KPROBE_OVERRIDE is not set
CONFIG_BPF_LIRC_MODE2=y
CONFIG_BPF_LSM=y
+CONFIG_BPF_PRELOAD_UMD=m
+CONFIG_BPF_PRELOAD=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -640,6 +653,7 @@ CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_ISOTP is not set
# CONFIG_CAN_J1939 is not set
# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
@@ -649,6 +663,7 @@ CONFIG_CAN_M_CAN=m
# CONFIG_CAN_M_CAN_PLATFORM is not set
# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
+# CONFIG_CAN_MCP251XFD is not set
# CONFIG_CAN_MCP251X is not set
# CONFIG_CAN_MSCAN is not set
CONFIG_CAN_PEAK_PCIEC=y
@@ -729,6 +744,7 @@ CONFIG_CHARGER_BD99954=m
# CONFIG_CHARGER_BQ24735 is not set
CONFIG_CHARGER_BQ2515X=m
# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_BQ25980 is not set
# CONFIG_CHARGER_CROS_USBPD is not set
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
# CONFIG_CHARGER_GPIO is not set
@@ -746,7 +762,8 @@ CONFIG_CHARLCD_BL_FLASH=y
# CONFIG_CHARLCD_BL_OFF is not set
# CONFIG_CHARLCD_BL_ON is not set
CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_CHELSIO_IPSEC_INLINE=y
+CONFIG_CHELSIO_INLINE_CRYPTO=y
+CONFIG_CHELSIO_IPSEC_INLINE=m
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -754,7 +771,7 @@ CONFIG_CHELSIO_T4_DCB=y
# CONFIG_CHELSIO_T4_FCOE is not set
CONFIG_CHELSIO_T4=m
CONFIG_CHELSIO_T4VF=m
-CONFIG_CHELSIO_TLS_DEVICE=y
+CONFIG_CHELSIO_TLS_DEVICE=m
CONFIG_CHR_DEV_SCH=m
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_ST=m
@@ -1004,7 +1021,9 @@ CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA3=m
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
+CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
CONFIG_CRYPTO_STATS=y
@@ -1014,7 +1033,9 @@ CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_USER_API_AEAD=y
+# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
CONFIG_CRYPTO_USER_API_HASH=y
+# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER=m
@@ -1026,6 +1047,7 @@ CONFIG_CRYPTO_XTS=y
CONFIG_CRYPTO_XXHASH=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ZSTD=m
+# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
CONFIG_CUSE=m
CONFIG_CW1200=m
CONFIG_CW1200_WLAN_SDIO=m
@@ -1156,6 +1178,7 @@ CONFIG_DMABUF_HEAPS=y
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
# CONFIG_DMA_FENCE_TRACE is not set
+# CONFIG_DMA_PERNUMA_CMA is not set
# CONFIG_DMARD06 is not set
# CONFIG_DMARD09 is not set
CONFIG_DMARD10=m
@@ -1204,6 +1227,7 @@ CONFIG_DP83869_PHY=m
# CONFIG_DP83TC811_PHY is not set
CONFIG_DPOT_DAC=m
# CONFIG_DPS310 is not set
+# CONFIG_DPTF_PCH_FIVR is not set
CONFIG_DRAGONRISE_FF=y
# CONFIG_DRBD_FAULT_INJECTION is not set
CONFIG_DRM_AMD_ACP=y
@@ -1211,6 +1235,7 @@ CONFIG_DRM_AMD_DC_DCN2_0=y
CONFIG_DRM_AMD_DC_DCN3_0=y
CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
CONFIG_DRM_AMD_DC_HDCP=y
+CONFIG_DRM_AMD_DC_SI=y
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMDGPU_CIK=y
# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
@@ -1223,6 +1248,7 @@ CONFIG_DRM_ANALOGIX_ANX78XX=m
CONFIG_DRM_AST=m
CONFIG_DRM_BOCHS=m
# CONFIG_DRM_CDNS_DSI is not set
+# CONFIG_DRM_CDNS_MHDP8546 is not set
CONFIG_DRM_CHRONTEL_CH7033=m
CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_SELFTEST is not set
@@ -1246,6 +1272,7 @@ CONFIG_DRM_I2C_SIL164=m
# CONFIG_DRM_KOMEDA is not set
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LONTIUM_LT9611 is not set
# CONFIG_DRM_LVDS_CODEC is not set
# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
@@ -1276,6 +1303,7 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m
# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_LVDS is not set
+CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m
# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
CONFIG_DRM_PANEL_NOVATEK_NT35510=m
# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
@@ -1331,9 +1359,11 @@ CONFIG_DRM_TIDSS=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TI_TPD12S015=m
+CONFIG_DRM_TOSHIBA_TC358762=m
CONFIG_DRM_TOSHIBA_TC358764=m
# CONFIG_DRM_TOSHIBA_TC358767 is not set
CONFIG_DRM_TOSHIBA_TC358768=m
+CONFIG_DRM_TOSHIBA_TC358775=m
CONFIG_DRM_UDL=m
# CONFIG_DRM_VBOXVIDEO is not set
CONFIG_DRM_VGEM=m
@@ -1437,6 +1467,7 @@ CONFIG_DW_DMAC_PCI=m
CONFIG_DW_EDMA=m
CONFIG_DW_EDMA_PCIE=m
CONFIG_DWMAC_IMX8=m
+CONFIG_DWMAC_INTEL_PLAT=m
# CONFIG_DW_WATCHDOG is not set
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DYNAMIC_FTRACE=y
@@ -1496,7 +1527,10 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
CONFIG_ETHTOOL_NETLINK=y
# CONFIG_EUROTECH_WDT is not set
-# CONFIG_EVM is not set
+# CONFIG_EVM_ADD_XATTRS is not set
+CONFIG_EVM_ATTR_FSUUID=y
+# CONFIG_EVM_LOAD_X509 is not set
+CONFIG_EVM=y
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
CONFIG_EXFAT_FS=m
# CONFIG_EXPERT is not set
@@ -1549,6 +1583,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
# CONFIG_FAT_DEFAULT_UTF8 is not set
CONFIG_FAT_FS=m
# CONFIG_FAULT_INJECTION is not set
+# CONFIG_FAULT_INJECTION_USERCOPY is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_ARMCLCD is not set
@@ -1683,6 +1718,7 @@ CONFIG_FTRACE=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_FUNCTION_TRACER=y
+CONFIG_FUSE_DAX=y
CONFIG_FUSE_FS=m
CONFIG_FUSION_CTL=m
CONFIG_FUSION_FC=m
@@ -1739,7 +1775,10 @@ CONFIG_GIGASET_CAPI=y
CONFIG_GIGASET_M101=m
CONFIG_GIGASET_M105=m
# CONFIG_GLOB_SELFTEST is not set
-# CONFIG_GNSS is not set
+CONFIG_GNSS=m
+CONFIG_GNSS_MTK_SERIAL=m
+CONFIG_GNSS_SIRF_SERIAL=m
+CONFIG_GNSS_UBX_SERIAL=m
# CONFIG_GOLDFISH is not set
# CONFIG_GOOGLE_FIRMWARE is not set
CONFIG_GP2AP002=m
@@ -1755,6 +1794,7 @@ CONFIG_GPIO_AGGREGATOR=m
# CONFIG_GPIO_BCM_XGS_IPROC is not set
CONFIG_GPIO_BD9571MWV=m
CONFIG_GPIO_CADENCE=m
+CONFIG_GPIO_CDEV_V1=y
# CONFIG_GPIO_DWAPB is not set
CONFIG_GPIO_EXAR=m
# CONFIG_GPIO_FTGPIO010 is not set
@@ -1775,6 +1815,7 @@ CONFIG_GPIO_MAX77650=m
# CONFIG_GPIO_MC33880 is not set
CONFIG_GPIO_MLXBF2=m
# CONFIG_GPIO_MOCKUP is not set
+CONFIG_GPIO_MXC=m
# CONFIG_GPIO_PCA953X_IRQ is not set
CONFIG_GPIO_PCA953X=m
CONFIG_GPIO_PCA9570=m
@@ -1816,6 +1857,7 @@ CONFIG_HAVE_BOOTMEM_INFO_NODE=y
# CONFIG_HCALL_STATS is not set
CONFIG_HD44780=m
# CONFIG_HDC100X is not set
+CONFIG_HDC2010=m
CONFIG_HEADERS_CHECK=y
CONFIG_HEADERS_INSTALL=y
CONFIG_HEADER_TEST=y
@@ -1930,6 +1972,7 @@ CONFIG_HID_U2FZERO=m
CONFIG_HID_UCLOGIC=m
CONFIG_HID_UDRAW_PS3=m
CONFIG_HID_VIEWSONIC=m
+CONFIG_HID_VIVALDI=m
CONFIG_HID_WACOM=m
CONFIG_HID_WALTOP=m
CONFIG_HID_WIIMOTE=m
@@ -1940,6 +1983,7 @@ CONFIG_HID_ZYDACRON=m
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_HIPPI is not set
# CONFIG_HISI_DMA is not set
+CONFIG_HISI_HIKEY_USB=m
# CONFIG_HIST_TRIGGERS_DEBUG is not set
CONFIG_HIST_TRIGGERS=y
CONFIG_HMC425=m
@@ -1994,6 +2038,7 @@ CONFIG_HW_RANDOM_PSERIES=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=y
+CONFIG_HW_RANDOM_XIPHERA=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK=y
# CONFIG_HX711 is not set
@@ -2040,6 +2085,7 @@ CONFIG_I2C_HID=m
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_ISCH is not set
CONFIG_I2C=m
+CONFIG_I2C_MLXBF=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MPC=m
# CONFIG_I2C_MUX_GPIO is not set
@@ -2068,6 +2114,7 @@ CONFIG_I2C_SIMTEC=m
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
CONFIG_I2C_SLAVE_EEPROM=m
+# CONFIG_I2C_SLAVE_TESTUNIT is not set
CONFIG_I2C_SLAVE=y
CONFIG_I2C_STUB=m
# CONFIG_I2C_TAOS_EVM is not set
@@ -2119,6 +2166,8 @@ CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IGC=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_DMAENGINE=m
+CONFIG_IIO_BUFFER_DMA=m
CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
@@ -2147,6 +2196,7 @@ CONFIG_IIO_SW_TRIGGER=m
# CONFIG_IIO_SYSFS_TRIGGER is not set
CONFIG_IIO_TIGHTLOOP_TRIGGER=m
CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_TRIGGERED_EVENT=m
CONFIG_IIO_TRIGGER=y
# CONFIG_IKCONFIG is not set
CONFIG_IKHEADERS=m
@@ -2154,9 +2204,10 @@ CONFIG_IMA_APPRAISE_BOOTPARAM=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_APPRAISE=y
-# CONFIG_IMA_ARCH_POLICY is not set
+CONFIG_IMA_ARCH_POLICY=y
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
+CONFIG_IMA_DEFAULT_HASH="sha256"
CONFIG_IMA_DEFAULT_HASH_SHA256=y
# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
@@ -2166,6 +2217,7 @@ CONFIG_IMA_LSM_RULES=y
CONFIG_IMA_MEASURE_PCR_IDX=10
CONFIG_IMA_NG_TEMPLATE=y
CONFIG_IMA_READ_POLICY=y
+CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT=y
# CONFIG_IMA_SIG_TEMPLATE is not set
# CONFIG_IMA_TEMPLATE is not set
# CONFIG_IMA_TRUSTED_KEYRING is not set
@@ -2185,6 +2237,7 @@ CONFIG_INET_ESPINTCP=y
CONFIG_INET_ESP=m
CONFIG_INET_ESP_OFFLOAD=m
CONFIG_INET_IPCOMP=m
+CONFIG_INET_MPTCP_DIAG=m
CONFIG_INET_RAW_DIAG=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_UDP_DIAG=m
@@ -2297,6 +2350,7 @@ CONFIG_INTEGRITY=y
# CONFIG_INTEL_IDMA64 is not set
CONFIG_INTEL_IDXD=m
# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
+# CONFIG_INTEL_MEI_VIRTIO is not set
# CONFIG_INTEL_SCU_PCI is not set
# CONFIG_INTEL_SCU_PLATFORM is not set
CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m
@@ -2559,6 +2613,7 @@ CONFIG_JFS_SECURITY=y
CONFIG_JME=m
CONFIG_JOLIET=y
CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADC=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
@@ -2575,23 +2630,23 @@ CONFIG_JOYSTICK_IFORCE=m
CONFIG_JOYSTICK_IFORCE_USB=m
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
-CONFIG_JOYSTICK_MAGELLAN=m
+# CONFIG_JOYSTICK_MAGELLAN is not set
CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_PXRC=m
CONFIG_JOYSTICK_SIDEWINDER=m
-CONFIG_JOYSTICK_SPACEBALL=m
-CONFIG_JOYSTICK_SPACEORB=m
-CONFIG_JOYSTICK_STINGER=m
+# CONFIG_JOYSTICK_SPACEBALL is not set
+# CONFIG_JOYSTICK_SPACEORB is not set
+# CONFIG_JOYSTICK_STINGER is not set
CONFIG_JOYSTICK_TMDC=m
CONFIG_JOYSTICK_TURBOGRAFX=m
-CONFIG_JOYSTICK_TWIDJOY=m
+# CONFIG_JOYSTICK_TWIDJOY is not set
CONFIG_JOYSTICK_WALKERA0701=m
-CONFIG_JOYSTICK_WARRIOR=m
+# CONFIG_JOYSTICK_WARRIOR is not set
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
CONFIG_JOYSTICK_XPAD=m
-CONFIG_JOYSTICK_ZHENHUA=m
+# CONFIG_JOYSTICK_ZHENHUA is not set
# CONFIG_JSA1212 is not set
# CONFIG_JUMP_LABEL_FEATURE_CHECKS is not set
CONFIG_JUMP_LABEL=y
@@ -2612,6 +2667,7 @@ CONFIG_KERNEL_HEADER_TEST=y
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_ZSTD is not set
CONFIG_KEXEC_FILE=y
+CONFIG_KEXEC_IMAGE_VERIFY_SIG=y
# CONFIG_KEXEC_SIG is not set
CONFIG_KEXEC=y
# CONFIG_KEYBOARD_ADC is not set
@@ -2649,6 +2705,7 @@ CONFIG_KEY_DH_OPERATIONS=y
CONFIG_KEY_NOTIFICATIONS=y
CONFIG_KEYS_REQUEST_CACHE=y
CONFIG_KEYS=y
+CONFIG_KGDB_HONOUR_BLOCKLIST=y
# CONFIG_KGDB_KDB is not set
CONFIG_KGDB_LOW_LEVEL_TRAP=y
CONFIG_KGDB_SERIAL_CONSOLE=y
@@ -2704,6 +2761,7 @@ CONFIG_LDISC_AUTOLOAD=y
CONFIG_LDM_PARTITION=y
# CONFIG_LEDS_AAT1290 is not set
CONFIG_LEDS_AN30259A=m
+# CONFIG_LEDS_ARIEL is not set
CONFIG_LEDS_AS3645A=m
# CONFIG_LEDS_AW2013 is not set
# CONFIG_LEDS_BCM6328 is not set
@@ -2730,6 +2788,7 @@ CONFIG_LEDS_LM3601X=m
CONFIG_LEDS_LM3692X=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
+CONFIG_LEDS_LP50XX=m
# CONFIG_LEDS_LP5521 is not set
# CONFIG_LEDS_LP5523 is not set
# CONFIG_LEDS_LP5562 is not set
@@ -3024,8 +3083,11 @@ CONFIG_MFD_CORE=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
+CONFIG_MFD_ENE_KB3930=m
# CONFIG_MFD_GATEWORKS_GSC is not set
# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_MFD_HI6421_SPMI is not set
+CONFIG_MFD_INTEL_M10_BMC=m
# CONFIG_MFD_INTEL_PMC_BXT is not set
# CONFIG_MFD_IQS62X is not set
# CONFIG_MFD_JANZ_CMODIO is not set
@@ -3065,6 +3127,7 @@ CONFIG_MFD_MAX77650=m
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SL28CPLD is not set
CONFIG_MFD_SM501_GPIO=y
CONFIG_MFD_SM501=m
# CONFIG_MFD_SMSC is not set
@@ -3102,6 +3165,7 @@ CONFIG_MFD_WL1273_CORE=m
# CONFIG_MFD_WM8994 is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
+# CONFIG_MHI_BUS_DEBUG is not set
CONFIG_MHI_BUS=m
# CONFIG_MICREL_KS8995MA is not set
CONFIG_MICREL_PHY=m
@@ -3350,6 +3414,7 @@ CONFIG_MUX_GPIO=m
CONFIG_MUX_MMIO=m
# CONFIG_MVIAC7 is not set
CONFIG_MVMDIO=m
+CONFIG_MVPP2_PTP=y
CONFIG_MWAVE=m
CONFIG_MWIFIEX=m
CONFIG_MWIFIEX_PCIE=m
@@ -3782,6 +3847,7 @@ CONFIG_NFS_V3=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
CONFIG_NFS_V4_1=y
+# CONFIG_NFS_V4_2_READ_PLUS is not set
CONFIG_NFS_V4_2=y
CONFIG_NFS_V4=m
CONFIG_NF_TABLES_ARP=y
@@ -4051,6 +4117,7 @@ CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT_HOST is not set
CONFIG_PCIE_ECRC=y
CONFIG_PCIE_EDR=y
+# CONFIG_PCIE_HISI_ERR is not set
# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set
# CONFIG_PCIE_MOBIVEIL is not set
# CONFIG_PCI_ENDPOINT is not set
@@ -4092,6 +4159,7 @@ CONFIG_PCMCIA_XIRC2PS=m
CONFIG_PCMCIA_XIRCOM=m
CONFIG_PCMCIA=y
CONFIG_PCNET32=m
+CONFIG_PCS_XPCS=m
CONFIG_PD6729=m
# CONFIG_PDA_POWER is not set
CONFIG_PDC_ADMA=m
@@ -4109,7 +4177,10 @@ CONFIG_PHY_CADENCE_SIERRA=m
CONFIG_PHY_CADENCE_TORRENT=m
# CONFIG_PHY_CPCAP_USB is not set
# CONFIG_PHY_FSL_IMX8MQ_USB is not set
+# CONFIG_PHY_HI3670_USB is not set
# CONFIG_PHY_INTEL_EMMC is not set
+# CONFIG_PHY_INTEL_KEEMBAY_EMMC is not set
+# CONFIG_PHY_INTEL_LGM_EMMC is not set
CONFIG_PHYLIB=y
CONFIG_PHYLINK=m
# CONFIG_PHY_MAPPHONE_MDM6600 is not set
@@ -4138,6 +4209,7 @@ CONFIG_PINCTRL_EMMITSBURG=m
# CONFIG_PINCTRL_JASPERLAKE is not set
# CONFIG_PINCTRL_LYNXPOINT is not set
# CONFIG_PINCTRL_MCP23S08 is not set
+# CONFIG_PINCTRL_MSM8226 is not set
# CONFIG_PINCTRL_MSM8976 is not set
# CONFIG_PINCTRL_OCELOT is not set
# CONFIG_PINCTRL_QCS404 is not set
@@ -4148,6 +4220,8 @@ CONFIG_PINCTRL_RK805=m
# CONFIG_PINCTRL_SM8250 is not set
# CONFIG_PINCTRL_STMFX is not set
# CONFIG_PINCTRL_SUN4I_A10 is not set
+# CONFIG_PINCTRL_SUN50I_A100 is not set
+# CONFIG_PINCTRL_SUN50I_A100_R is not set
# CONFIG_PINCTRL_SUN50I_A64 is not set
# CONFIG_PINCTRL_SUN50I_A64_R is not set
# CONFIG_PINCTRL_SUN50I_H5 is not set
@@ -4198,7 +4272,6 @@ CONFIG_POSIX_MQUEUE=y
# CONFIG_POWER7_CPU is not set
CONFIG_POWER8_CPU=y
# CONFIG_POWER9_CPU is not set
-# CONFIG_POWER_AVS is not set
CONFIG_POWERCAP=y
CONFIG_POWERNV_CPUFREQ=y
CONFIG_POWERNV_CPUIDLE=y
@@ -4245,6 +4318,8 @@ CONFIG_PPC_PSERIES=y
CONFIG_PPC_RADIX_MMU_DEFAULT=y
CONFIG_PPC_RADIX_MMU=y
CONFIG_PPC_RTAS_FILTER=y
+CONFIG_PPC_SECURE_BOOT=y
+CONFIG_PPC_SECVAR_SYSFS=y
CONFIG_PPC_SMLPAR=y
CONFIG_PPC_SPLPAR=y
CONFIG_PPC_SUBPAGE_PROT=y
@@ -4276,6 +4351,8 @@ CONFIG_PPTP=m
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PRESTERA=m
+CONFIG_PRESTERA_PCI=m
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_PRIME_NUMBERS is not set
CONFIG_PRINTER=m
@@ -4363,8 +4440,10 @@ CONFIG_QLCNIC_SRIOV=y
CONFIG_QLGE=m
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX6FS_FS is not set
-# CONFIG_QRTR is not set
+CONFIG_QRTR=m
CONFIG_QRTR_MHI=m
+CONFIG_QRTR_SMD=m
+CONFIG_QRTR_TUN=m
CONFIG_QSEMI_PHY=m
CONFIG_QTNFMAC_PCIE=m
# CONFIG_QUICC_ENGINE is not set
@@ -4421,6 +4500,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_PERF_TEST is not set
# CONFIG_RCU_REF_SCALE_TEST is not set
+# CONFIG_RCU_SCALE_TEST is not set
CONFIG_RCU_TORTURE_TEST=m
# CONFIG_RCU_TRACE is not set
CONFIG_RC_XBOX_DVD=m
@@ -4454,11 +4534,10 @@ CONFIG_REGULATOR_BD9571MWV=m
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR_FAN53555 is not set
# CONFIG_REGULATOR_FAN53880 is not set
-# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
# CONFIG_REGULATOR_GPIO is not set
# CONFIG_REGULATOR_ISL6271A is not set
# CONFIG_REGULATOR_ISL9305 is not set
-# CONFIG_REGULATOR is not set
# CONFIG_REGULATOR_LP3971 is not set
# CONFIG_REGULATOR_LP3972 is not set
# CONFIG_REGULATOR_LP872X is not set
@@ -4483,6 +4562,9 @@ CONFIG_REGULATOR_MP886X=m
# CONFIG_REGULATOR_PV88080 is not set
# CONFIG_REGULATOR_PV88090 is not set
# CONFIG_REGULATOR_PWM is not set
+# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set
+CONFIG_REGULATOR_RT4801=m
+CONFIG_REGULATOR_RTMV20=m
# CONFIG_REGULATOR_SLG51000 is not set
# CONFIG_REGULATOR_SY8106A is not set
# CONFIG_REGULATOR_SY8824X is not set
@@ -4497,6 +4579,7 @@ CONFIG_REGULATOR_MP886X=m
CONFIG_REGULATOR_VCTRL=m
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
# CONFIG_REGULATOR_VQMMC_IPQ4019 is not set
+CONFIG_REGULATOR=y
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_FS=m
CONFIG_REISERFS_FS_POSIX_ACL=y
@@ -4531,6 +4614,7 @@ CONFIG_RMI4_F11=y
CONFIG_RMI4_F12=y
CONFIG_RMI4_F30=y
CONFIG_RMI4_F34=y
+CONFIG_RMI4_F3A=y
# CONFIG_RMI4_F54 is not set
CONFIG_RMI4_F55=y
CONFIG_RMI4_I2C=m
@@ -4650,6 +4734,7 @@ CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_RV3028=m
CONFIG_RTC_DRV_RV3029C2=m
CONFIG_RTC_DRV_RV3029_HWMON=y
+CONFIG_RTC_DRV_RV3032=m
# CONFIG_RTC_DRV_RV8803 is not set
CONFIG_RTC_DRV_RX4581=m
# CONFIG_RTC_DRV_RX6110 is not set
@@ -4671,7 +4756,7 @@ CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_SYSFS=y
-# CONFIG_RTC_NVMEM is not set
+CONFIG_RTC_NVMEM=y
# CONFIG_RTC_SYSTOHC is not set
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_RTL8180=m
@@ -4742,6 +4827,7 @@ CONFIG_SCD30_CORE=m
CONFIG_SCD30_I2C=m
CONFIG_SCD30_SERIAL=m
# CONFIG_SC_DISPCC_7180 is not set
+# CONFIG_SCF_TORTURE_TEST is not set
# CONFIG_SC_GPUCC_7180 is not set
CONFIG_SCHED_AUTOGROUP=y
CONFIG_SCHED_DEBUG=y
@@ -4878,7 +4964,7 @@ CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0
CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_DISABLE=y
+# CONFIG_SECURITY_SELINUX_DISABLE is not set
CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
CONFIG_SECURITY_SELINUX=y
@@ -4898,6 +4984,7 @@ CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
# CONFIG_SENSORS_ADM1177 is not set
+CONFIG_SENSORS_ADM1266=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ADS7828=m
@@ -4948,6 +5035,7 @@ CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
# CONFIG_SENSORS_INSPUR_IPSPS is not set
+CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -5012,6 +5100,8 @@ CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_MLXREG_FAN=m
+CONFIG_SENSORS_MP2975=m
+CONFIG_SENSORS_MR75203=m
CONFIG_SENSORS_NCT6683=m
CONFIG_SENSORS_NCT6775=m
CONFIG_SENSORS_NCT7802=m
@@ -5178,6 +5268,7 @@ CONFIG_SLUB=y
CONFIG_SMARTJOYPLUS_FF=y
CONFIG_SMC_DIAG=m
CONFIG_SMC=m
+# CONFIG_SM_DISPCC_8250 is not set
# CONFIG_SM_FTL is not set
CONFIG_SMP=y
CONFIG_SMSC911X=m
@@ -5189,6 +5280,8 @@ CONFIG_SMS_SDIO_DRV=m
CONFIG_SMS_SIANO_MDTV=m
CONFIG_SMS_SIANO_RC=y
CONFIG_SMS_USB_DRV=m
+# CONFIG_SM_VIDEOCC_8150 is not set
+# CONFIG_SM_VIDEOCC_8250 is not set
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AD1889=m
@@ -5355,6 +5448,7 @@ CONFIG_SND_SOC_BD28623=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
+CONFIG_SND_SOC_CS4234=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -5390,16 +5484,17 @@ CONFIG_SND_SOC_HDAC_HDA=m
CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_IMG is not set
-# CONFIG_SND_SOC_IMX_AUDMIX is not set
# CONFIG_SND_SOC_IMX_AUDMUX is not set
# CONFIG_SND_SOC_IMX_ES8328 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
-CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
+# CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set
+# CONFIG_SND_SOC_INTEL_CATPT is not set
# CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH is not set
CONFIG_SND_SOC_INTEL_KEEMBAY=m
CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
# CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH is not set
-CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
+CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m
+# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set
# CONFIG_SND_SOC is not set
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
@@ -5435,14 +5530,14 @@ CONFIG_SND_SOC_PCM3060_SPI=m
# CONFIG_SND_SOC_PCM512x_SPI is not set
# CONFIG_SND_SOC_RK3328 is not set
CONFIG_SND_SOC_RL6231=m
-# CONFIG_SND_SOC_RT1308_SDW is not set
+CONFIG_SND_SOC_RT1308_SDW=m
# CONFIG_SND_SOC_RT5616 is not set
# CONFIG_SND_SOC_RT5631 is not set
CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_RT5682_SDW=m
-# CONFIG_SND_SOC_RT700_SDW is not set
-# CONFIG_SND_SOC_RT711_SDW is not set
-# CONFIG_SND_SOC_RT715_SDW is not set
+CONFIG_SND_SOC_RT700_SDW=m
+CONFIG_SND_SOC_RT711_SDW=m
+CONFIG_SND_SOC_RT715_SDW=m
# CONFIG_SND_SOC_SAMSUNG_ARIES_WM8994 is not set
CONFIG_SND_SOC_SAMSUNG_MIDAS_WM1811=m
# CONFIG_SND_SOC_SGTL5000 is not set
@@ -5468,6 +5563,7 @@ CONFIG_SND_SOC_SPDIF=m
# CONFIG_SND_SOC_STI_SAS is not set
# CONFIG_SND_SOC_TAS2552 is not set
CONFIG_SND_SOC_TAS2562=m
+CONFIG_SND_SOC_TAS2764=m
CONFIG_SND_SOC_TAS2770=m
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TAS571X is not set
@@ -5555,12 +5651,28 @@ CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SOUNDWIRE_CADENCE=m
# CONFIG_SOUNDWIRE_INTEL is not set
+# CONFIG_SOUNDWIRE_QCOM is not set
CONFIG_SOUNDWIRE=y
CONFIG_SPAPR_TCE_IOMMU=y
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM_VMEMMAP=y
-# CONFIG_SPEAKUP is not set
+CONFIG_SPEAKUP=m
+# CONFIG_SPEAKUP_SYNTH_ACNTPC is not set
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+# CONFIG_SPEAKUP_SYNTH_DECEXT is not set
+# CONFIG_SPEAKUP_SYNTH_DECPC is not set
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+# CONFIG_SPEAKUP_SYNTH_DTLK is not set
+# CONFIG_SPEAKUP_SYNTH_DUMMY is not set
+# CONFIG_SPEAKUP_SYNTH_KEYPC is not set
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_AMD is not set
# CONFIG_SPI_AXI_SPI_ENGINE is not set
@@ -5596,6 +5708,7 @@ CONFIG_SPI_MUX=m
# CONFIG_SPI_XCOMM is not set
# CONFIG_SPI_XILINX is not set
# CONFIG_SPI_ZYNQMP_GQSPI is not set
+# CONFIG_SPMI_HISI3670 is not set
# CONFIG_SPMI is not set
# CONFIG_SPS30 is not set
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
@@ -5634,6 +5747,7 @@ CONFIG_STACK_VALIDATION=y
CONFIG_STAGING_MEDIA=y
CONFIG_STAGING=y
CONFIG_STANDALONE=y
+# CONFIG_STATIC_CALL_SELFTEST is not set
# CONFIG_STATIC_KEYS_SELFTEST is not set
# CONFIG_STATIC_USERMODEHELPER is not set
CONFIG_STE10XP=m
@@ -5653,6 +5767,7 @@ CONFIG_ST_UVIS25_I2C=m
CONFIG_ST_UVIS25=m
CONFIG_ST_UVIS25_SPI=m
# CONFIG_SUN50I_DE2_BUS is not set
+# CONFIG_SUN50I_IOMMU is not set
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -5767,6 +5882,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_HEXDUMP is not set
# CONFIG_TEST_HMM is not set
# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_KASAN_MODULE is not set
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_LIST_SORT is not set
@@ -5933,6 +6049,7 @@ CONFIG_TOUCHSCREEN_WACOM_W8001=m
# CONFIG_TOUCHSCREEN_WM97XX is not set
CONFIG_TOUCHSCREEN_ZET6223=m
CONFIG_TOUCHSCREEN_ZFORCE=m
+CONFIG_TOUCHSCREEN_ZINITIX=m
# CONFIG_TPL0102 is not set
CONFIG_TPM_KEY_PARSER=m
# CONFIG_TPS6105X is not set
@@ -5979,8 +6096,11 @@ CONFIG_TYPEC_HD3SS3220=m
CONFIG_TYPEC=m
CONFIG_TYPEC_MUX_PI3USB30532=m
CONFIG_TYPEC_NVIDIA_ALTMODE=m
+# CONFIG_TYPEC_QCOM_PMIC is not set
# CONFIG_TYPEC_RT1711H is not set
+CONFIG_TYPEC_STUSB160X=m
CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPCI_MAXIM=m
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
@@ -6032,6 +6152,7 @@ CONFIG_UNUSED_SYMBOLS=y
# CONFIG_UNWINDER_FRAME_POINTER is not set
CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
+# CONFIG_USB4_DEBUGFS_WRITE is not set
CONFIG_USB4_NET=m
CONFIG_USB4=y
CONFIG_USB_ACM=m
@@ -6079,6 +6200,7 @@ CONFIG_USB_EMI62=m
CONFIG_USB_EPSON2888=y
# CONFIG_USB_ETH is not set
CONFIG_USB_EZUSB_FX2=m
+# CONFIG_USB_FEW_INIT_RETRIES is not set
# CONFIG_USB_FOTG210_HCD is not set
CONFIG_USB_FTDI_ELAN=m
# CONFIG_USB_FUNCTIONFS is not set
@@ -6179,6 +6301,7 @@ CONFIG_USB_LD=m
CONFIG_USB_LEDS_TRIGGER_USBPORT=m
CONFIG_USB_LED_TRIG=y
CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LGM_PHY=m
# CONFIG_USB_LINK_LAYER_TEST is not set
CONFIG_USB_M5602=m
CONFIG_USB_MA901=m
@@ -6353,7 +6476,7 @@ CONFIG_USB_WDM=m
CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_HISTB is not set
-CONFIG_USB_XHCI_PCI_RENESAS=y
+CONFIG_USB_XHCI_PCI_RENESAS=m
# CONFIG_USB_XHCI_PLATFORM is not set
CONFIG_USB_XUSBATM=m
CONFIG_USB=y
@@ -6395,6 +6518,7 @@ CONFIG_VFIO_MDEV_DEVICE=m
CONFIG_VFIO_MDEV=m
# CONFIG_VFIO_NOIOMMU is not set
CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_ZDEV=y
CONFIG_VGA_ARB_MAX_GPUS=16
CONFIG_VGA_ARB=y
# CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT is not set
@@ -6534,6 +6658,7 @@ CONFIG_VIDEO_SOLO6X10=m
CONFIG_VIDEO_SR030PC30=m
CONFIG_VIDEO_STK1160_COMMON=m
CONFIG_VIDEO_STK1160=m
+# CONFIG_VIDEO_TEGRA_TPG is not set
CONFIG_VIDEO_TM6000_ALSA=m
CONFIG_VIDEO_TM6000_DVB=m
CONFIG_VIDEO_TM6000=m
@@ -6547,6 +6672,7 @@ CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_VIDEO_VS6624=m
# CONFIG_VIDEO_XILINX is not set
+# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIPERBOARD_ADC is not set
CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
@@ -6709,6 +6835,7 @@ CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_STATISTICS=y
CONFIG_XFRM_SUB_POLICY=y
+# CONFIG_XFRM_USER_COMPAT is not set
CONFIG_XFRM_USER=y
CONFIG_XFRM=y
# CONFIG_XFS_DEBUG is not set
@@ -6718,6 +6845,7 @@ CONFIG_XFS_ONLINE_SCRUB=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_QUOTA=y
# CONFIG_XFS_RT is not set
+CONFIG_XFS_SUPPORT_V4=y
# CONFIG_XFS_WARN is not set
# CONFIG_XIL_AXIS_FIFO is not set
# CONFIG_XILINX_AXI_EMAC is not set
@@ -6749,6 +6877,7 @@ CONFIG_YELLOWFIN=m
CONFIG_YENTA=m
CONFIG_Z3FOLD=y
CONFIG_ZBUD=y
+# CONFIG_ZCRYPT_DEBUG is not set
# CONFIG_ZD1211RW_DEBUG is not set
CONFIG_ZD1211RW=m
CONFIG_ZEROPLUS_FF=y
@@ -6783,4 +6912,5 @@ CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
# Select this config option to add support for the initrd= command
# This option determines the default init for the system if no init=
# warnings from C=1 sparse checker or -Wextra compilations. It has
+# You can set the size of pernuma CMA by specifying "cma_pernuma=size"
CONFIG_ZENIFY=y
diff --git a/SOURCES/kernel-s390x-debug-fedora.config b/SOURCES/kernel-s390x-debug-fedora.config
index 389479a..3949919 100644
--- a/SOURCES/kernel-s390x-debug-fedora.config
+++ b/SOURCES/kernel-s390x-debug-fedora.config
@@ -1,5 +1,6 @@
# s390
# 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
+# beginning with "crc=". If the string "crc=0" is found, the
# CONFIG_60XX_WDT is not set
CONFIG_64BIT=y
CONFIG_6LOWPAN_DEBUGFS=y
@@ -39,6 +40,7 @@ CONFIG_ACENIC=m
CONFIG_ACPI_ALS=m
# CONFIG_ACPI_DEBUGGER is not set
CONFIG_ACPI_DEBUG=y
+# CONFIG_ACPI_DPTF is not set
CONFIG_ACPI_HMAT=y
# CONFIG_ACPI_NFIT is not set
CONFIG_ACPI_PCI_SLOT=y
@@ -128,6 +130,7 @@ CONFIG_ADUX1020=m
# CONFIG_ADXL345_SPI is not set
CONFIG_ADXL372_I2C=m
CONFIG_ADXL372_SPI=m
+CONFIG_ADXRS290=m
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -211,21 +214,26 @@ CONFIG_ARCH_RANDOM=y
# CONFIG_ARCH_S3C24XX is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_SPARX5 is not set
+# CONFIG_ARCH_VISCONTI is not set
# CONFIG_ARCNET is not set
CONFIG_ARM64_AMU_EXTN=y
CONFIG_ARM64_BTI=y
CONFIG_ARM64_E0PD=y
CONFIG_ARM64_ERRATUM_1319367=y
+CONFIG_ARM64_ERRATUM_1508412=y
CONFIG_ARM64_ERRATUM_1530923=y
CONFIG_ARM64_ERRATUM_1542419=y
CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_USE_LSE_ATOMICS=y
+# CONFIG_ARM_CMN is not set
CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y
CONFIG_ARM_PTDUMP_DEBUGFS=y
CONFIG_ARM_SMCCC_SOC_ID=y
# CONFIG_ARM_SMC_WATCHDOG is not set
# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set
+# CONFIG_ARM_SMMU_V3_SVA is not set
# CONFIG_AS3935 is not set
+# CONFIG_AS73211 is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE=m
CONFIG_ASYNC_RAID6_TEST=m
@@ -249,9 +257,11 @@ CONFIG_ATH10K_SDIO=m
# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
+CONFIG_ATH11K_AHB=m
CONFIG_ATH11K_DEBUGFS=y
# CONFIG_ATH11K_DEBUG is not set
CONFIG_ATH11K=m
+CONFIG_ATH11K_PCI=m
# CONFIG_ATH11K_SPECTRAL is not set
# CONFIG_ATH11K_TRACING is not set
CONFIG_ATH5K_DEBUG=y
@@ -356,6 +366,7 @@ CONFIG_BACKLIGHT_ARCXCNN=m
CONFIG_BACKLIGHT_CLASS_DEVICE=m
# CONFIG_BACKLIGHT_GENERIC is not set
# CONFIG_BACKLIGHT_GPIO is not set
+CONFIG_BACKLIGHT_KTD253=m
CONFIG_BACKLIGHT_LED=m
# CONFIG_BACKLIGHT_LM3630A is not set
# CONFIG_BACKLIGHT_LM3639 is not set
@@ -516,6 +527,8 @@ CONFIG_BPF_JIT=y
CONFIG_BPF_KPROBE_OVERRIDE=y
CONFIG_BPF_LIRC_MODE2=y
CONFIG_BPF_LSM=y
+CONFIG_BPF_PRELOAD_UMD=m
+CONFIG_BPF_PRELOAD=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -646,6 +659,7 @@ CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
# CONFIG_CAN is not set
+# CONFIG_CAN_ISOTP is not set
# CONFIG_CAN_J1939 is not set
# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
@@ -654,6 +668,7 @@ CONFIG_CAN_M_CAN=m
# CONFIG_CAN_M_CAN_PLATFORM is not set
# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
+# CONFIG_CAN_MCP251XFD is not set
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
CONFIG_CAN_PEAK_PCIEFD=m
@@ -736,6 +751,7 @@ CONFIG_CHARGER_BD99954=m
# CONFIG_CHARGER_BQ24735 is not set
CONFIG_CHARGER_BQ2515X=m
# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_BQ25980 is not set
# CONFIG_CHARGER_CROS_USBPD is not set
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
# CONFIG_CHARGER_GPIO is not set
@@ -753,7 +769,8 @@ CONFIG_CHARLCD_BL_FLASH=y
# CONFIG_CHARLCD_BL_OFF is not set
# CONFIG_CHARLCD_BL_ON is not set
CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_CHELSIO_IPSEC_INLINE=y
+CONFIG_CHELSIO_INLINE_CRYPTO=y
+CONFIG_CHELSIO_IPSEC_INLINE=m
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -761,7 +778,7 @@ CONFIG_CHELSIO_T4_DCB=y
# CONFIG_CHELSIO_T4_FCOE is not set
CONFIG_CHELSIO_T4=m
CONFIG_CHELSIO_T4VF=m
-CONFIG_CHELSIO_TLS_DEVICE=y
+CONFIG_CHELSIO_TLS_DEVICE=m
CONFIG_CHR_DEV_SCH=m
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_ST=m
@@ -1011,7 +1028,9 @@ CONFIG_CRYPTO_SHA3_256_S390=m
CONFIG_CRYPTO_SHA3_512_S390=m
CONFIG_CRYPTO_SHA3=m
CONFIG_CRYPTO_SHA512_S390=m
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
+CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
CONFIG_CRYPTO_STATS=y
@@ -1021,7 +1040,9 @@ CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_USER_API_AEAD=y
+# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
CONFIG_CRYPTO_USER_API_HASH=y
+# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER=m
@@ -1032,6 +1053,7 @@ CONFIG_CRYPTO_XTS=y
CONFIG_CRYPTO_XXHASH=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ZSTD=m
+# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
CONFIG_CTCM=m
CONFIG_CUSE=m
CONFIG_CW1200=m
@@ -1172,6 +1194,7 @@ CONFIG_DMADEVICES_DEBUG=y
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
# CONFIG_DMA_FENCE_TRACE is not set
+# CONFIG_DMA_PERNUMA_CMA is not set
# CONFIG_DMARD06 is not set
# CONFIG_DMARD09 is not set
CONFIG_DMARD10=m
@@ -1220,6 +1243,7 @@ CONFIG_DP83869_PHY=m
# CONFIG_DP83TC811_PHY is not set
CONFIG_DPOT_DAC=m
# CONFIG_DPS310 is not set
+# CONFIG_DPTF_PCH_FIVR is not set
CONFIG_DRAGONRISE_FF=y
CONFIG_DRBD_FAULT_INJECTION=y
CONFIG_DRM_AMD_ACP=y
@@ -1227,6 +1251,7 @@ CONFIG_DRM_AMD_DC_DCN2_0=y
CONFIG_DRM_AMD_DC_DCN3_0=y
CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
CONFIG_DRM_AMD_DC_HDCP=y
+CONFIG_DRM_AMD_DC_SI=y
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMDGPU_CIK=y
# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
@@ -1239,6 +1264,7 @@ CONFIG_DRM_ANALOGIX_ANX78XX=m
# CONFIG_DRM_AST is not set
# CONFIG_DRM_BOCHS is not set
# CONFIG_DRM_CDNS_DSI is not set
+# CONFIG_DRM_CDNS_MHDP8546 is not set
CONFIG_DRM_CHRONTEL_CH7033=m
# CONFIG_DRM_CIRRUS_QEMU is not set
# CONFIG_DRM_DEBUG_SELFTEST is not set
@@ -1262,6 +1288,7 @@ CONFIG_DRM_I2C_ADV7533=y
# CONFIG_DRM_KOMEDA is not set
# CONFIG_DRM_LEGACY is not set
# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
+# CONFIG_DRM_LONTIUM_LT9611 is not set
# CONFIG_DRM_LVDS_CODEC is not set
# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
@@ -1292,6 +1319,7 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m
# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_LVDS is not set
+CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m
# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
CONFIG_DRM_PANEL_NOVATEK_NT35510=m
# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
@@ -1347,9 +1375,11 @@ CONFIG_DRM_TIDSS=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TI_TPD12S015=m
+CONFIG_DRM_TOSHIBA_TC358762=m
CONFIG_DRM_TOSHIBA_TC358764=m
# CONFIG_DRM_TOSHIBA_TC358767 is not set
CONFIG_DRM_TOSHIBA_TC358768=m
+CONFIG_DRM_TOSHIBA_TC358775=m
CONFIG_DRM_UDL=m
# CONFIG_DRM_VBOXVIDEO is not set
CONFIG_DRM_VGEM=m
@@ -1452,6 +1482,7 @@ CONFIG_DW_DMAC_PCI=m
CONFIG_DW_EDMA=m
CONFIG_DW_EDMA_PCIE=m
CONFIG_DWMAC_IMX8=m
+CONFIG_DWMAC_INTEL_PLAT=m
# CONFIG_DW_WATCHDOG is not set
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DYNAMIC_FTRACE=y
@@ -1512,7 +1543,10 @@ CONFIG_ETHERNET=y
# CONFIG_ETHOC is not set
CONFIG_ETHTOOL_NETLINK=y
# CONFIG_EUROTECH_WDT is not set
-# CONFIG_EVM is not set
+# CONFIG_EVM_ADD_XATTRS is not set
+CONFIG_EVM_ATTR_FSUUID=y
+# CONFIG_EVM_LOAD_X509 is not set
+CONFIG_EVM=y
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
CONFIG_EXFAT_FS=m
# CONFIG_EXPERT is not set
@@ -1570,6 +1604,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
CONFIG_FAT_FS=m
CONFIG_FAULT_INJECTION_DEBUG_FS=y
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
+# CONFIG_FAULT_INJECTION_USERCOPY is not set
CONFIG_FAULT_INJECTION=y
# CONFIG_FB_3DFX is not set
# CONFIG_FB_ARK is not set
@@ -1698,6 +1733,7 @@ CONFIG_FTRACE=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_FUNCTION_TRACER=y
+CONFIG_FUSE_DAX=y
CONFIG_FUSE_FS=m
CONFIG_FUSION_CTL=m
CONFIG_FUSION_FC=m
@@ -1754,7 +1790,10 @@ CONFIG_GIGASET_CAPI=y
CONFIG_GIGASET_M101=m
CONFIG_GIGASET_M105=m
# CONFIG_GLOB_SELFTEST is not set
-# CONFIG_GNSS is not set
+CONFIG_GNSS=m
+CONFIG_GNSS_MTK_SERIAL=m
+CONFIG_GNSS_SIRF_SERIAL=m
+CONFIG_GNSS_UBX_SERIAL=m
# CONFIG_GOLDFISH is not set
# CONFIG_GOOGLE_FIRMWARE is not set
CONFIG_GP2AP002=m
@@ -1769,6 +1808,7 @@ CONFIG_GPIO_AGGREGATOR=m
# CONFIG_GPIO_BCM_XGS_IPROC is not set
CONFIG_GPIO_BD9571MWV=m
CONFIG_GPIO_CADENCE=m
+CONFIG_GPIO_CDEV_V1=y
# CONFIG_GPIO_DWAPB is not set
CONFIG_GPIO_EXAR=m
# CONFIG_GPIO_FTGPIO010 is not set
@@ -1789,6 +1829,7 @@ CONFIG_GPIO_MAX77650=m
# CONFIG_GPIO_MC33880 is not set
CONFIG_GPIO_MLXBF2=m
# CONFIG_GPIO_MOCKUP is not set
+CONFIG_GPIO_MXC=m
# CONFIG_GPIO_PCA953X_IRQ is not set
CONFIG_GPIO_PCA953X=m
CONFIG_GPIO_PCA9570=m
@@ -1827,6 +1868,7 @@ CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HD44780=m
# CONFIG_HDC100X is not set
+CONFIG_HDC2010=m
CONFIG_HEADERS_CHECK=y
CONFIG_HEADERS_INSTALL=y
CONFIG_HEADER_TEST=y
@@ -1942,6 +1984,7 @@ CONFIG_HID_U2FZERO=m
CONFIG_HID_UCLOGIC=m
CONFIG_HID_UDRAW_PS3=m
CONFIG_HID_VIEWSONIC=m
+CONFIG_HID_VIVALDI=m
CONFIG_HID_WACOM=m
CONFIG_HID_WALTOP=m
CONFIG_HID_WIIMOTE=m
@@ -1951,6 +1994,7 @@ CONFIG_HID_ZYDACRON=m
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_HIPPI is not set
# CONFIG_HISI_DMA is not set
+CONFIG_HISI_HIKEY_USB=m
# CONFIG_HIST_TRIGGERS_DEBUG is not set
CONFIG_HIST_TRIGGERS=y
CONFIG_HMC425=m
@@ -1995,6 +2039,7 @@ CONFIG_HW_RANDOM_S390=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=y
+CONFIG_HW_RANDOM_XIPHERA=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK=y
# CONFIG_HX711 is not set
@@ -2040,6 +2085,7 @@ CONFIG_I2C_DIOLAN_U2C=m
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_ISCH is not set
CONFIG_I2C=m
+CONFIG_I2C_MLXBF=m
CONFIG_I2C_MLXCPLD=m
# CONFIG_I2C_MUX_GPIO is not set
CONFIG_I2C_MUX_GPMUX=m
@@ -2067,6 +2113,7 @@ CONFIG_I2C_SI470X=m
# CONFIG_I2C_SIS96X is not set
CONFIG_I2C_SLAVE_EEPROM=m
# CONFIG_I2C_SLAVE is not set
+# CONFIG_I2C_SLAVE_TESTUNIT is not set
# CONFIG_I2C_SMBUS is not set
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_TAOS_EVM is not set
@@ -2115,6 +2162,8 @@ CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IGC=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_DMAENGINE=m
+CONFIG_IIO_BUFFER_DMA=m
CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
@@ -2143,6 +2192,7 @@ CONFIG_IIO_SW_TRIGGER=m
# CONFIG_IIO_SYSFS_TRIGGER is not set
CONFIG_IIO_TIGHTLOOP_TRIGGER=m
CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_TRIGGERED_EVENT=m
CONFIG_IIO_TRIGGER=y
# CONFIG_IKCONFIG is not set
CONFIG_IKHEADERS=m
@@ -2153,6 +2203,7 @@ CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
+CONFIG_IMA_DEFAULT_HASH="sha256"
CONFIG_IMA_DEFAULT_HASH_SHA256=y
# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
@@ -2181,6 +2232,7 @@ CONFIG_INET_ESPINTCP=y
CONFIG_INET_ESP=m
CONFIG_INET_ESP_OFFLOAD=m
CONFIG_INET_IPCOMP=m
+CONFIG_INET_MPTCP_DIAG=m
CONFIG_INET_RAW_DIAG=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_UDP_DIAG=m
@@ -2293,6 +2345,7 @@ CONFIG_INTEGRITY=y
# CONFIG_INTEL_IDMA64 is not set
CONFIG_INTEL_IDXD=m
# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
+# CONFIG_INTEL_MEI_VIRTIO is not set
# CONFIG_INTEL_SCU_PCI is not set
# CONFIG_INTEL_SCU_PLATFORM is not set
CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m
@@ -2554,6 +2607,7 @@ CONFIG_JFS_SECURITY=y
# CONFIG_JME is not set
CONFIG_JOLIET=y
CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADC=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
@@ -2570,23 +2624,23 @@ CONFIG_JOYSTICK_IFORCE=m
CONFIG_JOYSTICK_IFORCE_USB=m
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
-CONFIG_JOYSTICK_MAGELLAN=m
+# CONFIG_JOYSTICK_MAGELLAN is not set
CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_PXRC=m
CONFIG_JOYSTICK_SIDEWINDER=m
-CONFIG_JOYSTICK_SPACEBALL=m
-CONFIG_JOYSTICK_SPACEORB=m
-CONFIG_JOYSTICK_STINGER=m
+# CONFIG_JOYSTICK_SPACEBALL is not set
+# CONFIG_JOYSTICK_SPACEORB is not set
+# CONFIG_JOYSTICK_STINGER is not set
CONFIG_JOYSTICK_TMDC=m
CONFIG_JOYSTICK_TURBOGRAFX=m
-CONFIG_JOYSTICK_TWIDJOY=m
+# CONFIG_JOYSTICK_TWIDJOY is not set
CONFIG_JOYSTICK_WALKERA0701=m
-CONFIG_JOYSTICK_WARRIOR=m
+# CONFIG_JOYSTICK_WARRIOR is not set
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
CONFIG_JOYSTICK_XPAD=m
-CONFIG_JOYSTICK_ZHENHUA=m
+# CONFIG_JOYSTICK_ZHENHUA is not set
# CONFIG_JSA1212 is not set
CONFIG_JUMP_LABEL=y
CONFIG_KALLSYMS_ALL=y
@@ -2609,6 +2663,7 @@ CONFIG_KERNEL_HEADER_TEST=y
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_ZSTD is not set
CONFIG_KEXEC_FILE=y
+CONFIG_KEXEC_IMAGE_VERIFY_SIG=y
CONFIG_KEXEC_SIG=y
CONFIG_KEXEC=y
# CONFIG_KEYBOARD_ADC is not set
@@ -2646,6 +2701,7 @@ CONFIG_KEY_DH_OPERATIONS=y
CONFIG_KEY_NOTIFICATIONS=y
CONFIG_KEYS_REQUEST_CACHE=y
CONFIG_KEYS=y
+CONFIG_KGDB_HONOUR_BLOCKLIST=y
CONFIG_KGDB_KDB=y
CONFIG_KGDB_LOW_LEVEL_TRAP=y
CONFIG_KGDB_SERIAL_CONSOLE=y
@@ -2698,6 +2754,7 @@ CONFIG_LDISC_AUTOLOAD=y
CONFIG_LDM_PARTITION=y
# CONFIG_LEDS_AAT1290 is not set
CONFIG_LEDS_AN30259A=m
+# CONFIG_LEDS_ARIEL is not set
CONFIG_LEDS_AS3645A=m
# CONFIG_LEDS_AW2013 is not set
# CONFIG_LEDS_BCM6328 is not set
@@ -2724,6 +2781,7 @@ CONFIG_LEDS_LM3601X=m
CONFIG_LEDS_LM3692X=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
+CONFIG_LEDS_LP50XX=m
# CONFIG_LEDS_LP5521 is not set
# CONFIG_LEDS_LP5523 is not set
# CONFIG_LEDS_LP5562 is not set
@@ -3018,8 +3076,11 @@ CONFIG_MFD_CORE=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
+CONFIG_MFD_ENE_KB3930=m
# CONFIG_MFD_GATEWORKS_GSC is not set
# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_MFD_HI6421_SPMI is not set
+CONFIG_MFD_INTEL_M10_BMC=m
# CONFIG_MFD_INTEL_PMC_BXT is not set
# CONFIG_MFD_IQS62X is not set
# CONFIG_MFD_JANZ_CMODIO is not set
@@ -3059,6 +3120,7 @@ CONFIG_MFD_MAX77650=m
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SL28CPLD is not set
CONFIG_MFD_SM501_GPIO=y
# CONFIG_MFD_SM501 is not set
# CONFIG_MFD_SMSC is not set
@@ -3096,6 +3158,7 @@ CONFIG_MFD_SYSCON=y
# CONFIG_MFD_WM8994 is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
+# CONFIG_MHI_BUS_DEBUG is not set
CONFIG_MHI_BUS=m
# CONFIG_MICREL_KS8995MA is not set
CONFIG_MICREL_PHY=m
@@ -3341,6 +3404,7 @@ CONFIG_MUX_GPIO=m
CONFIG_MUX_MMIO=m
# CONFIG_MVIAC7 is not set
CONFIG_MVMDIO=m
+CONFIG_MVPP2_PTP=y
CONFIG_MWAVE=m
CONFIG_MWIFIEX=m
CONFIG_MWIFIEX_PCIE=m
@@ -3773,6 +3837,7 @@ CONFIG_NFS_V3=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
CONFIG_NFS_V4_1=y
+# CONFIG_NFS_V4_2_READ_PLUS is not set
CONFIG_NFS_V4_2=y
CONFIG_NFS_V4=m
CONFIG_NF_TABLES_ARP=y
@@ -4035,6 +4100,7 @@ CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT_HOST is not set
CONFIG_PCIE_ECRC=y
CONFIG_PCIE_EDR=y
+# CONFIG_PCIE_HISI_ERR is not set
# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set
# CONFIG_PCIE_MOBIVEIL is not set
# CONFIG_PCI_ENDPOINT is not set
@@ -4077,6 +4143,7 @@ CONFIG_PCMCIA_SMC91C92=m
CONFIG_PCMCIA_XIRC2PS=m
CONFIG_PCMCIA_XIRCOM=m
CONFIG_PCNET32=m
+CONFIG_PCS_XPCS=m
CONFIG_PD6729=m
# CONFIG_PDA_POWER is not set
CONFIG_PDC_ADMA=m
@@ -4095,7 +4162,10 @@ CONFIG_PHY_CADENCE_SIERRA=m
CONFIG_PHY_CADENCE_TORRENT=m
# CONFIG_PHY_CPCAP_USB is not set
# CONFIG_PHY_FSL_IMX8MQ_USB is not set
+# CONFIG_PHY_HI3670_USB is not set
# CONFIG_PHY_INTEL_EMMC is not set
+# CONFIG_PHY_INTEL_KEEMBAY_EMMC is not set
+# CONFIG_PHY_INTEL_LGM_EMMC is not set
CONFIG_PHYLIB=y
CONFIG_PHYLINK=m
# CONFIG_PHY_MAPPHONE_MDM6600 is not set
@@ -4124,6 +4194,7 @@ CONFIG_PINCTRL_EMMITSBURG=m
# CONFIG_PINCTRL_JASPERLAKE is not set
# CONFIG_PINCTRL_LYNXPOINT is not set
# CONFIG_PINCTRL_MCP23S08 is not set
+# CONFIG_PINCTRL_MSM8226 is not set
# CONFIG_PINCTRL_MSM8976 is not set
# CONFIG_PINCTRL_OCELOT is not set
# CONFIG_PINCTRL_QCS404 is not set
@@ -4134,6 +4205,8 @@ CONFIG_PINCTRL_RK805=m
# CONFIG_PINCTRL_SM8250 is not set
# CONFIG_PINCTRL_STMFX is not set
# CONFIG_PINCTRL_SUN4I_A10 is not set
+# CONFIG_PINCTRL_SUN50I_A100 is not set
+# CONFIG_PINCTRL_SUN50I_A100_R is not set
# CONFIG_PINCTRL_SUN50I_A64 is not set
# CONFIG_PINCTRL_SUN50I_A64_R is not set
# CONFIG_PINCTRL_SUN50I_H5 is not set
@@ -4185,7 +4258,6 @@ CONFIG_POSIX_MQUEUE=y
# CONFIG_POWER7_CPU is not set
# CONFIG_POWER8_CPU is not set
# CONFIG_POWER9_CPU is not set
-# CONFIG_POWER_AVS is not set
CONFIG_POWERCAP=y
# CONFIG_POWER_RESET_BRCMKONA is not set
# CONFIG_POWER_RESET_BRCMSTB is not set
@@ -4202,6 +4274,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_PPC_PROT_SAO_LPAR is not set
# CONFIG_PPC_PTDUMP is not set
# CONFIG_PPC_QUEUED_SPINLOCKS is not set
+CONFIG_PPC_RTAS_FILTER=y
CONFIG_PPDEV=m
CONFIG_PPP_ASYNC=m
CONFIG_PPP_BSDCOMP=m
@@ -4225,6 +4298,8 @@ CONFIG_PPTP=m
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PRESTERA=m
+CONFIG_PRESTERA_PCI=m
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_PRIME_NUMBERS is not set
CONFIG_PRINTER=m
@@ -4316,8 +4391,10 @@ CONFIG_QLCNIC_SRIOV=y
CONFIG_QLGE=m
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX6FS_FS is not set
-# CONFIG_QRTR is not set
+CONFIG_QRTR=m
CONFIG_QRTR_MHI=m
+CONFIG_QRTR_SMD=m
+CONFIG_QRTR_TUN=m
CONFIG_QSEMI_PHY=m
CONFIG_QTNFMAC_PCIE=m
# CONFIG_QUICC_ENGINE is not set
@@ -4375,6 +4452,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_PERF_TEST is not set
CONFIG_RCU_REF_SCALE_TEST=m
+# CONFIG_RCU_SCALE_TEST is not set
CONFIG_RCU_TORTURE_TEST=m
# CONFIG_RCU_TRACE is not set
CONFIG_RC_XBOX_DVD=m
@@ -4408,11 +4486,10 @@ CONFIG_REGULATOR_BD9571MWV=m
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR_FAN53555 is not set
# CONFIG_REGULATOR_FAN53880 is not set
-# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
# CONFIG_REGULATOR_GPIO is not set
# CONFIG_REGULATOR_ISL6271A is not set
# CONFIG_REGULATOR_ISL9305 is not set
-# CONFIG_REGULATOR is not set
# CONFIG_REGULATOR_LP3971 is not set
# CONFIG_REGULATOR_LP3972 is not set
# CONFIG_REGULATOR_LP872X is not set
@@ -4437,6 +4514,9 @@ CONFIG_REGULATOR_MP886X=m
# CONFIG_REGULATOR_PV88080 is not set
# CONFIG_REGULATOR_PV88090 is not set
# CONFIG_REGULATOR_PWM is not set
+# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set
+CONFIG_REGULATOR_RT4801=m
+CONFIG_REGULATOR_RTMV20=m
# CONFIG_REGULATOR_SLG51000 is not set
# CONFIG_REGULATOR_SY8106A is not set
# CONFIG_REGULATOR_SY8824X is not set
@@ -4451,6 +4531,7 @@ CONFIG_REGULATOR_MP886X=m
CONFIG_REGULATOR_VCTRL=m
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
# CONFIG_REGULATOR_VQMMC_IPQ4019 is not set
+CONFIG_REGULATOR=y
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_FS=m
CONFIG_REISERFS_FS_POSIX_ACL=y
@@ -4486,6 +4567,7 @@ CONFIG_RMI4_F11=y
CONFIG_RMI4_F12=y
CONFIG_RMI4_F30=y
CONFIG_RMI4_F34=y
+CONFIG_RMI4_F3A=y
# CONFIG_RMI4_F54 is not set
CONFIG_RMI4_F55=y
CONFIG_RMI4_I2C=m
@@ -4601,6 +4683,7 @@ CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_RV3028=m
CONFIG_RTC_DRV_RV3029C2=m
CONFIG_RTC_DRV_RV3029_HWMON=y
+CONFIG_RTC_DRV_RV3032=m
# CONFIG_RTC_DRV_RV8803 is not set
CONFIG_RTC_DRV_RX4581=m
# CONFIG_RTC_DRV_RX6110 is not set
@@ -4703,6 +4786,7 @@ CONFIG_SCD30_CORE=m
CONFIG_SCD30_I2C=m
CONFIG_SCD30_SERIAL=m
# CONFIG_SC_DISPCC_7180 is not set
+# CONFIG_SCF_TORTURE_TEST is not set
# CONFIG_SC_GPUCC_7180 is not set
CONFIG_SCHED_AUTOGROUP=y
CONFIG_SCHED_BOOK=y
@@ -4845,7 +4929,7 @@ CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0
CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_DISABLE=y
+# CONFIG_SECURITY_SELINUX_DISABLE is not set
CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
CONFIG_SECURITY_SELINUX=y
@@ -4865,6 +4949,7 @@ CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
# CONFIG_SENSORS_ADM1177 is not set
+CONFIG_SENSORS_ADM1266=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ADS7828=m
@@ -4914,6 +4999,7 @@ CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
# CONFIG_SENSORS_INSPUR_IPSPS is not set
+CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -4978,6 +5064,8 @@ CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_MLXREG_FAN=m
+CONFIG_SENSORS_MP2975=m
+CONFIG_SENSORS_MR75203=m
CONFIG_SENSORS_NCT6683=m
CONFIG_SENSORS_NCT6775=m
CONFIG_SENSORS_NCT7802=m
@@ -5140,6 +5228,7 @@ CONFIG_SLUB=y
CONFIG_SMARTJOYPLUS_FF=y
CONFIG_SMC_DIAG=m
CONFIG_SMC=m
+# CONFIG_SM_DISPCC_8250 is not set
# CONFIG_SM_FTL is not set
CONFIG_SMP=y
CONFIG_SMSC911X=m
@@ -5153,6 +5242,8 @@ CONFIG_SMS_SDIO_DRV=m
CONFIG_SMS_SIANO_MDTV=m
CONFIG_SMS_SIANO_RC=y
CONFIG_SMS_USB_DRV=m
+# CONFIG_SM_VIDEOCC_8150 is not set
+# CONFIG_SM_VIDEOCC_8250 is not set
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AD1889=m
@@ -5319,6 +5410,7 @@ CONFIG_SND_SOC_BD28623=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
+CONFIG_SND_SOC_CS4234=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -5354,16 +5446,17 @@ CONFIG_SND_SOC_HDAC_HDA=m
CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_IMG is not set
-# CONFIG_SND_SOC_IMX_AUDMIX is not set
# CONFIG_SND_SOC_IMX_AUDMUX is not set
# CONFIG_SND_SOC_IMX_ES8328 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
-CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
+# CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set
+# CONFIG_SND_SOC_INTEL_CATPT is not set
# CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH is not set
CONFIG_SND_SOC_INTEL_KEEMBAY=m
CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
# CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH is not set
-CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
+CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m
+# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set
CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
@@ -5399,14 +5492,14 @@ CONFIG_SND_SOC_PCM3060_SPI=m
# CONFIG_SND_SOC_PCM512x_SPI is not set
# CONFIG_SND_SOC_RK3328 is not set
CONFIG_SND_SOC_RL6231=m
-# CONFIG_SND_SOC_RT1308_SDW is not set
+CONFIG_SND_SOC_RT1308_SDW=m
# CONFIG_SND_SOC_RT5616 is not set
# CONFIG_SND_SOC_RT5631 is not set
CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_RT5682_SDW=m
-# CONFIG_SND_SOC_RT700_SDW is not set
-# CONFIG_SND_SOC_RT711_SDW is not set
-# CONFIG_SND_SOC_RT715_SDW is not set
+CONFIG_SND_SOC_RT700_SDW=m
+CONFIG_SND_SOC_RT711_SDW=m
+CONFIG_SND_SOC_RT715_SDW=m
# CONFIG_SND_SOC_SAMSUNG_ARIES_WM8994 is not set
CONFIG_SND_SOC_SAMSUNG_MIDAS_WM1811=m
# CONFIG_SND_SOC_SGTL5000 is not set
@@ -5433,6 +5526,7 @@ CONFIG_SND_SOC_SPDIF=m
# CONFIG_SND_SOC_STI_SAS is not set
# CONFIG_SND_SOC_TAS2552 is not set
CONFIG_SND_SOC_TAS2562=m
+CONFIG_SND_SOC_TAS2764=m
CONFIG_SND_SOC_TAS2770=m
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TAS571X is not set
@@ -5520,9 +5614,25 @@ CONFIG_SONY_FF=y
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SOUNDWIRE_CADENCE=m
# CONFIG_SOUNDWIRE_INTEL is not set
+# CONFIG_SOUNDWIRE_QCOM is not set
CONFIG_SOUNDWIRE=y
CONFIG_SPARSEMEM_MANUAL=y
-# CONFIG_SPEAKUP is not set
+CONFIG_SPEAKUP=m
+# CONFIG_SPEAKUP_SYNTH_ACNTPC is not set
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+# CONFIG_SPEAKUP_SYNTH_DECEXT is not set
+# CONFIG_SPEAKUP_SYNTH_DECPC is not set
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+# CONFIG_SPEAKUP_SYNTH_DTLK is not set
+# CONFIG_SPEAKUP_SYNTH_DUMMY is not set
+# CONFIG_SPEAKUP_SYNTH_KEYPC is not set
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_AMD is not set
# CONFIG_SPI_AXI_SPI_ENGINE is not set
@@ -5558,6 +5668,7 @@ CONFIG_SPI_MUX=m
# CONFIG_SPI_XCOMM is not set
# CONFIG_SPI_XILINX is not set
# CONFIG_SPI_ZYNQMP_GQSPI is not set
+# CONFIG_SPMI_HISI3670 is not set
# CONFIG_SPMI is not set
# CONFIG_SPS30 is not set
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
@@ -5595,6 +5706,7 @@ CONFIG_STACK_VALIDATION=y
# CONFIG_STAGING is not set
CONFIG_STAGING_MEDIA=y
CONFIG_STANDALONE=y
+# CONFIG_STATIC_CALL_SELFTEST is not set
# CONFIG_STATIC_KEYS_SELFTEST is not set
# CONFIG_STATIC_USERMODEHELPER is not set
CONFIG_STE10XP=m
@@ -5614,6 +5726,7 @@ CONFIG_ST_UVIS25_I2C=m
CONFIG_ST_UVIS25=m
CONFIG_ST_UVIS25_SPI=m
# CONFIG_SUN50I_DE2_BUS is not set
+# CONFIG_SUN50I_IOMMU is not set
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -5726,6 +5839,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_HEXDUMP is not set
# CONFIG_TEST_HMM is not set
# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_KASAN_MODULE is not set
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
CONFIG_TEST_LIST_SORT=y
@@ -5898,6 +6012,7 @@ CONFIG_TOUCHSCREEN_WACOM_W8001=m
# CONFIG_TOUCHSCREEN_WM97XX is not set
CONFIG_TOUCHSCREEN_ZET6223=m
CONFIG_TOUCHSCREEN_ZFORCE=m
+CONFIG_TOUCHSCREEN_ZINITIX=m
# CONFIG_TPL0102 is not set
CONFIG_TPM_KEY_PARSER=m
# CONFIG_TPS6105X is not set
@@ -5944,8 +6059,11 @@ CONFIG_TYPEC_HD3SS3220=m
CONFIG_TYPEC=m
CONFIG_TYPEC_MUX_PI3USB30532=m
CONFIG_TYPEC_NVIDIA_ALTMODE=m
+# CONFIG_TYPEC_QCOM_PMIC is not set
# CONFIG_TYPEC_RT1711H is not set
+CONFIG_TYPEC_STUSB160X=m
CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPCI_MAXIM=m
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
@@ -5996,6 +6114,7 @@ CONFIG_UNUSED_SYMBOLS=y
# CONFIG_UNWINDER_FRAME_POINTER is not set
CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
+# CONFIG_USB4_DEBUGFS_WRITE is not set
CONFIG_USB4_NET=m
CONFIG_USB4=y
CONFIG_USB_ACM=m
@@ -6042,6 +6161,7 @@ CONFIG_USB_EMI62=m
CONFIG_USB_EPSON2888=y
# CONFIG_USB_ETH is not set
CONFIG_USB_EZUSB_FX2=m
+# CONFIG_USB_FEW_INIT_RETRIES is not set
# CONFIG_USB_FOTG210_HCD is not set
CONFIG_USB_FTDI_ELAN=m
# CONFIG_USB_FUNCTIONFS is not set
@@ -6142,6 +6262,7 @@ CONFIG_USB_LD=m
CONFIG_USB_LEDS_TRIGGER_USBPORT=m
CONFIG_USB_LED_TRIG=y
CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LGM_PHY=m
# CONFIG_USB_LINK_LAYER_TEST is not set
CONFIG_USB_M5602=m
CONFIG_USB_MA901=m
@@ -6313,7 +6434,7 @@ CONFIG_USB_WDM=m
CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_HISTB is not set
-CONFIG_USB_XHCI_PCI_RENESAS=y
+CONFIG_USB_XHCI_PCI_RENESAS=m
# CONFIG_USB_XHCI_PLATFORM is not set
CONFIG_USB_XUSBATM=m
CONFIG_USB=y
@@ -6357,6 +6478,7 @@ CONFIG_VFIO_MDEV_DEVICE=m
CONFIG_VFIO_MDEV=m
# CONFIG_VFIO_NOIOMMU is not set
CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_ZDEV=y
CONFIG_VGA_ARB_MAX_GPUS=16
CONFIG_VGA_ARB=y
# CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT is not set
@@ -6496,6 +6618,7 @@ CONFIG_VIDEO_SOLO6X10=m
CONFIG_VIDEO_SR030PC30=m
CONFIG_VIDEO_STK1160_COMMON=m
CONFIG_VIDEO_STK1160=m
+# CONFIG_VIDEO_TEGRA_TPG is not set
CONFIG_VIDEO_TM6000_ALSA=m
CONFIG_VIDEO_TM6000_DVB=m
CONFIG_VIDEO_TM6000=m
@@ -6509,6 +6632,7 @@ CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_VIDEO_VS6624=m
# CONFIG_VIDEO_XILINX is not set
+# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIPERBOARD_ADC is not set
# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
CONFIG_VIRT_CPU_ACCOUNTING_NATIVE=y
@@ -6516,7 +6640,7 @@ CONFIG_VIRT_CPU_ACCOUNTING_NATIVE=y
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
-CONFIG_VIRTIO_CONSOLE=y
+# CONFIG_VIRTIO_CONSOLE is not set
# CONFIG_VIRTIO_FS is not set
CONFIG_VIRTIO_INPUT=m
# CONFIG_VIRTIO_IOMMU is not set
@@ -6675,6 +6799,7 @@ CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_STATISTICS=y
CONFIG_XFRM_SUB_POLICY=y
+# CONFIG_XFRM_USER_COMPAT is not set
CONFIG_XFRM_USER=y
CONFIG_XFRM=y
# CONFIG_XFS_DEBUG is not set
@@ -6684,6 +6809,7 @@ CONFIG_XFS_ONLINE_SCRUB=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_QUOTA=y
# CONFIG_XFS_RT is not set
+CONFIG_XFS_SUPPORT_V4=y
CONFIG_XFS_WARN=y
# CONFIG_XIL_AXIS_FIFO is not set
# CONFIG_XILINX_AXI_EMAC is not set
@@ -6710,6 +6836,7 @@ CONFIG_YELLOWFIN=m
CONFIG_YENTA=m
CONFIG_Z3FOLD=y
CONFIG_ZBUD=y
+# CONFIG_ZCRYPT_DEBUG is not set
CONFIG_ZCRYPT=m
CONFIG_ZCRYPT_MULTIDEVNODES=y
# CONFIG_ZD1211RW_DEBUG is not set
@@ -6746,4 +6873,5 @@ CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
# Select this config option to add support for the initrd= command
# This option determines the default init for the system if no init=
# warnings from C=1 sparse checker or -Wextra compilations. It has
+# You can set the size of pernuma CMA by specifying "cma_pernuma=size"
CONFIG_ZENIFY=y
diff --git a/SOURCES/kernel-s390x-fedora.config b/SOURCES/kernel-s390x-fedora.config
index ad47c66..2fcd17f 100644
--- a/SOURCES/kernel-s390x-fedora.config
+++ b/SOURCES/kernel-s390x-fedora.config
@@ -1,5 +1,6 @@
# s390
# 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
+# beginning with "crc=". If the string "crc=0" is found, the
# CONFIG_60XX_WDT is not set
CONFIG_64BIT=y
CONFIG_6LOWPAN_DEBUGFS=y
@@ -39,6 +40,7 @@ CONFIG_ACENIC=m
CONFIG_ACPI_ALS=m
# CONFIG_ACPI_DEBUGGER is not set
# CONFIG_ACPI_DEBUG is not set
+# CONFIG_ACPI_DPTF is not set
CONFIG_ACPI_HMAT=y
# CONFIG_ACPI_NFIT is not set
CONFIG_ACPI_PCI_SLOT=y
@@ -128,6 +130,7 @@ CONFIG_ADUX1020=m
# CONFIG_ADXL345_SPI is not set
CONFIG_ADXL372_I2C=m
CONFIG_ADXL372_SPI=m
+CONFIG_ADXRS290=m
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -211,20 +214,25 @@ CONFIG_ARCH_RANDOM=y
# CONFIG_ARCH_S3C24XX is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_SPARX5 is not set
+# CONFIG_ARCH_VISCONTI is not set
# CONFIG_ARCNET is not set
CONFIG_ARM64_AMU_EXTN=y
CONFIG_ARM64_BTI=y
CONFIG_ARM64_E0PD=y
CONFIG_ARM64_ERRATUM_1319367=y
+CONFIG_ARM64_ERRATUM_1508412=y
CONFIG_ARM64_ERRATUM_1530923=y
CONFIG_ARM64_ERRATUM_1542419=y
CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_USE_LSE_ATOMICS=y
+# CONFIG_ARM_CMN is not set
CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y
CONFIG_ARM_SMCCC_SOC_ID=y
# CONFIG_ARM_SMC_WATCHDOG is not set
# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set
+# CONFIG_ARM_SMMU_V3_SVA is not set
# CONFIG_AS3935 is not set
+# CONFIG_AS73211 is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_TPM_KEY_SUBTYPE=m
CONFIG_ASYNC_RAID6_TEST=m
@@ -248,9 +256,11 @@ CONFIG_ATH10K_SDIO=m
# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
+CONFIG_ATH11K_AHB=m
CONFIG_ATH11K_DEBUGFS=y
# CONFIG_ATH11K_DEBUG is not set
CONFIG_ATH11K=m
+CONFIG_ATH11K_PCI=m
# CONFIG_ATH11K_SPECTRAL is not set
# CONFIG_ATH11K_TRACING is not set
CONFIG_ATH5K_DEBUG=y
@@ -355,6 +365,7 @@ CONFIG_BACKLIGHT_ARCXCNN=m
CONFIG_BACKLIGHT_CLASS_DEVICE=m
# CONFIG_BACKLIGHT_GENERIC is not set
# CONFIG_BACKLIGHT_GPIO is not set
+CONFIG_BACKLIGHT_KTD253=m
CONFIG_BACKLIGHT_LED=m
# CONFIG_BACKLIGHT_LM3630A is not set
# CONFIG_BACKLIGHT_LM3639 is not set
@@ -515,6 +526,8 @@ CONFIG_BPF_JIT=y
# CONFIG_BPF_KPROBE_OVERRIDE is not set
CONFIG_BPF_LIRC_MODE2=y
CONFIG_BPF_LSM=y
+CONFIG_BPF_PRELOAD_UMD=m
+CONFIG_BPF_PRELOAD=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -645,6 +658,7 @@ CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
# CONFIG_CAN is not set
+# CONFIG_CAN_ISOTP is not set
# CONFIG_CAN_J1939 is not set
# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
@@ -653,6 +667,7 @@ CONFIG_CAN_M_CAN=m
# CONFIG_CAN_M_CAN_PLATFORM is not set
# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
+# CONFIG_CAN_MCP251XFD is not set
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
CONFIG_CAN_PEAK_PCIEFD=m
@@ -735,6 +750,7 @@ CONFIG_CHARGER_BD99954=m
# CONFIG_CHARGER_BQ24735 is not set
CONFIG_CHARGER_BQ2515X=m
# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_BQ25980 is not set
# CONFIG_CHARGER_CROS_USBPD is not set
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
# CONFIG_CHARGER_GPIO is not set
@@ -752,7 +768,8 @@ CONFIG_CHARLCD_BL_FLASH=y
# CONFIG_CHARLCD_BL_OFF is not set
# CONFIG_CHARLCD_BL_ON is not set
CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_CHELSIO_IPSEC_INLINE=y
+CONFIG_CHELSIO_INLINE_CRYPTO=y
+CONFIG_CHELSIO_IPSEC_INLINE=m
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -760,7 +777,7 @@ CONFIG_CHELSIO_T4_DCB=y
# CONFIG_CHELSIO_T4_FCOE is not set
CONFIG_CHELSIO_T4=m
CONFIG_CHELSIO_T4VF=m
-CONFIG_CHELSIO_TLS_DEVICE=y
+CONFIG_CHELSIO_TLS_DEVICE=m
CONFIG_CHR_DEV_SCH=m
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_ST=m
@@ -1010,7 +1027,9 @@ CONFIG_CRYPTO_SHA3_256_S390=m
CONFIG_CRYPTO_SHA3_512_S390=m
CONFIG_CRYPTO_SHA3=m
CONFIG_CRYPTO_SHA512_S390=m
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
+CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
CONFIG_CRYPTO_STATS=y
@@ -1020,7 +1039,9 @@ CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_USER_API_AEAD=y
+# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
CONFIG_CRYPTO_USER_API_HASH=y
+# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER=m
@@ -1031,6 +1052,7 @@ CONFIG_CRYPTO_XTS=y
CONFIG_CRYPTO_XXHASH=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ZSTD=m
+# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
CONFIG_CTCM=m
CONFIG_CUSE=m
CONFIG_CW1200=m
@@ -1163,6 +1185,7 @@ CONFIG_DMABUF_HEAPS=y
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
# CONFIG_DMA_FENCE_TRACE is not set
+# CONFIG_DMA_PERNUMA_CMA is not set
# CONFIG_DMARD06 is not set
# CONFIG_DMARD09 is not set
CONFIG_DMARD10=m
@@ -1211,6 +1234,7 @@ CONFIG_DP83869_PHY=m
# CONFIG_DP83TC811_PHY is not set
CONFIG_DPOT_DAC=m
# CONFIG_DPS310 is not set
+# CONFIG_DPTF_PCH_FIVR is not set
CONFIG_DRAGONRISE_FF=y
# CONFIG_DRBD_FAULT_INJECTION is not set
CONFIG_DRM_AMD_ACP=y
@@ -1218,6 +1242,7 @@ CONFIG_DRM_AMD_DC_DCN2_0=y
CONFIG_DRM_AMD_DC_DCN3_0=y
CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
CONFIG_DRM_AMD_DC_HDCP=y
+CONFIG_DRM_AMD_DC_SI=y
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMDGPU_CIK=y
# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
@@ -1230,6 +1255,7 @@ CONFIG_DRM_ANALOGIX_ANX78XX=m
# CONFIG_DRM_AST is not set
# CONFIG_DRM_BOCHS is not set
# CONFIG_DRM_CDNS_DSI is not set
+# CONFIG_DRM_CDNS_MHDP8546 is not set
CONFIG_DRM_CHRONTEL_CH7033=m
# CONFIG_DRM_CIRRUS_QEMU is not set
# CONFIG_DRM_DEBUG_SELFTEST is not set
@@ -1253,6 +1279,7 @@ CONFIG_DRM_I2C_ADV7533=y
# CONFIG_DRM_KOMEDA is not set
# CONFIG_DRM_LEGACY is not set
# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
+# CONFIG_DRM_LONTIUM_LT9611 is not set
# CONFIG_DRM_LVDS_CODEC is not set
# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
@@ -1283,6 +1310,7 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m
# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_LVDS is not set
+CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m
# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
CONFIG_DRM_PANEL_NOVATEK_NT35510=m
# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
@@ -1338,9 +1366,11 @@ CONFIG_DRM_TIDSS=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TI_TPD12S015=m
+CONFIG_DRM_TOSHIBA_TC358762=m
CONFIG_DRM_TOSHIBA_TC358764=m
# CONFIG_DRM_TOSHIBA_TC358767 is not set
CONFIG_DRM_TOSHIBA_TC358768=m
+CONFIG_DRM_TOSHIBA_TC358775=m
CONFIG_DRM_UDL=m
# CONFIG_DRM_VBOXVIDEO is not set
CONFIG_DRM_VGEM=m
@@ -1443,6 +1473,7 @@ CONFIG_DW_DMAC_PCI=m
CONFIG_DW_EDMA=m
CONFIG_DW_EDMA_PCIE=m
CONFIG_DWMAC_IMX8=m
+CONFIG_DWMAC_INTEL_PLAT=m
# CONFIG_DW_WATCHDOG is not set
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DYNAMIC_FTRACE=y
@@ -1503,7 +1534,10 @@ CONFIG_ETHERNET=y
# CONFIG_ETHOC is not set
CONFIG_ETHTOOL_NETLINK=y
# CONFIG_EUROTECH_WDT is not set
-# CONFIG_EVM is not set
+# CONFIG_EVM_ADD_XATTRS is not set
+CONFIG_EVM_ATTR_FSUUID=y
+# CONFIG_EVM_LOAD_X509 is not set
+CONFIG_EVM=y
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
CONFIG_EXFAT_FS=m
# CONFIG_EXPERT is not set
@@ -1554,6 +1588,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
# CONFIG_FAT_DEFAULT_UTF8 is not set
CONFIG_FAT_FS=m
# CONFIG_FAULT_INJECTION is not set
+# CONFIG_FAULT_INJECTION_USERCOPY is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_ARK is not set
# CONFIG_FB_ARMCLCD is not set
@@ -1681,6 +1716,7 @@ CONFIG_FTRACE=y
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_FUNCTION_TRACER=y
+CONFIG_FUSE_DAX=y
CONFIG_FUSE_FS=m
CONFIG_FUSION_CTL=m
CONFIG_FUSION_FC=m
@@ -1737,7 +1773,10 @@ CONFIG_GIGASET_CAPI=y
CONFIG_GIGASET_M101=m
CONFIG_GIGASET_M105=m
# CONFIG_GLOB_SELFTEST is not set
-# CONFIG_GNSS is not set
+CONFIG_GNSS=m
+CONFIG_GNSS_MTK_SERIAL=m
+CONFIG_GNSS_SIRF_SERIAL=m
+CONFIG_GNSS_UBX_SERIAL=m
# CONFIG_GOLDFISH is not set
# CONFIG_GOOGLE_FIRMWARE is not set
CONFIG_GP2AP002=m
@@ -1752,6 +1791,7 @@ CONFIG_GPIO_AGGREGATOR=m
# CONFIG_GPIO_BCM_XGS_IPROC is not set
CONFIG_GPIO_BD9571MWV=m
CONFIG_GPIO_CADENCE=m
+CONFIG_GPIO_CDEV_V1=y
# CONFIG_GPIO_DWAPB is not set
CONFIG_GPIO_EXAR=m
# CONFIG_GPIO_FTGPIO010 is not set
@@ -1772,6 +1812,7 @@ CONFIG_GPIO_MAX77650=m
# CONFIG_GPIO_MC33880 is not set
CONFIG_GPIO_MLXBF2=m
# CONFIG_GPIO_MOCKUP is not set
+CONFIG_GPIO_MXC=m
# CONFIG_GPIO_PCA953X_IRQ is not set
CONFIG_GPIO_PCA953X=m
CONFIG_GPIO_PCA9570=m
@@ -1810,6 +1851,7 @@ CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HD44780=m
# CONFIG_HDC100X is not set
+CONFIG_HDC2010=m
CONFIG_HEADERS_CHECK=y
CONFIG_HEADERS_INSTALL=y
CONFIG_HEADER_TEST=y
@@ -1925,6 +1967,7 @@ CONFIG_HID_U2FZERO=m
CONFIG_HID_UCLOGIC=m
CONFIG_HID_UDRAW_PS3=m
CONFIG_HID_VIEWSONIC=m
+CONFIG_HID_VIVALDI=m
CONFIG_HID_WACOM=m
CONFIG_HID_WALTOP=m
CONFIG_HID_WIIMOTE=m
@@ -1934,6 +1977,7 @@ CONFIG_HID_ZYDACRON=m
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_HIPPI is not set
# CONFIG_HISI_DMA is not set
+CONFIG_HISI_HIKEY_USB=m
# CONFIG_HIST_TRIGGERS_DEBUG is not set
CONFIG_HIST_TRIGGERS=y
CONFIG_HMC425=m
@@ -1978,6 +2022,7 @@ CONFIG_HW_RANDOM_S390=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=y
+CONFIG_HW_RANDOM_XIPHERA=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK=y
# CONFIG_HX711 is not set
@@ -2023,6 +2068,7 @@ CONFIG_I2C_DIOLAN_U2C=m
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_ISCH is not set
CONFIG_I2C=m
+CONFIG_I2C_MLXBF=m
CONFIG_I2C_MLXCPLD=m
# CONFIG_I2C_MUX_GPIO is not set
CONFIG_I2C_MUX_GPMUX=m
@@ -2050,6 +2096,7 @@ CONFIG_I2C_SI470X=m
# CONFIG_I2C_SIS96X is not set
CONFIG_I2C_SLAVE_EEPROM=m
# CONFIG_I2C_SLAVE is not set
+# CONFIG_I2C_SLAVE_TESTUNIT is not set
# CONFIG_I2C_SMBUS is not set
# CONFIG_I2C_STUB is not set
# CONFIG_I2C_TAOS_EVM is not set
@@ -2098,6 +2145,8 @@ CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IGC=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_DMAENGINE=m
+CONFIG_IIO_BUFFER_DMA=m
CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
@@ -2126,6 +2175,7 @@ CONFIG_IIO_SW_TRIGGER=m
# CONFIG_IIO_SYSFS_TRIGGER is not set
CONFIG_IIO_TIGHTLOOP_TRIGGER=m
CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_TRIGGERED_EVENT=m
CONFIG_IIO_TRIGGER=y
# CONFIG_IKCONFIG is not set
CONFIG_IKHEADERS=m
@@ -2136,6 +2186,7 @@ CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
+CONFIG_IMA_DEFAULT_HASH="sha256"
CONFIG_IMA_DEFAULT_HASH_SHA256=y
# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
@@ -2164,6 +2215,7 @@ CONFIG_INET_ESPINTCP=y
CONFIG_INET_ESP=m
CONFIG_INET_ESP_OFFLOAD=m
CONFIG_INET_IPCOMP=m
+CONFIG_INET_MPTCP_DIAG=m
CONFIG_INET_RAW_DIAG=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_UDP_DIAG=m
@@ -2276,6 +2328,7 @@ CONFIG_INTEGRITY=y
# CONFIG_INTEL_IDMA64 is not set
CONFIG_INTEL_IDXD=m
# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
+# CONFIG_INTEL_MEI_VIRTIO is not set
# CONFIG_INTEL_SCU_PCI is not set
# CONFIG_INTEL_SCU_PLATFORM is not set
CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m
@@ -2537,6 +2590,7 @@ CONFIG_JFS_SECURITY=y
# CONFIG_JME is not set
CONFIG_JOLIET=y
CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADC=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
@@ -2553,23 +2607,23 @@ CONFIG_JOYSTICK_IFORCE=m
CONFIG_JOYSTICK_IFORCE_USB=m
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
-CONFIG_JOYSTICK_MAGELLAN=m
+# CONFIG_JOYSTICK_MAGELLAN is not set
CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_PXRC=m
CONFIG_JOYSTICK_SIDEWINDER=m
-CONFIG_JOYSTICK_SPACEBALL=m
-CONFIG_JOYSTICK_SPACEORB=m
-CONFIG_JOYSTICK_STINGER=m
+# CONFIG_JOYSTICK_SPACEBALL is not set
+# CONFIG_JOYSTICK_SPACEORB is not set
+# CONFIG_JOYSTICK_STINGER is not set
CONFIG_JOYSTICK_TMDC=m
CONFIG_JOYSTICK_TURBOGRAFX=m
-CONFIG_JOYSTICK_TWIDJOY=m
+# CONFIG_JOYSTICK_TWIDJOY is not set
CONFIG_JOYSTICK_WALKERA0701=m
-CONFIG_JOYSTICK_WARRIOR=m
+# CONFIG_JOYSTICK_WARRIOR is not set
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
CONFIG_JOYSTICK_XPAD=m
-CONFIG_JOYSTICK_ZHENHUA=m
+# CONFIG_JOYSTICK_ZHENHUA is not set
# CONFIG_JSA1212 is not set
CONFIG_JUMP_LABEL=y
CONFIG_KALLSYMS_ALL=y
@@ -2590,6 +2644,7 @@ CONFIG_KERNEL_HEADER_TEST=y
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_ZSTD is not set
CONFIG_KEXEC_FILE=y
+CONFIG_KEXEC_IMAGE_VERIFY_SIG=y
CONFIG_KEXEC_SIG=y
CONFIG_KEXEC=y
# CONFIG_KEYBOARD_ADC is not set
@@ -2627,6 +2682,7 @@ CONFIG_KEY_DH_OPERATIONS=y
CONFIG_KEY_NOTIFICATIONS=y
CONFIG_KEYS_REQUEST_CACHE=y
CONFIG_KEYS=y
+CONFIG_KGDB_HONOUR_BLOCKLIST=y
# CONFIG_KGDB_KDB is not set
CONFIG_KGDB_LOW_LEVEL_TRAP=y
CONFIG_KGDB_SERIAL_CONSOLE=y
@@ -2679,6 +2735,7 @@ CONFIG_LDISC_AUTOLOAD=y
CONFIG_LDM_PARTITION=y
# CONFIG_LEDS_AAT1290 is not set
CONFIG_LEDS_AN30259A=m
+# CONFIG_LEDS_ARIEL is not set
CONFIG_LEDS_AS3645A=m
# CONFIG_LEDS_AW2013 is not set
# CONFIG_LEDS_BCM6328 is not set
@@ -2705,6 +2762,7 @@ CONFIG_LEDS_LM3601X=m
CONFIG_LEDS_LM3692X=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
+CONFIG_LEDS_LP50XX=m
# CONFIG_LEDS_LP5521 is not set
# CONFIG_LEDS_LP5523 is not set
# CONFIG_LEDS_LP5562 is not set
@@ -2998,8 +3056,11 @@ CONFIG_MFD_CORE=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
+CONFIG_MFD_ENE_KB3930=m
# CONFIG_MFD_GATEWORKS_GSC is not set
# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_MFD_HI6421_SPMI is not set
+CONFIG_MFD_INTEL_M10_BMC=m
# CONFIG_MFD_INTEL_PMC_BXT is not set
# CONFIG_MFD_IQS62X is not set
# CONFIG_MFD_JANZ_CMODIO is not set
@@ -3039,6 +3100,7 @@ CONFIG_MFD_MAX77650=m
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SL28CPLD is not set
CONFIG_MFD_SM501_GPIO=y
# CONFIG_MFD_SM501 is not set
# CONFIG_MFD_SMSC is not set
@@ -3076,6 +3138,7 @@ CONFIG_MFD_SYSCON=y
# CONFIG_MFD_WM8994 is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
+# CONFIG_MHI_BUS_DEBUG is not set
CONFIG_MHI_BUS=m
# CONFIG_MICREL_KS8995MA is not set
CONFIG_MICREL_PHY=m
@@ -3321,6 +3384,7 @@ CONFIG_MUX_GPIO=m
CONFIG_MUX_MMIO=m
# CONFIG_MVIAC7 is not set
CONFIG_MVMDIO=m
+CONFIG_MVPP2_PTP=y
CONFIG_MWAVE=m
CONFIG_MWIFIEX=m
CONFIG_MWIFIEX_PCIE=m
@@ -3753,6 +3817,7 @@ CONFIG_NFS_V3=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
CONFIG_NFS_V4_1=y
+# CONFIG_NFS_V4_2_READ_PLUS is not set
CONFIG_NFS_V4_2=y
CONFIG_NFS_V4=m
CONFIG_NF_TABLES_ARP=y
@@ -4015,6 +4080,7 @@ CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT_HOST is not set
CONFIG_PCIE_ECRC=y
CONFIG_PCIE_EDR=y
+# CONFIG_PCIE_HISI_ERR is not set
# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set
# CONFIG_PCIE_MOBIVEIL is not set
# CONFIG_PCI_ENDPOINT is not set
@@ -4057,6 +4123,7 @@ CONFIG_PCMCIA_SMC91C92=m
CONFIG_PCMCIA_XIRC2PS=m
CONFIG_PCMCIA_XIRCOM=m
CONFIG_PCNET32=m
+CONFIG_PCS_XPCS=m
CONFIG_PD6729=m
# CONFIG_PDA_POWER is not set
CONFIG_PDC_ADMA=m
@@ -4075,7 +4142,10 @@ CONFIG_PHY_CADENCE_SIERRA=m
CONFIG_PHY_CADENCE_TORRENT=m
# CONFIG_PHY_CPCAP_USB is not set
# CONFIG_PHY_FSL_IMX8MQ_USB is not set
+# CONFIG_PHY_HI3670_USB is not set
# CONFIG_PHY_INTEL_EMMC is not set
+# CONFIG_PHY_INTEL_KEEMBAY_EMMC is not set
+# CONFIG_PHY_INTEL_LGM_EMMC is not set
CONFIG_PHYLIB=y
CONFIG_PHYLINK=m
# CONFIG_PHY_MAPPHONE_MDM6600 is not set
@@ -4104,6 +4174,7 @@ CONFIG_PINCTRL_EMMITSBURG=m
# CONFIG_PINCTRL_JASPERLAKE is not set
# CONFIG_PINCTRL_LYNXPOINT is not set
# CONFIG_PINCTRL_MCP23S08 is not set
+# CONFIG_PINCTRL_MSM8226 is not set
# CONFIG_PINCTRL_MSM8976 is not set
# CONFIG_PINCTRL_OCELOT is not set
# CONFIG_PINCTRL_QCS404 is not set
@@ -4114,6 +4185,8 @@ CONFIG_PINCTRL_RK805=m
# CONFIG_PINCTRL_SM8250 is not set
# CONFIG_PINCTRL_STMFX is not set
# CONFIG_PINCTRL_SUN4I_A10 is not set
+# CONFIG_PINCTRL_SUN50I_A100 is not set
+# CONFIG_PINCTRL_SUN50I_A100_R is not set
# CONFIG_PINCTRL_SUN50I_A64 is not set
# CONFIG_PINCTRL_SUN50I_A64_R is not set
# CONFIG_PINCTRL_SUN50I_H5 is not set
@@ -4165,7 +4238,6 @@ CONFIG_POSIX_MQUEUE=y
# CONFIG_POWER7_CPU is not set
# CONFIG_POWER8_CPU is not set
# CONFIG_POWER9_CPU is not set
-# CONFIG_POWER_AVS is not set
CONFIG_POWERCAP=y
# CONFIG_POWER_RESET_BRCMKONA is not set
# CONFIG_POWER_RESET_BRCMSTB is not set
@@ -4182,6 +4254,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_PPC_PROT_SAO_LPAR is not set
# CONFIG_PPC_PTDUMP is not set
# CONFIG_PPC_QUEUED_SPINLOCKS is not set
+CONFIG_PPC_RTAS_FILTER=y
CONFIG_PPDEV=m
CONFIG_PPP_ASYNC=m
CONFIG_PPP_BSDCOMP=m
@@ -4205,6 +4278,8 @@ CONFIG_PPTP=m
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PRESTERA=m
+CONFIG_PRESTERA_PCI=m
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_PRIME_NUMBERS is not set
CONFIG_PRINTER=m
@@ -4296,8 +4371,10 @@ CONFIG_QLCNIC_SRIOV=y
CONFIG_QLGE=m
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX6FS_FS is not set
-# CONFIG_QRTR is not set
+CONFIG_QRTR=m
CONFIG_QRTR_MHI=m
+CONFIG_QRTR_SMD=m
+CONFIG_QRTR_TUN=m
CONFIG_QSEMI_PHY=m
CONFIG_QTNFMAC_PCIE=m
# CONFIG_QUICC_ENGINE is not set
@@ -4355,6 +4432,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_PERF_TEST is not set
# CONFIG_RCU_REF_SCALE_TEST is not set
+# CONFIG_RCU_SCALE_TEST is not set
CONFIG_RCU_TORTURE_TEST=m
# CONFIG_RCU_TRACE is not set
CONFIG_RC_XBOX_DVD=m
@@ -4388,11 +4466,10 @@ CONFIG_REGULATOR_BD9571MWV=m
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR_FAN53555 is not set
# CONFIG_REGULATOR_FAN53880 is not set
-# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
# CONFIG_REGULATOR_GPIO is not set
# CONFIG_REGULATOR_ISL6271A is not set
# CONFIG_REGULATOR_ISL9305 is not set
-# CONFIG_REGULATOR is not set
# CONFIG_REGULATOR_LP3971 is not set
# CONFIG_REGULATOR_LP3972 is not set
# CONFIG_REGULATOR_LP872X is not set
@@ -4417,6 +4494,9 @@ CONFIG_REGULATOR_MP886X=m
# CONFIG_REGULATOR_PV88080 is not set
# CONFIG_REGULATOR_PV88090 is not set
# CONFIG_REGULATOR_PWM is not set
+# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set
+CONFIG_REGULATOR_RT4801=m
+CONFIG_REGULATOR_RTMV20=m
# CONFIG_REGULATOR_SLG51000 is not set
# CONFIG_REGULATOR_SY8106A is not set
# CONFIG_REGULATOR_SY8824X is not set
@@ -4431,6 +4511,7 @@ CONFIG_REGULATOR_MP886X=m
CONFIG_REGULATOR_VCTRL=m
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
# CONFIG_REGULATOR_VQMMC_IPQ4019 is not set
+CONFIG_REGULATOR=y
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_FS=m
CONFIG_REISERFS_FS_POSIX_ACL=y
@@ -4466,6 +4547,7 @@ CONFIG_RMI4_F11=y
CONFIG_RMI4_F12=y
CONFIG_RMI4_F30=y
CONFIG_RMI4_F34=y
+CONFIG_RMI4_F3A=y
# CONFIG_RMI4_F54 is not set
CONFIG_RMI4_F55=y
CONFIG_RMI4_I2C=m
@@ -4581,6 +4663,7 @@ CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_RV3028=m
CONFIG_RTC_DRV_RV3029C2=m
CONFIG_RTC_DRV_RV3029_HWMON=y
+CONFIG_RTC_DRV_RV3032=m
# CONFIG_RTC_DRV_RV8803 is not set
CONFIG_RTC_DRV_RX4581=m
# CONFIG_RTC_DRV_RX6110 is not set
@@ -4683,6 +4766,7 @@ CONFIG_SCD30_CORE=m
CONFIG_SCD30_I2C=m
CONFIG_SCD30_SERIAL=m
# CONFIG_SC_DISPCC_7180 is not set
+# CONFIG_SCF_TORTURE_TEST is not set
# CONFIG_SC_GPUCC_7180 is not set
CONFIG_SCHED_AUTOGROUP=y
CONFIG_SCHED_BOOK=y
@@ -4825,7 +4909,7 @@ CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0
CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_DISABLE=y
+# CONFIG_SECURITY_SELINUX_DISABLE is not set
CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
CONFIG_SECURITY_SELINUX=y
@@ -4845,6 +4929,7 @@ CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
# CONFIG_SENSORS_ADM1177 is not set
+CONFIG_SENSORS_ADM1266=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ADS7828=m
@@ -4894,6 +4979,7 @@ CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
# CONFIG_SENSORS_INSPUR_IPSPS is not set
+CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -4958,6 +5044,8 @@ CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_MLXREG_FAN=m
+CONFIG_SENSORS_MP2975=m
+CONFIG_SENSORS_MR75203=m
CONFIG_SENSORS_NCT6683=m
CONFIG_SENSORS_NCT6775=m
CONFIG_SENSORS_NCT7802=m
@@ -5120,6 +5208,7 @@ CONFIG_SLUB=y
CONFIG_SMARTJOYPLUS_FF=y
CONFIG_SMC_DIAG=m
CONFIG_SMC=m
+# CONFIG_SM_DISPCC_8250 is not set
# CONFIG_SM_FTL is not set
CONFIG_SMP=y
CONFIG_SMSC911X=m
@@ -5133,6 +5222,8 @@ CONFIG_SMS_SDIO_DRV=m
CONFIG_SMS_SIANO_MDTV=m
CONFIG_SMS_SIANO_RC=y
CONFIG_SMS_USB_DRV=m
+# CONFIG_SM_VIDEOCC_8150 is not set
+# CONFIG_SM_VIDEOCC_8250 is not set
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AD1889=m
@@ -5298,6 +5389,7 @@ CONFIG_SND_SOC_BD28623=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
+CONFIG_SND_SOC_CS4234=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -5333,16 +5425,17 @@ CONFIG_SND_SOC_HDAC_HDA=m
CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_IMG is not set
-# CONFIG_SND_SOC_IMX_AUDMIX is not set
# CONFIG_SND_SOC_IMX_AUDMUX is not set
# CONFIG_SND_SOC_IMX_ES8328 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
-CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
+# CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH is not set
+# CONFIG_SND_SOC_INTEL_CATPT is not set
# CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH is not set
CONFIG_SND_SOC_INTEL_KEEMBAY=m
CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
# CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH is not set
-CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
+CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m
+# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set
CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
@@ -5378,14 +5471,14 @@ CONFIG_SND_SOC_PCM3060_SPI=m
# CONFIG_SND_SOC_PCM512x_SPI is not set
# CONFIG_SND_SOC_RK3328 is not set
CONFIG_SND_SOC_RL6231=m
-# CONFIG_SND_SOC_RT1308_SDW is not set
+CONFIG_SND_SOC_RT1308_SDW=m
# CONFIG_SND_SOC_RT5616 is not set
# CONFIG_SND_SOC_RT5631 is not set
CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_RT5682_SDW=m
-# CONFIG_SND_SOC_RT700_SDW is not set
-# CONFIG_SND_SOC_RT711_SDW is not set
-# CONFIG_SND_SOC_RT715_SDW is not set
+CONFIG_SND_SOC_RT700_SDW=m
+CONFIG_SND_SOC_RT711_SDW=m
+CONFIG_SND_SOC_RT715_SDW=m
# CONFIG_SND_SOC_SAMSUNG_ARIES_WM8994 is not set
CONFIG_SND_SOC_SAMSUNG_MIDAS_WM1811=m
# CONFIG_SND_SOC_SGTL5000 is not set
@@ -5411,6 +5504,7 @@ CONFIG_SND_SOC_SPDIF=m
# CONFIG_SND_SOC_STI_SAS is not set
# CONFIG_SND_SOC_TAS2552 is not set
CONFIG_SND_SOC_TAS2562=m
+CONFIG_SND_SOC_TAS2764=m
CONFIG_SND_SOC_TAS2770=m
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TAS571X is not set
@@ -5498,9 +5592,25 @@ CONFIG_SONY_FF=y
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SOUNDWIRE_CADENCE=m
# CONFIG_SOUNDWIRE_INTEL is not set
+# CONFIG_SOUNDWIRE_QCOM is not set
CONFIG_SOUNDWIRE=y
CONFIG_SPARSEMEM_MANUAL=y
-# CONFIG_SPEAKUP is not set
+CONFIG_SPEAKUP=m
+# CONFIG_SPEAKUP_SYNTH_ACNTPC is not set
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+# CONFIG_SPEAKUP_SYNTH_DECEXT is not set
+# CONFIG_SPEAKUP_SYNTH_DECPC is not set
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+# CONFIG_SPEAKUP_SYNTH_DTLK is not set
+# CONFIG_SPEAKUP_SYNTH_DUMMY is not set
+# CONFIG_SPEAKUP_SYNTH_KEYPC is not set
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_AMD is not set
# CONFIG_SPI_AXI_SPI_ENGINE is not set
@@ -5536,6 +5646,7 @@ CONFIG_SPI_MUX=m
# CONFIG_SPI_XCOMM is not set
# CONFIG_SPI_XILINX is not set
# CONFIG_SPI_ZYNQMP_GQSPI is not set
+# CONFIG_SPMI_HISI3670 is not set
# CONFIG_SPMI is not set
# CONFIG_SPS30 is not set
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
@@ -5573,6 +5684,7 @@ CONFIG_STACK_VALIDATION=y
# CONFIG_STAGING is not set
CONFIG_STAGING_MEDIA=y
CONFIG_STANDALONE=y
+# CONFIG_STATIC_CALL_SELFTEST is not set
# CONFIG_STATIC_KEYS_SELFTEST is not set
# CONFIG_STATIC_USERMODEHELPER is not set
CONFIG_STE10XP=m
@@ -5592,6 +5704,7 @@ CONFIG_ST_UVIS25_I2C=m
CONFIG_ST_UVIS25=m
CONFIG_ST_UVIS25_SPI=m
# CONFIG_SUN50I_DE2_BUS is not set
+# CONFIG_SUN50I_IOMMU is not set
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -5704,6 +5817,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_HEXDUMP is not set
# CONFIG_TEST_HMM is not set
# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_KASAN_MODULE is not set
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_LIST_SORT is not set
@@ -5876,6 +5990,7 @@ CONFIG_TOUCHSCREEN_WACOM_W8001=m
# CONFIG_TOUCHSCREEN_WM97XX is not set
CONFIG_TOUCHSCREEN_ZET6223=m
CONFIG_TOUCHSCREEN_ZFORCE=m
+CONFIG_TOUCHSCREEN_ZINITIX=m
# CONFIG_TPL0102 is not set
CONFIG_TPM_KEY_PARSER=m
# CONFIG_TPS6105X is not set
@@ -5922,8 +6037,11 @@ CONFIG_TYPEC_HD3SS3220=m
CONFIG_TYPEC=m
CONFIG_TYPEC_MUX_PI3USB30532=m
CONFIG_TYPEC_NVIDIA_ALTMODE=m
+# CONFIG_TYPEC_QCOM_PMIC is not set
# CONFIG_TYPEC_RT1711H is not set
+CONFIG_TYPEC_STUSB160X=m
CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPCI_MAXIM=m
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
@@ -5974,6 +6092,7 @@ CONFIG_UNUSED_SYMBOLS=y
# CONFIG_UNWINDER_FRAME_POINTER is not set
CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
+# CONFIG_USB4_DEBUGFS_WRITE is not set
CONFIG_USB4_NET=m
CONFIG_USB4=y
CONFIG_USB_ACM=m
@@ -6020,6 +6139,7 @@ CONFIG_USB_EMI62=m
CONFIG_USB_EPSON2888=y
# CONFIG_USB_ETH is not set
CONFIG_USB_EZUSB_FX2=m
+# CONFIG_USB_FEW_INIT_RETRIES is not set
# CONFIG_USB_FOTG210_HCD is not set
CONFIG_USB_FTDI_ELAN=m
# CONFIG_USB_FUNCTIONFS is not set
@@ -6120,6 +6240,7 @@ CONFIG_USB_LD=m
CONFIG_USB_LEDS_TRIGGER_USBPORT=m
CONFIG_USB_LED_TRIG=y
CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LGM_PHY=m
# CONFIG_USB_LINK_LAYER_TEST is not set
CONFIG_USB_M5602=m
CONFIG_USB_MA901=m
@@ -6291,7 +6412,7 @@ CONFIG_USB_WDM=m
CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_HISTB is not set
-CONFIG_USB_XHCI_PCI_RENESAS=y
+CONFIG_USB_XHCI_PCI_RENESAS=m
# CONFIG_USB_XHCI_PLATFORM is not set
CONFIG_USB_XUSBATM=m
CONFIG_USB=y
@@ -6335,6 +6456,7 @@ CONFIG_VFIO_MDEV_DEVICE=m
CONFIG_VFIO_MDEV=m
# CONFIG_VFIO_NOIOMMU is not set
CONFIG_VFIO_PCI=m
+CONFIG_VFIO_PCI_ZDEV=y
CONFIG_VGA_ARB_MAX_GPUS=16
CONFIG_VGA_ARB=y
# CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT is not set
@@ -6474,6 +6596,7 @@ CONFIG_VIDEO_SOLO6X10=m
CONFIG_VIDEO_SR030PC30=m
CONFIG_VIDEO_STK1160_COMMON=m
CONFIG_VIDEO_STK1160=m
+# CONFIG_VIDEO_TEGRA_TPG is not set
CONFIG_VIDEO_TM6000_ALSA=m
CONFIG_VIDEO_TM6000_DVB=m
CONFIG_VIDEO_TM6000=m
@@ -6487,6 +6610,7 @@ CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_VIDEO_VS6624=m
# CONFIG_VIDEO_XILINX is not set
+# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIPERBOARD_ADC is not set
# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
CONFIG_VIRT_CPU_ACCOUNTING_NATIVE=y
@@ -6494,7 +6618,7 @@ CONFIG_VIRT_CPU_ACCOUNTING_NATIVE=y
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
-CONFIG_VIRTIO_CONSOLE=y
+# CONFIG_VIRTIO_CONSOLE is not set
# CONFIG_VIRTIO_FS is not set
CONFIG_VIRTIO_INPUT=m
# CONFIG_VIRTIO_IOMMU is not set
@@ -6652,6 +6776,7 @@ CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_STATISTICS=y
CONFIG_XFRM_SUB_POLICY=y
+# CONFIG_XFRM_USER_COMPAT is not set
CONFIG_XFRM_USER=y
CONFIG_XFRM=y
# CONFIG_XFS_DEBUG is not set
@@ -6661,6 +6786,7 @@ CONFIG_XFS_ONLINE_SCRUB=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_QUOTA=y
# CONFIG_XFS_RT is not set
+CONFIG_XFS_SUPPORT_V4=y
# CONFIG_XFS_WARN is not set
# CONFIG_XIL_AXIS_FIFO is not set
# CONFIG_XILINX_AXI_EMAC is not set
@@ -6687,6 +6813,7 @@ CONFIG_YELLOWFIN=m
CONFIG_YENTA=m
CONFIG_Z3FOLD=y
CONFIG_ZBUD=y
+# CONFIG_ZCRYPT_DEBUG is not set
CONFIG_ZCRYPT=m
CONFIG_ZCRYPT_MULTIDEVNODES=y
# CONFIG_ZD1211RW_DEBUG is not set
@@ -6723,4 +6850,5 @@ CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
# Select this config option to add support for the initrd= command
# This option determines the default init for the system if no init=
# warnings from C=1 sparse checker or -Wextra compilations. It has
+# You can set the size of pernuma CMA by specifying "cma_pernuma=size"
CONFIG_ZENIFY=y
diff --git a/SOURCES/kernel-x86_64-debug-fedora.config b/SOURCES/kernel-x86_64-debug-fedora.config
index b640625..d5c32db 100644
--- a/SOURCES/kernel-x86_64-debug-fedora.config
+++ b/SOURCES/kernel-x86_64-debug-fedora.config
@@ -1,5 +1,6 @@
# x86_64
# 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
+# beginning with "crc=". If the string "crc=0" is found, the
# CONFIG_60XX_WDT is not set
CONFIG_64BIT=y
CONFIG_6LOWPAN_DEBUGFS=y
@@ -58,6 +59,7 @@ CONFIG_ACPI_CUSTOM_METHOD=m
# CONFIG_ACPI_DEBUGGER is not set
CONFIG_ACPI_DEBUG=y
CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_DPTF=y
CONFIG_ACPI_EC_DEBUGFS=m
# CONFIG_ACPI_EXTLOG is not set
CONFIG_ACPI_FAN=y
@@ -167,6 +169,7 @@ CONFIG_ADUX1020=m
# CONFIG_ADXL345_SPI is not set
CONFIG_ADXL372_I2C=m
CONFIG_ADXL372_SPI=m
+CONFIG_ADXRS290=m
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -266,21 +269,26 @@ CONFIG_ARCH_RANDOM=y
# CONFIG_ARCH_S3C24XX is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_SPARX5 is not set
+# CONFIG_ARCH_VISCONTI is not set
# CONFIG_ARCNET is not set
CONFIG_ARM64_AMU_EXTN=y
CONFIG_ARM64_BTI=y
CONFIG_ARM64_E0PD=y
CONFIG_ARM64_ERRATUM_1319367=y
+CONFIG_ARM64_ERRATUM_1508412=y
CONFIG_ARM64_ERRATUM_1530923=y
CONFIG_ARM64_ERRATUM_1542419=y
CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_USE_LSE_ATOMICS=y
+# CONFIG_ARM_CMN is not set
CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y
CONFIG_ARM_PTDUMP_DEBUGFS=y
CONFIG_ARM_SMCCC_SOC_ID=y
# CONFIG_ARM_SMC_WATCHDOG is not set
# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set
+# CONFIG_ARM_SMMU_V3_SVA is not set
# CONFIG_AS3935 is not set
+# CONFIG_AS73211 is not set
CONFIG_ASUS_LAPTOP=m
CONFIG_ASUS_NB_WMI=m
CONFIG_ASUS_WIRELESS=m
@@ -308,9 +316,11 @@ CONFIG_ATH10K_SDIO=m
# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
+CONFIG_ATH11K_AHB=m
CONFIG_ATH11K_DEBUGFS=y
# CONFIG_ATH11K_DEBUG is not set
CONFIG_ATH11K=m
+CONFIG_ATH11K_PCI=m
# CONFIG_ATH11K_SPECTRAL is not set
# CONFIG_ATH11K_TRACING is not set
CONFIG_ATH5K_DEBUG=y
@@ -421,6 +431,7 @@ CONFIG_BACKLIGHT_ARCXCNN=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
# CONFIG_BACKLIGHT_GPIO is not set
+CONFIG_BACKLIGHT_KTD253=m
CONFIG_BACKLIGHT_LED=m
# CONFIG_BACKLIGHT_LM3630A is not set
# CONFIG_BACKLIGHT_LM3639 is not set
@@ -582,6 +593,8 @@ CONFIG_BPF_JIT=y
CONFIG_BPF_KPROBE_OVERRIDE=y
CONFIG_BPF_LIRC_MODE2=y
CONFIG_BPF_LSM=y
+CONFIG_BPF_PRELOAD_UMD=m
+CONFIG_BPF_PRELOAD=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -714,6 +727,7 @@ CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_ISOTP is not set
# CONFIG_CAN_J1939 is not set
# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
@@ -723,6 +737,7 @@ CONFIG_CAN_M_CAN=m
# CONFIG_CAN_M_CAN_PLATFORM is not set
# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
+# CONFIG_CAN_MCP251XFD is not set
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
CONFIG_CAN_PEAK_PCIEFD=m
@@ -802,6 +817,7 @@ CONFIG_CHARGER_BQ24190=m
# CONFIG_CHARGER_BQ24735 is not set
CONFIG_CHARGER_BQ2515X=m
# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_BQ25980 is not set
CONFIG_CHARGER_CROS_USBPD=m
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
# CONFIG_CHARGER_GPIO is not set
@@ -820,7 +836,8 @@ CONFIG_CHARLCD_BL_FLASH=y
# CONFIG_CHARLCD_BL_OFF is not set
# CONFIG_CHARLCD_BL_ON is not set
CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_CHELSIO_IPSEC_INLINE=y
+CONFIG_CHELSIO_INLINE_CRYPTO=y
+CONFIG_CHELSIO_IPSEC_INLINE=m
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -828,7 +845,7 @@ CONFIG_CHELSIO_T4_DCB=y
# CONFIG_CHELSIO_T4_FCOE is not set
CONFIG_CHELSIO_T4=m
CONFIG_CHELSIO_T4VF=m
-CONFIG_CHELSIO_TLS_DEVICE=y
+CONFIG_CHELSIO_TLS_DEVICE=m
CONFIG_CHR_DEV_SCH=m
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_ST=m
@@ -1120,7 +1137,9 @@ CONFIG_CRYPTO_SHA256_SSSE3=m
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA3=m
CONFIG_CRYPTO_SHA512_SSSE3=m
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
+CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
CONFIG_CRYPTO_STATS=y
@@ -1133,7 +1152,9 @@ CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
CONFIG_CRYPTO_TWOFISH_X86_64=m
CONFIG_CRYPTO_USER_API_AEAD=y
+# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
CONFIG_CRYPTO_USER_API_HASH=y
+# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER=m
@@ -1144,6 +1165,7 @@ CONFIG_CRYPTO_XTS=y
CONFIG_CRYPTO_XXHASH=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ZSTD=m
+# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
CONFIG_CUSE=m
CONFIG_CW1200=m
CONFIG_CW1200_WLAN_SDIO=m
@@ -1293,6 +1315,7 @@ CONFIG_DMADEVICES_DEBUG=y
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
# CONFIG_DMA_FENCE_TRACE is not set
+# CONFIG_DMA_PERNUMA_CMA is not set
# CONFIG_DMARD06 is not set
# CONFIG_DMARD09 is not set
CONFIG_DMARD10=m
@@ -1343,6 +1366,7 @@ CONFIG_DP83869_PHY=m
# CONFIG_DP83TC811_PHY is not set
CONFIG_DPOT_DAC=m
# CONFIG_DPS310 is not set
+CONFIG_DPTF_PCH_FIVR=m
CONFIG_DPTF_POWER=m
CONFIG_DRAGONRISE_FF=y
CONFIG_DRBD_FAULT_INJECTION=y
@@ -1353,6 +1377,7 @@ CONFIG_DRM_AMD_DC_DCN2_1=y
CONFIG_DRM_AMD_DC_DCN3_0=y
CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
CONFIG_DRM_AMD_DC_HDCP=y
+CONFIG_DRM_AMD_DC_SI=y
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMDGPU_CIK=y
# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
@@ -1365,6 +1390,7 @@ CONFIG_DRM_ANALOGIX_ANX78XX=m
CONFIG_DRM_AST=m
CONFIG_DRM_BOCHS=m
# CONFIG_DRM_CDNS_DSI is not set
+# CONFIG_DRM_CDNS_MHDP8546 is not set
CONFIG_DRM_CHRONTEL_CH7033=m
CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_SELFTEST is not set
@@ -1399,6 +1425,7 @@ CONFIG_DRM_I915_USERPTR=y
# CONFIG_DRM_KOMEDA is not set
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LONTIUM_LT9611 is not set
# CONFIG_DRM_LVDS_CODEC is not set
# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
@@ -1429,6 +1456,7 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m
# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_LVDS is not set
+CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m
# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
CONFIG_DRM_PANEL_NOVATEK_NT35510=m
# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
@@ -1484,9 +1512,11 @@ CONFIG_DRM_TIDSS=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TI_TPD12S015=m
+CONFIG_DRM_TOSHIBA_TC358762=m
CONFIG_DRM_TOSHIBA_TC358764=m
# CONFIG_DRM_TOSHIBA_TC358767 is not set
CONFIG_DRM_TOSHIBA_TC358768=m
+CONFIG_DRM_TOSHIBA_TC358775=m
CONFIG_DRM_UDL=m
CONFIG_DRM_VBOXVIDEO=m
CONFIG_DRM_VGEM=m
@@ -1592,6 +1622,7 @@ CONFIG_DW_EDMA=m
CONFIG_DW_EDMA_PCIE=m
CONFIG_DWMAC_IMX8=m
CONFIG_DWMAC_INTEL=m
+CONFIG_DWMAC_INTEL_PLAT=m
# CONFIG_DW_WATCHDOG is not set
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DYNAMIC_FTRACE=y
@@ -1686,7 +1717,10 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
CONFIG_ETHTOOL_NETLINK=y
# CONFIG_EUROTECH_WDT is not set
-# CONFIG_EVM is not set
+# CONFIG_EVM_ADD_XATTRS is not set
+CONFIG_EVM_ATTR_FSUUID=y
+# CONFIG_EVM_LOAD_X509 is not set
+CONFIG_EVM=y
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
CONFIG_EXFAT_FS=m
# CONFIG_EXPERT is not set
@@ -1749,6 +1783,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
CONFIG_FAT_FS=m
CONFIG_FAULT_INJECTION_DEBUG_FS=y
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
+# CONFIG_FAULT_INJECTION_USERCOPY is not set
CONFIG_FAULT_INJECTION=y
# CONFIG_FB_3DFX is not set
# CONFIG_FB_ARC is not set
@@ -1892,6 +1927,7 @@ CONFIG_FUJITSU_TABLET=m
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_FUNCTION_TRACER=y
+CONFIG_FUSE_DAX=y
CONFIG_FUSE_FS=m
CONFIG_FUSION_CTL=m
CONFIG_FUSION_FC=m
@@ -1949,7 +1985,10 @@ CONFIG_GIGASET_CAPI=y
CONFIG_GIGASET_M101=m
CONFIG_GIGASET_M105=m
# CONFIG_GLOB_SELFTEST is not set
-# CONFIG_GNSS is not set
+CONFIG_GNSS=m
+CONFIG_GNSS_MTK_SERIAL=m
+CONFIG_GNSS_SIRF_SERIAL=m
+CONFIG_GNSS_UBX_SERIAL=m
# CONFIG_GOLDFISH is not set
# CONFIG_GOOGLE_FIRMWARE is not set
CONFIG_GP2AP002=m
@@ -1966,6 +2005,7 @@ CONFIG_GPIO_AMDPT=m
# CONFIG_GPIO_BCM_XGS_IPROC is not set
CONFIG_GPIO_BD9571MWV=m
CONFIG_GPIO_CADENCE=m
+CONFIG_GPIO_CDEV_V1=y
CONFIG_GPIO_CRYSTAL_COVE=y
# CONFIG_GPIO_CS5535 is not set
# CONFIG_GPIO_DWAPB is not set
@@ -1993,6 +2033,7 @@ CONFIG_GPIO_MAX77650=m
CONFIG_GPIO_MLXBF2=m
# CONFIG_GPIO_MOCKUP is not set
CONFIG_GPIO_MSIC=y
+CONFIG_GPIO_MXC=m
# CONFIG_GPIO_PCA953X_IRQ is not set
CONFIG_GPIO_PCA953X=m
CONFIG_GPIO_PCA9570=m
@@ -2037,6 +2078,7 @@ CONFIG_HARDLOCKUP_DETECTOR=y
CONFIG_HAVE_MEMORY_PRESENT=y
CONFIG_HD44780=m
# CONFIG_HDC100X is not set
+CONFIG_HDC2010=m
CONFIG_HDMI_LPE_AUDIO=m
CONFIG_HEADERS_CHECK=y
CONFIG_HEADERS_INSTALL=y
@@ -2154,6 +2196,7 @@ CONFIG_HID_U2FZERO=m
CONFIG_HID_UCLOGIC=m
CONFIG_HID_UDRAW_PS3=m
CONFIG_HID_VIEWSONIC=m
+CONFIG_HID_VIVALDI=m
CONFIG_HID_WACOM=m
CONFIG_HID_WALTOP=m
CONFIG_HID_WIIMOTE=m
@@ -2164,6 +2207,7 @@ CONFIG_HID_ZYDACRON=m
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_HIPPI is not set
# CONFIG_HISI_DMA is not set
+CONFIG_HISI_HIKEY_USB=m
# CONFIG_HIST_TRIGGERS_DEBUG is not set
CONFIG_HIST_TRIGGERS=y
CONFIG_HMC425=m
@@ -2223,6 +2267,7 @@ CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIA=m
CONFIG_HW_RANDOM_VIRTIO=y
+CONFIG_HW_RANDOM_XIPHERA=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK=y
# CONFIG_HX711 is not set
@@ -2281,6 +2326,7 @@ CONFIG_I2C_HID=m
CONFIG_I2C_I801=m
CONFIG_I2C_ISCH=m
CONFIG_I2C_ISMT=m
+CONFIG_I2C_MLXBF=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MULTI_INSTANTIATE=m
# CONFIG_I2C_MUX_GPIO is not set
@@ -2312,6 +2358,7 @@ CONFIG_I2C_SIMTEC=m
# CONFIG_I2C_SIS630 is not set
CONFIG_I2C_SIS96X=m
CONFIG_I2C_SLAVE_EEPROM=m
+# CONFIG_I2C_SLAVE_TESTUNIT is not set
CONFIG_I2C_SLAVE=y
CONFIG_I2C_STUB=m
# CONFIG_I2C_TAOS_EVM is not set
@@ -2369,6 +2416,8 @@ CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IGC=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_DMAENGINE=m
+CONFIG_IIO_BUFFER_DMA=m
CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
@@ -2401,6 +2450,7 @@ CONFIG_IIO_SW_TRIGGER=m
# CONFIG_IIO_SYSFS_TRIGGER is not set
CONFIG_IIO_TIGHTLOOP_TRIGGER=m
CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_TRIGGERED_EVENT=m
CONFIG_IIO_TRIGGER=y
# CONFIG_IKCONFIG is not set
CONFIG_IKHEADERS=m
@@ -2408,9 +2458,10 @@ CONFIG_IMA_APPRAISE_BOOTPARAM=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_APPRAISE=y
-# CONFIG_IMA_ARCH_POLICY is not set
+CONFIG_IMA_ARCH_POLICY=y
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
+CONFIG_IMA_DEFAULT_HASH="sha256"
CONFIG_IMA_DEFAULT_HASH_SHA256=y
# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
@@ -2420,6 +2471,7 @@ CONFIG_IMA_LSM_RULES=y
CONFIG_IMA_MEASURE_PCR_IDX=10
CONFIG_IMA_NG_TEMPLATE=y
CONFIG_IMA_READ_POLICY=y
+CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT=y
# CONFIG_IMA_SIG_TEMPLATE is not set
# CONFIG_IMA_TEMPLATE is not set
# CONFIG_IMA_TRUSTED_KEYRING is not set
@@ -2439,6 +2491,7 @@ CONFIG_INET_ESPINTCP=y
CONFIG_INET_ESP=m
CONFIG_INET_ESP_OFFLOAD=m
CONFIG_INET_IPCOMP=m
+CONFIG_INET_MPTCP_DIAG=m
CONFIG_INET_RAW_DIAG=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_UDP_DIAG=m
@@ -2581,6 +2634,7 @@ CONFIG_INTEL_MEI_HDCP=m
CONFIG_INTEL_MEI=m
CONFIG_INTEL_MEI_ME=m
CONFIG_INTEL_MEI_TXE=m
+CONFIG_INTEL_MEI_VIRTIO=m
CONFIG_INTEL_MEI_WDT=m
# CONFIG_INTEL_MENLOW is not set
CONFIG_INTEL_MFLD_THERMAL=m
@@ -2888,6 +2942,7 @@ CONFIG_JFS_SECURITY=y
CONFIG_JME=m
CONFIG_JOLIET=y
CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADC=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
@@ -2929,6 +2984,7 @@ CONFIG_KARMA_PARTITION=y
# CONFIG_KASAN is not set
CONFIG_KASAN_VMALLOC=y
# CONFIG_KCOV is not set
+# CONFIG_KCSAN is not set
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
CONFIG_KDB_DEFAULT_ENABLE=0x0
CONFIG_KDB_KEYBOARD=y
@@ -2943,6 +2999,7 @@ CONFIG_KERNEL_HEADER_TEST=y
CONFIG_KERNEL_ZSTD=y
CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=y
CONFIG_KEXEC_FILE=y
+CONFIG_KEXEC_IMAGE_VERIFY_SIG=y
CONFIG_KEXEC_JUMP=y
# CONFIG_KEXEC_SIG_FORCE is not set
CONFIG_KEXEC_SIG=y
@@ -2983,6 +3040,7 @@ CONFIG_KEY_DH_OPERATIONS=y
CONFIG_KEY_NOTIFICATIONS=y
CONFIG_KEYS_REQUEST_CACHE=y
CONFIG_KEYS=y
+CONFIG_KGDB_HONOUR_BLOCKLIST=y
CONFIG_KGDB_KDB=y
CONFIG_KGDB_LOW_LEVEL_TRAP=y
CONFIG_KGDB_SERIAL_CONSOLE=y
@@ -3043,6 +3101,7 @@ CONFIG_LDM_PARTITION=y
# CONFIG_LEDS_AAT1290 is not set
CONFIG_LEDS_AN30259A=m
CONFIG_LEDS_APU=m
+# CONFIG_LEDS_ARIEL is not set
CONFIG_LEDS_AS3645A=m
# CONFIG_LEDS_AW2013 is not set
# CONFIG_LEDS_BCM6328 is not set
@@ -3070,6 +3129,7 @@ CONFIG_LEDS_LM3601X=m
CONFIG_LEDS_LM3692X=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
+CONFIG_LEDS_LP50XX=m
# CONFIG_LEDS_LP5521 is not set
# CONFIG_LEDS_LP5523 is not set
# CONFIG_LEDS_LP5562 is not set
@@ -3364,10 +3424,13 @@ CONFIG_MFD_CROS_EC_DEV=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
+CONFIG_MFD_ENE_KB3930=m
# CONFIG_MFD_GATEWORKS_GSC is not set
# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_MFD_HI6421_SPMI is not set
CONFIG_MFD_INTEL_LPSS_ACPI=y
CONFIG_MFD_INTEL_LPSS_PCI=y
+CONFIG_MFD_INTEL_M10_BMC=m
CONFIG_MFD_INTEL_MSIC=y
CONFIG_MFD_INTEL_PMC_BXT=m
# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set
@@ -3409,6 +3472,7 @@ CONFIG_MFD_MAX77650=m
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SL28CPLD is not set
CONFIG_MFD_SM501_GPIO=y
CONFIG_MFD_SM501=m
# CONFIG_MFD_SMSC is not set
@@ -3446,6 +3510,7 @@ CONFIG_MFD_WL1273_CORE=m
# CONFIG_MFD_WM8994 is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
+# CONFIG_MHI_BUS_DEBUG is not set
CONFIG_MHI_BUS=m
CONFIG_MIC_COSM=m
# CONFIG_MICREL_KS8995MA is not set
@@ -3707,6 +3772,7 @@ CONFIG_MUX_GPIO=m
CONFIG_MUX_MMIO=m
# CONFIG_MVIAC7 is not set
CONFIG_MVMDIO=m
+CONFIG_MVPP2_PTP=y
CONFIG_MWAVE=m
CONFIG_MWIFIEX=m
CONFIG_MWIFIEX_PCIE=m
@@ -4144,6 +4210,7 @@ CONFIG_NFS_V3=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
CONFIG_NFS_V4_1=y
+# CONFIG_NFS_V4_2_READ_PLUS is not set
CONFIG_NFS_V4_2=y
CONFIG_NFS_V4=m
CONFIG_NF_TABLES_ARP=y
@@ -4195,6 +4262,7 @@ CONFIG_N_HDLC=m
# CONFIG_NI903X_WDT is not set
CONFIG_NIC7018_WDT=m
CONFIG_NILFS2_FS=m
+CONFIG_NITRO_ENCLAVES=m
CONFIG_NIU=m
# CONFIG_NL80211_TESTMODE is not set
CONFIG_NLMON=m
@@ -4438,6 +4506,7 @@ CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT_HOST is not set
CONFIG_PCIE_ECRC=y
CONFIG_PCIE_EDR=y
+# CONFIG_PCIE_HISI_ERR is not set
# CONFIG_PCIE_INTEL_GW is not set
# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set
# CONFIG_PCIE_MOBIVEIL is not set
@@ -4482,6 +4551,7 @@ CONFIG_PCMCIA_XIRC2PS=m
CONFIG_PCMCIA_XIRCOM=m
CONFIG_PCMCIA=y
CONFIG_PCNET32=m
+CONFIG_PCS_XPCS=m
CONFIG_PD6729=m
# CONFIG_PDA_POWER is not set
CONFIG_PDC_ADMA=m
@@ -4504,8 +4574,12 @@ CONFIG_PHY_CADENCE_SIERRA=m
CONFIG_PHY_CADENCE_TORRENT=m
# CONFIG_PHY_CPCAP_USB is not set
# CONFIG_PHY_FSL_IMX8MQ_USB is not set
+# CONFIG_PHY_HI3670_USB is not set
CONFIG_PHY_INTEL_COMBO=y
CONFIG_PHY_INTEL_EMMC=m
+# CONFIG_PHY_INTEL_KEEMBAY_EMMC is not set
+CONFIG_PHY_INTEL_LGM_COMBO=y
+CONFIG_PHY_INTEL_LGM_EMMC=m
CONFIG_PHYLIB=y
CONFIG_PHYLINK=m
# CONFIG_PHY_MAPPHONE_MDM6600 is not set
@@ -4543,6 +4617,7 @@ CONFIG_PINCTRL_JASPERLAKE=m
CONFIG_PINCTRL_LEWISBURG=m
CONFIG_PINCTRL_LYNXPOINT=m
# CONFIG_PINCTRL_MCP23S08 is not set
+# CONFIG_PINCTRL_MSM8226 is not set
# CONFIG_PINCTRL_MSM8976 is not set
# CONFIG_PINCTRL_OCELOT is not set
# CONFIG_PINCTRL_QCS404 is not set
@@ -4553,6 +4628,8 @@ CONFIG_PINCTRL_RK805=m
# CONFIG_PINCTRL_SM8250 is not set
# CONFIG_PINCTRL_STMFX is not set
# CONFIG_PINCTRL_SUN4I_A10 is not set
+# CONFIG_PINCTRL_SUN50I_A100 is not set
+# CONFIG_PINCTRL_SUN50I_A100_R is not set
# CONFIG_PINCTRL_SUN50I_A64 is not set
# CONFIG_PINCTRL_SUN50I_A64_R is not set
# CONFIG_PINCTRL_SUN50I_H5 is not set
@@ -4610,7 +4687,6 @@ CONFIG_POSIX_MQUEUE=y
# CONFIG_POWER7_CPU is not set
# CONFIG_POWER8_CPU is not set
# CONFIG_POWER9_CPU is not set
-# CONFIG_POWER_AVS is not set
CONFIG_POWERCAP=y
# CONFIG_POWER_RESET_BRCMKONA is not set
# CONFIG_POWER_RESET_BRCMSTB is not set
@@ -4627,6 +4703,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_PPC_PROT_SAO_LPAR is not set
# CONFIG_PPC_PTDUMP is not set
# CONFIG_PPC_QUEUED_SPINLOCKS is not set
+CONFIG_PPC_RTAS_FILTER=y
CONFIG_PPDEV=m
CONFIG_PPP_ASYNC=m
CONFIG_PPP_BSDCOMP=m
@@ -4651,6 +4728,8 @@ CONFIG_PPTP=m
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PRESTERA=m
+CONFIG_PRESTERA_PCI=m
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_PRIME_NUMBERS is not set
CONFIG_PRINTER=m
@@ -4744,8 +4823,10 @@ CONFIG_QLCNIC_SRIOV=y
CONFIG_QLGE=m
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX6FS_FS is not set
-# CONFIG_QRTR is not set
+CONFIG_QRTR=m
CONFIG_QRTR_MHI=m
+CONFIG_QRTR_SMD=m
+CONFIG_QRTR_TUN=m
CONFIG_QSEMI_PHY=m
CONFIG_QTNFMAC_PCIE=m
# CONFIG_QUICC_ENGINE is not set
@@ -4806,6 +4887,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_PERF_TEST is not set
CONFIG_RCU_REF_SCALE_TEST=m
+# CONFIG_RCU_SCALE_TEST is not set
CONFIG_RCU_TORTURE_TEST=m
# CONFIG_RCU_TRACE is not set
CONFIG_RC_XBOX_DVD=m
@@ -4840,7 +4922,7 @@ CONFIG_REGMAP=y
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR_FAN53555 is not set
# CONFIG_REGULATOR_FAN53880 is not set
-# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
# CONFIG_REGULATOR_GPIO is not set
# CONFIG_REGULATOR_ISL6271A is not set
# CONFIG_REGULATOR_ISL9305 is not set
@@ -4868,6 +4950,9 @@ CONFIG_REGULATOR_MP886X=m
# CONFIG_REGULATOR_PV88080 is not set
# CONFIG_REGULATOR_PV88090 is not set
# CONFIG_REGULATOR_PWM is not set
+# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set
+CONFIG_REGULATOR_RT4801=m
+CONFIG_REGULATOR_RTMV20=m
# CONFIG_REGULATOR_SLG51000 is not set
# CONFIG_REGULATOR_SY8106A is not set
# CONFIG_REGULATOR_SY8824X is not set
@@ -4918,6 +5003,7 @@ CONFIG_RMI4_F11=y
CONFIG_RMI4_F12=y
CONFIG_RMI4_F30=y
CONFIG_RMI4_F34=y
+CONFIG_RMI4_F3A=y
# CONFIG_RMI4_F54 is not set
CONFIG_RMI4_F55=y
CONFIG_RMI4_I2C=m
@@ -5034,6 +5120,7 @@ CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_RV3028=m
CONFIG_RTC_DRV_RV3029C2=m
CONFIG_RTC_DRV_RV3029_HWMON=y
+CONFIG_RTC_DRV_RV3032=m
# CONFIG_RTC_DRV_RV8803 is not set
CONFIG_RTC_DRV_RX4581=m
# CONFIG_RTC_DRV_RX6110 is not set
@@ -5056,7 +5143,7 @@ CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_SYSFS=y
-# CONFIG_RTC_NVMEM is not set
+CONFIG_RTC_NVMEM=y
# CONFIG_RTC_SYSTOHC is not set
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_RTL8180=m
@@ -5129,6 +5216,7 @@ CONFIG_SCD30_CORE=m
CONFIG_SCD30_I2C=m
CONFIG_SCD30_SERIAL=m
# CONFIG_SC_DISPCC_7180 is not set
+# CONFIG_SCF_TORTURE_TEST is not set
# CONFIG_SC_GPUCC_7180 is not set
CONFIG_SCHED_AUTOGROUP=y
CONFIG_SCHED_DEBUG=y
@@ -5267,7 +5355,7 @@ CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0
CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_DISABLE=y
+# CONFIG_SECURITY_SELINUX_DISABLE is not set
CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
CONFIG_SECURITY_SELINUX=y
@@ -5290,6 +5378,7 @@ CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
# CONFIG_SENSORS_ADM1177 is not set
+CONFIG_SENSORS_ADM1266=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ADS7828=m
@@ -5348,6 +5437,7 @@ CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
# CONFIG_SENSORS_INSPUR_IPSPS is not set
+CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -5414,6 +5504,8 @@ CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_MLXREG_FAN=m
+CONFIG_SENSORS_MP2975=m
+CONFIG_SENSORS_MR75203=m
CONFIG_SENSORS_NCT6683=m
CONFIG_SENSORS_NCT6775=m
CONFIG_SENSORS_NCT7802=m
@@ -5586,6 +5678,7 @@ CONFIG_SLUB=y
CONFIG_SMARTJOYPLUS_FF=y
CONFIG_SMC_DIAG=m
CONFIG_SMC=m
+# CONFIG_SM_DISPCC_8250 is not set
# CONFIG_SM_FTL is not set
CONFIG_SMP=y
# CONFIG_SMSC37B787_WDT is not set
@@ -5598,6 +5691,8 @@ CONFIG_SMS_SDIO_DRV=m
CONFIG_SMS_SIANO_MDTV=m
CONFIG_SMS_SIANO_RC=y
CONFIG_SMS_USB_DRV=m
+# CONFIG_SM_VIDEOCC_8150 is not set
+# CONFIG_SM_VIDEOCC_8250 is not set
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AD1889=m
@@ -5770,6 +5865,7 @@ CONFIG_SND_SOC_CROS_EC_CODEC=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
+CONFIG_SND_SOC_CS4234=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -5807,7 +5903,6 @@ CONFIG_SND_SOC_HDAC_HDA=m
CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_IMG is not set
-# CONFIG_SND_SOC_IMX_AUDMIX is not set
# CONFIG_SND_SOC_IMX_AUDMUX is not set
# CONFIG_SND_SOC_IMX_ES8328 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
@@ -5822,6 +5917,7 @@ CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m
CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
+CONFIG_SND_SOC_INTEL_CATPT=m
CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
@@ -5851,6 +5947,7 @@ CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH=m
CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH=m
+CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
@@ -5890,14 +5987,14 @@ CONFIG_SND_SOC_PCM512x_I2C=m
# CONFIG_SND_SOC_PCM512x_SPI is not set
# CONFIG_SND_SOC_RK3328 is not set
CONFIG_SND_SOC_RL6231=m
-# CONFIG_SND_SOC_RT1308_SDW is not set
+CONFIG_SND_SOC_RT1308_SDW=m
# CONFIG_SND_SOC_RT5616 is not set
# CONFIG_SND_SOC_RT5631 is not set
CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_RT5682_SDW=m
-# CONFIG_SND_SOC_RT700_SDW is not set
-# CONFIG_SND_SOC_RT711_SDW is not set
-# CONFIG_SND_SOC_RT715_SDW is not set
+CONFIG_SND_SOC_RT700_SDW=m
+CONFIG_SND_SOC_RT711_SDW=m
+CONFIG_SND_SOC_RT715_SDW=m
# CONFIG_SND_SOC_SAMSUNG_ARIES_WM8994 is not set
CONFIG_SND_SOC_SAMSUNG_MIDAS_WM1811=m
# CONFIG_SND_SOC_SGTL5000 is not set
@@ -5921,6 +6018,7 @@ CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y
CONFIG_SND_SOC_SOF_HDA_LINK=y
CONFIG_SND_SOC_SOF_HDA_PROBES=y
CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK=y
CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
@@ -5941,6 +6039,7 @@ CONFIG_SND_SOC_SSM4567=m
# CONFIG_SND_SOC_STI_SAS is not set
# CONFIG_SND_SOC_TAS2552 is not set
CONFIG_SND_SOC_TAS2562=m
+CONFIG_SND_SOC_TAS2764=m
CONFIG_SND_SOC_TAS2770=m
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TAS571X is not set
@@ -6034,6 +6133,7 @@ CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SOUNDWIRE_CADENCE=m
CONFIG_SOUNDWIRE_INTEL=m
+# CONFIG_SOUNDWIRE_QCOM is not set
CONFIG_SOUNDWIRE=y
CONFIG_SP5100_TCO=m
CONFIG_SPARSE_IRQ=y
@@ -6041,7 +6141,22 @@ CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_SPARSEMEM=y
-# CONFIG_SPEAKUP is not set
+CONFIG_SPEAKUP=m
+# CONFIG_SPEAKUP_SYNTH_ACNTPC is not set
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+# CONFIG_SPEAKUP_SYNTH_DECEXT is not set
+# CONFIG_SPEAKUP_SYNTH_DECPC is not set
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+# CONFIG_SPEAKUP_SYNTH_DTLK is not set
+# CONFIG_SPEAKUP_SYNTH_DUMMY is not set
+# CONFIG_SPEAKUP_SYNTH_KEYPC is not set
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_AMD is not set
# CONFIG_SPI_AXI_SPI_ENGINE is not set
@@ -6078,6 +6193,7 @@ CONFIG_SPI_SPIDEV=m
# CONFIG_SPI_XILINX is not set
CONFIG_SPI=y
# CONFIG_SPI_ZYNQMP_GQSPI is not set
+# CONFIG_SPMI_HISI3670 is not set
# CONFIG_SPMI is not set
# CONFIG_SPS30 is not set
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
@@ -6116,6 +6232,7 @@ CONFIG_STACK_VALIDATION=y
CONFIG_STAGING_MEDIA=y
CONFIG_STAGING=y
CONFIG_STANDALONE=y
+# CONFIG_STATIC_CALL_SELFTEST is not set
# CONFIG_STATIC_KEYS_SELFTEST is not set
# CONFIG_STATIC_USERMODEHELPER is not set
CONFIG_STE10XP=m
@@ -6141,6 +6258,7 @@ CONFIG_ST_UVIS25_I2C=m
CONFIG_ST_UVIS25=m
CONFIG_ST_UVIS25_SPI=m
# CONFIG_SUN50I_DE2_BUS is not set
+# CONFIG_SUN50I_IOMMU is not set
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -6256,6 +6374,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_HEXDUMP is not set
# CONFIG_TEST_HMM is not set
# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_KASAN_MODULE is not set
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
CONFIG_TEST_LIST_SORT=y
@@ -6432,6 +6551,7 @@ CONFIG_TOUCHSCREEN_WACOM_W8001=m
# CONFIG_TOUCHSCREEN_WM97XX is not set
CONFIG_TOUCHSCREEN_ZET6223=m
CONFIG_TOUCHSCREEN_ZFORCE=m
+CONFIG_TOUCHSCREEN_ZINITIX=m
# CONFIG_TPL0102 is not set
CONFIG_TPM_KEY_PARSER=m
# CONFIG_TPS6105X is not set
@@ -6480,8 +6600,11 @@ CONFIG_TYPEC=m
CONFIG_TYPEC_MUX_INTEL_PMC=m
CONFIG_TYPEC_MUX_PI3USB30532=m
CONFIG_TYPEC_NVIDIA_ALTMODE=m
+# CONFIG_TYPEC_QCOM_PMIC is not set
# CONFIG_TYPEC_RT1711H is not set
+CONFIG_TYPEC_STUSB160X=m
CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPCI_MAXIM=m
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
@@ -6534,6 +6657,7 @@ CONFIG_UNUSED_SYMBOLS=y
CONFIG_UNWINDER_ORC=y
CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
+# CONFIG_USB4_DEBUGFS_WRITE is not set
CONFIG_USB4=m
CONFIG_USB4_NET=m
CONFIG_USB_ACM=m
@@ -6580,6 +6704,7 @@ CONFIG_USB_EMI62=m
CONFIG_USB_EPSON2888=y
# CONFIG_USB_ETH is not set
CONFIG_USB_EZUSB_FX2=m
+# CONFIG_USB_FEW_INIT_RETRIES is not set
# CONFIG_USB_FOTG210_HCD is not set
CONFIG_USB_FTDI_ELAN=m
# CONFIG_USB_FUNCTIONFS is not set
@@ -6680,6 +6805,7 @@ CONFIG_USB_LD=m
CONFIG_USB_LEDS_TRIGGER_USBPORT=m
CONFIG_USB_LED_TRIG=y
CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LGM_PHY=m
# CONFIG_USB_LINK_LAYER_TEST is not set
CONFIG_USB_M5602=m
CONFIG_USB_MA901=m
@@ -6853,7 +6979,7 @@ CONFIG_USB_WDM=m
CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_HISTB is not set
-CONFIG_USB_XHCI_PCI_RENESAS=y
+CONFIG_USB_XHCI_PCI_RENESAS=m
CONFIG_USB_XHCI_PLATFORM=m
CONFIG_USB_XUSBATM=m
CONFIG_USB=y
@@ -6899,6 +7025,7 @@ CONFIG_VFIO_MDEV=m
CONFIG_VFIO_PCI_IGD=y
CONFIG_VFIO_PCI=m
CONFIG_VFIO_PCI_VGA=y
+CONFIG_VFIO_PCI_ZDEV=y
CONFIG_VGA_ARB_MAX_GPUS=16
CONFIG_VGA_ARB=y
# CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT is not set
@@ -7043,6 +7170,7 @@ CONFIG_VIDEO_SOLO6X10=m
CONFIG_VIDEO_SR030PC30=m
CONFIG_VIDEO_STK1160_COMMON=m
CONFIG_VIDEO_STK1160=m
+# CONFIG_VIDEO_TEGRA_TPG is not set
CONFIG_VIDEO_TM6000_ALSA=m
CONFIG_VIDEO_TM6000_DVB=m
CONFIG_VIDEO_TM6000=m
@@ -7056,6 +7184,7 @@ CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_VIDEO_VS6624=m
# CONFIG_VIDEO_XILINX is not set
+# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIPERBOARD_ADC is not set
CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
@@ -7309,6 +7438,7 @@ CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_STATISTICS=y
CONFIG_XFRM_SUB_POLICY=y
+# CONFIG_XFRM_USER_COMPAT is not set
CONFIG_XFRM_USER=y
CONFIG_XFRM=y
# CONFIG_XFS_DEBUG is not set
@@ -7318,6 +7448,7 @@ CONFIG_XFS_ONLINE_SCRUB=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_QUOTA=y
# CONFIG_XFS_RT is not set
+CONFIG_XFS_SUPPORT_V4=y
CONFIG_XFS_WARN=y
# CONFIG_XIAOMI_WMI is not set
# CONFIG_XIL_AXIS_FIFO is not set
@@ -7347,6 +7478,7 @@ CONFIG_YELLOWFIN=m
CONFIG_YENTA=m
CONFIG_Z3FOLD=y
CONFIG_ZBUD=y
+# CONFIG_ZCRYPT_DEBUG is not set
# CONFIG_ZD1211RW_DEBUG is not set
CONFIG_ZD1211RW=m
CONFIG_ZEROPLUS_FF=y
@@ -7382,4 +7514,5 @@ CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
# Select this config option to add support for the initrd= command
# This option determines the default init for the system if no init=
# warnings from C=1 sparse checker or -Wextra compilations. It has
+# You can set the size of pernuma CMA by specifying "cma_pernuma=size"
CONFIG_ZENIFY=y
diff --git a/SOURCES/kernel-x86_64-fedora.config b/SOURCES/kernel-x86_64-fedora.config
index 4e2638d..1b5b313 100644
--- a/SOURCES/kernel-x86_64-fedora.config
+++ b/SOURCES/kernel-x86_64-fedora.config
@@ -1,5 +1,6 @@
# x86_64
# 5) PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF representing the
+# beginning with "crc=". If the string "crc=0" is found, the
# CONFIG_60XX_WDT is not set
CONFIG_64BIT=y
CONFIG_6LOWPAN_DEBUGFS=y
@@ -58,6 +59,7 @@ CONFIG_ACPI_CUSTOM_METHOD=m
# CONFIG_ACPI_DEBUGGER is not set
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_DPTF=y
CONFIG_ACPI_EC_DEBUGFS=m
# CONFIG_ACPI_EXTLOG is not set
CONFIG_ACPI_FAN=y
@@ -167,6 +169,7 @@ CONFIG_ADUX1020=m
# CONFIG_ADXL345_SPI is not set
CONFIG_ADXL372_I2C=m
CONFIG_ADXL372_SPI=m
+CONFIG_ADXRS290=m
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -266,20 +269,25 @@ CONFIG_ARCH_RANDOM=y
# CONFIG_ARCH_S3C24XX is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_SPARX5 is not set
+# CONFIG_ARCH_VISCONTI is not set
# CONFIG_ARCNET is not set
CONFIG_ARM64_AMU_EXTN=y
CONFIG_ARM64_BTI=y
CONFIG_ARM64_E0PD=y
CONFIG_ARM64_ERRATUM_1319367=y
+CONFIG_ARM64_ERRATUM_1508412=y
CONFIG_ARM64_ERRATUM_1530923=y
CONFIG_ARM64_ERRATUM_1542419=y
CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_USE_LSE_ATOMICS=y
+# CONFIG_ARM_CMN is not set
CONFIG_ARM_PSCI_CPUIDLE_DOMAIN=y
CONFIG_ARM_SMCCC_SOC_ID=y
# CONFIG_ARM_SMC_WATCHDOG is not set
# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set
+# CONFIG_ARM_SMMU_V3_SVA is not set
# CONFIG_AS3935 is not set
+# CONFIG_AS73211 is not set
CONFIG_ASUS_LAPTOP=m
CONFIG_ASUS_NB_WMI=m
CONFIG_ASUS_WIRELESS=m
@@ -307,9 +315,11 @@ CONFIG_ATH10K_SDIO=m
# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
+CONFIG_ATH11K_AHB=m
CONFIG_ATH11K_DEBUGFS=y
# CONFIG_ATH11K_DEBUG is not set
CONFIG_ATH11K=m
+CONFIG_ATH11K_PCI=m
# CONFIG_ATH11K_SPECTRAL is not set
# CONFIG_ATH11K_TRACING is not set
CONFIG_ATH5K_DEBUG=y
@@ -420,6 +430,7 @@ CONFIG_BACKLIGHT_ARCXCNN=m
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
# CONFIG_BACKLIGHT_GPIO is not set
+CONFIG_BACKLIGHT_KTD253=m
CONFIG_BACKLIGHT_LED=m
# CONFIG_BACKLIGHT_LM3630A is not set
# CONFIG_BACKLIGHT_LM3639 is not set
@@ -581,6 +592,8 @@ CONFIG_BPF_JIT=y
# CONFIG_BPF_KPROBE_OVERRIDE is not set
CONFIG_BPF_LIRC_MODE2=y
CONFIG_BPF_LSM=y
+CONFIG_BPF_PRELOAD_UMD=m
+CONFIG_BPF_PRELOAD=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -713,6 +726,7 @@ CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_ISOTP is not set
# CONFIG_CAN_J1939 is not set
# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
@@ -722,6 +736,7 @@ CONFIG_CAN_M_CAN=m
# CONFIG_CAN_M_CAN_PLATFORM is not set
# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
+# CONFIG_CAN_MCP251XFD is not set
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
CONFIG_CAN_PEAK_PCIEFD=m
@@ -801,6 +816,7 @@ CONFIG_CHARGER_BQ24190=m
# CONFIG_CHARGER_BQ24735 is not set
CONFIG_CHARGER_BQ2515X=m
# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_BQ25980 is not set
CONFIG_CHARGER_CROS_USBPD=m
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
# CONFIG_CHARGER_GPIO is not set
@@ -819,7 +835,8 @@ CONFIG_CHARLCD_BL_FLASH=y
# CONFIG_CHARLCD_BL_OFF is not set
# CONFIG_CHARLCD_BL_ON is not set
CONFIG_CHECKPOINT_RESTORE=y
-CONFIG_CHELSIO_IPSEC_INLINE=y
+CONFIG_CHELSIO_INLINE_CRYPTO=y
+CONFIG_CHELSIO_IPSEC_INLINE=m
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -827,7 +844,7 @@ CONFIG_CHELSIO_T4_DCB=y
# CONFIG_CHELSIO_T4_FCOE is not set
CONFIG_CHELSIO_T4=m
CONFIG_CHELSIO_T4VF=m
-CONFIG_CHELSIO_TLS_DEVICE=y
+CONFIG_CHELSIO_TLS_DEVICE=m
CONFIG_CHR_DEV_SCH=m
CONFIG_CHR_DEV_SG=y
CONFIG_CHR_DEV_ST=m
@@ -1119,7 +1136,9 @@ CONFIG_CRYPTO_SHA256_SSSE3=m
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA3=m
CONFIG_CRYPTO_SHA512_SSSE3=m
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
+CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
CONFIG_CRYPTO_STATS=y
@@ -1132,7 +1151,9 @@ CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m
CONFIG_CRYPTO_TWOFISH_X86_64=m
CONFIG_CRYPTO_USER_API_AEAD=y
+# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
CONFIG_CRYPTO_USER_API_HASH=y
+# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set
CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER=m
@@ -1143,6 +1164,7 @@ CONFIG_CRYPTO_XTS=y
CONFIG_CRYPTO_XXHASH=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ZSTD=m
+# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
CONFIG_CUSE=m
CONFIG_CW1200=m
CONFIG_CW1200_WLAN_SDIO=m
@@ -1284,6 +1306,7 @@ CONFIG_DMA_CMA=y
CONFIG_DMADEVICES=y
CONFIG_DMA_ENGINE=y
# CONFIG_DMA_FENCE_TRACE is not set
+# CONFIG_DMA_PERNUMA_CMA is not set
# CONFIG_DMARD06 is not set
# CONFIG_DMARD09 is not set
CONFIG_DMARD10=m
@@ -1334,6 +1357,7 @@ CONFIG_DP83869_PHY=m
# CONFIG_DP83TC811_PHY is not set
CONFIG_DPOT_DAC=m
# CONFIG_DPS310 is not set
+CONFIG_DPTF_PCH_FIVR=m
CONFIG_DPTF_POWER=m
CONFIG_DRAGONRISE_FF=y
# CONFIG_DRBD_FAULT_INJECTION is not set
@@ -1344,6 +1368,7 @@ CONFIG_DRM_AMD_DC_DCN2_1=y
CONFIG_DRM_AMD_DC_DCN3_0=y
CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
CONFIG_DRM_AMD_DC_HDCP=y
+CONFIG_DRM_AMD_DC_SI=y
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMDGPU_CIK=y
# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
@@ -1356,6 +1381,7 @@ CONFIG_DRM_ANALOGIX_ANX78XX=m
CONFIG_DRM_AST=m
CONFIG_DRM_BOCHS=m
# CONFIG_DRM_CDNS_DSI is not set
+# CONFIG_DRM_CDNS_MHDP8546 is not set
CONFIG_DRM_CHRONTEL_CH7033=m
CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_SELFTEST is not set
@@ -1390,6 +1416,7 @@ CONFIG_DRM_I915_USERPTR=y
# CONFIG_DRM_KOMEDA is not set
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LONTIUM_LT9611 is not set
# CONFIG_DRM_LVDS_CODEC is not set
# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
@@ -1420,6 +1447,7 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m
# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_LVDS is not set
+CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m
# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
CONFIG_DRM_PANEL_NOVATEK_NT35510=m
# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
@@ -1475,9 +1503,11 @@ CONFIG_DRM_TIDSS=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TI_TPD12S015=m
+CONFIG_DRM_TOSHIBA_TC358762=m
CONFIG_DRM_TOSHIBA_TC358764=m
# CONFIG_DRM_TOSHIBA_TC358767 is not set
CONFIG_DRM_TOSHIBA_TC358768=m
+CONFIG_DRM_TOSHIBA_TC358775=m
CONFIG_DRM_UDL=m
CONFIG_DRM_VBOXVIDEO=m
CONFIG_DRM_VGEM=m
@@ -1583,6 +1613,7 @@ CONFIG_DW_EDMA=m
CONFIG_DW_EDMA_PCIE=m
CONFIG_DWMAC_IMX8=m
CONFIG_DWMAC_INTEL=m
+CONFIG_DWMAC_INTEL_PLAT=m
# CONFIG_DW_WATCHDOG is not set
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DYNAMIC_FTRACE=y
@@ -1677,7 +1708,10 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
CONFIG_ETHTOOL_NETLINK=y
# CONFIG_EUROTECH_WDT is not set
-# CONFIG_EVM is not set
+# CONFIG_EVM_ADD_XATTRS is not set
+CONFIG_EVM_ATTR_FSUUID=y
+# CONFIG_EVM_LOAD_X509 is not set
+CONFIG_EVM=y
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
CONFIG_EXFAT_FS=m
# CONFIG_EXPERT is not set
@@ -1733,6 +1767,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
# CONFIG_FAT_DEFAULT_UTF8 is not set
CONFIG_FAT_FS=m
# CONFIG_FAULT_INJECTION is not set
+# CONFIG_FAULT_INJECTION_USERCOPY is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_ARC is not set
# CONFIG_FB_ARK is not set
@@ -1875,6 +1910,7 @@ CONFIG_FUJITSU_TABLET=m
CONFIG_FUNCTION_GRAPH_TRACER=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_FUNCTION_TRACER=y
+CONFIG_FUSE_DAX=y
CONFIG_FUSE_FS=m
CONFIG_FUSION_CTL=m
CONFIG_FUSION_FC=m
@@ -1932,7 +1968,10 @@ CONFIG_GIGASET_CAPI=y
CONFIG_GIGASET_M101=m
CONFIG_GIGASET_M105=m
# CONFIG_GLOB_SELFTEST is not set
-# CONFIG_GNSS is not set
+CONFIG_GNSS=m
+CONFIG_GNSS_MTK_SERIAL=m
+CONFIG_GNSS_SIRF_SERIAL=m
+CONFIG_GNSS_UBX_SERIAL=m
# CONFIG_GOLDFISH is not set
# CONFIG_GOOGLE_FIRMWARE is not set
CONFIG_GP2AP002=m
@@ -1949,6 +1988,7 @@ CONFIG_GPIO_AMDPT=m
# CONFIG_GPIO_BCM_XGS_IPROC is not set
CONFIG_GPIO_BD9571MWV=m
CONFIG_GPIO_CADENCE=m
+CONFIG_GPIO_CDEV_V1=y
CONFIG_GPIO_CRYSTAL_COVE=y
# CONFIG_GPIO_CS5535 is not set
# CONFIG_GPIO_DWAPB is not set
@@ -1976,6 +2016,7 @@ CONFIG_GPIO_MAX77650=m
CONFIG_GPIO_MLXBF2=m
# CONFIG_GPIO_MOCKUP is not set
CONFIG_GPIO_MSIC=y
+CONFIG_GPIO_MXC=m
# CONFIG_GPIO_PCA953X_IRQ is not set
CONFIG_GPIO_PCA953X=m
CONFIG_GPIO_PCA9570=m
@@ -2020,6 +2061,7 @@ CONFIG_HARDLOCKUP_DETECTOR=y
CONFIG_HAVE_MEMORY_PRESENT=y
CONFIG_HD44780=m
# CONFIG_HDC100X is not set
+CONFIG_HDC2010=m
CONFIG_HDMI_LPE_AUDIO=m
CONFIG_HEADERS_CHECK=y
CONFIG_HEADERS_INSTALL=y
@@ -2137,6 +2179,7 @@ CONFIG_HID_U2FZERO=m
CONFIG_HID_UCLOGIC=m
CONFIG_HID_UDRAW_PS3=m
CONFIG_HID_VIEWSONIC=m
+CONFIG_HID_VIVALDI=m
CONFIG_HID_WACOM=m
CONFIG_HID_WALTOP=m
CONFIG_HID_WIIMOTE=m
@@ -2147,6 +2190,7 @@ CONFIG_HID_ZYDACRON=m
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_HIPPI is not set
# CONFIG_HISI_DMA is not set
+CONFIG_HISI_HIKEY_USB=m
# CONFIG_HIST_TRIGGERS_DEBUG is not set
CONFIG_HIST_TRIGGERS=y
CONFIG_HMC425=m
@@ -2206,6 +2250,7 @@ CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIA=m
CONFIG_HW_RANDOM_VIRTIO=y
+CONFIG_HW_RANDOM_XIPHERA=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK=y
# CONFIG_HX711 is not set
@@ -2264,6 +2309,7 @@ CONFIG_I2C_HID=m
CONFIG_I2C_I801=m
CONFIG_I2C_ISCH=m
CONFIG_I2C_ISMT=m
+CONFIG_I2C_MLXBF=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MULTI_INSTANTIATE=m
# CONFIG_I2C_MUX_GPIO is not set
@@ -2295,6 +2341,7 @@ CONFIG_I2C_SIMTEC=m
# CONFIG_I2C_SIS630 is not set
CONFIG_I2C_SIS96X=m
CONFIG_I2C_SLAVE_EEPROM=m
+# CONFIG_I2C_SLAVE_TESTUNIT is not set
CONFIG_I2C_SLAVE=y
CONFIG_I2C_STUB=m
# CONFIG_I2C_TAOS_EVM is not set
@@ -2352,6 +2399,8 @@ CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IGC=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_DMAENGINE=m
+CONFIG_IIO_BUFFER_DMA=m
CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
@@ -2384,6 +2433,7 @@ CONFIG_IIO_SW_TRIGGER=m
# CONFIG_IIO_SYSFS_TRIGGER is not set
CONFIG_IIO_TIGHTLOOP_TRIGGER=m
CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_TRIGGERED_EVENT=m
CONFIG_IIO_TRIGGER=y
# CONFIG_IKCONFIG is not set
CONFIG_IKHEADERS=m
@@ -2391,9 +2441,10 @@ CONFIG_IMA_APPRAISE_BOOTPARAM=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_APPRAISE=y
-# CONFIG_IMA_ARCH_POLICY is not set
+CONFIG_IMA_ARCH_POLICY=y
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
+CONFIG_IMA_DEFAULT_HASH="sha256"
CONFIG_IMA_DEFAULT_HASH_SHA256=y
# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
@@ -2403,6 +2454,7 @@ CONFIG_IMA_LSM_RULES=y
CONFIG_IMA_MEASURE_PCR_IDX=10
CONFIG_IMA_NG_TEMPLATE=y
CONFIG_IMA_READ_POLICY=y
+CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT=y
# CONFIG_IMA_SIG_TEMPLATE is not set
# CONFIG_IMA_TEMPLATE is not set
# CONFIG_IMA_TRUSTED_KEYRING is not set
@@ -2422,6 +2474,7 @@ CONFIG_INET_ESPINTCP=y
CONFIG_INET_ESP=m
CONFIG_INET_ESP_OFFLOAD=m
CONFIG_INET_IPCOMP=m
+CONFIG_INET_MPTCP_DIAG=m
CONFIG_INET_RAW_DIAG=m
CONFIG_INET_TUNNEL=m
CONFIG_INET_UDP_DIAG=m
@@ -2564,6 +2617,7 @@ CONFIG_INTEL_MEI_HDCP=m
CONFIG_INTEL_MEI=m
CONFIG_INTEL_MEI_ME=m
CONFIG_INTEL_MEI_TXE=m
+CONFIG_INTEL_MEI_VIRTIO=m
CONFIG_INTEL_MEI_WDT=m
# CONFIG_INTEL_MENLOW is not set
CONFIG_INTEL_MFLD_THERMAL=m
@@ -2871,6 +2925,7 @@ CONFIG_JFS_SECURITY=y
CONFIG_JME=m
CONFIG_JOLIET=y
CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADC=m
CONFIG_JOYSTICK_ADI=m
CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
@@ -2912,6 +2967,7 @@ CONFIG_KARMA_PARTITION=y
# CONFIG_KASAN is not set
# CONFIG_KASAN_VMALLOC is not set
# CONFIG_KCOV is not set
+# CONFIG_KCSAN is not set
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_GZIP is not set
@@ -2924,6 +2980,7 @@ CONFIG_KERNEL_HEADER_TEST=y
CONFIG_KERNEL_ZSTD=y
CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=y
CONFIG_KEXEC_FILE=y
+CONFIG_KEXEC_IMAGE_VERIFY_SIG=y
CONFIG_KEXEC_JUMP=y
# CONFIG_KEXEC_SIG_FORCE is not set
CONFIG_KEXEC_SIG=y
@@ -2964,6 +3021,7 @@ CONFIG_KEY_DH_OPERATIONS=y
CONFIG_KEY_NOTIFICATIONS=y
CONFIG_KEYS_REQUEST_CACHE=y
CONFIG_KEYS=y
+CONFIG_KGDB_HONOUR_BLOCKLIST=y
# CONFIG_KGDB_KDB is not set
CONFIG_KGDB_LOW_LEVEL_TRAP=y
CONFIG_KGDB_SERIAL_CONSOLE=y
@@ -3024,6 +3082,7 @@ CONFIG_LDM_PARTITION=y
# CONFIG_LEDS_AAT1290 is not set
CONFIG_LEDS_AN30259A=m
CONFIG_LEDS_APU=m
+# CONFIG_LEDS_ARIEL is not set
CONFIG_LEDS_AS3645A=m
# CONFIG_LEDS_AW2013 is not set
# CONFIG_LEDS_BCM6328 is not set
@@ -3051,6 +3110,7 @@ CONFIG_LEDS_LM3601X=m
CONFIG_LEDS_LM3692X=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
+CONFIG_LEDS_LP50XX=m
# CONFIG_LEDS_LP5521 is not set
# CONFIG_LEDS_LP5523 is not set
# CONFIG_LEDS_LP5562 is not set
@@ -3345,10 +3405,13 @@ CONFIG_MFD_CROS_EC_DEV=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
+CONFIG_MFD_ENE_KB3930=m
# CONFIG_MFD_GATEWORKS_GSC is not set
# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_MFD_HI6421_SPMI is not set
CONFIG_MFD_INTEL_LPSS_ACPI=y
CONFIG_MFD_INTEL_LPSS_PCI=y
+CONFIG_MFD_INTEL_M10_BMC=m
CONFIG_MFD_INTEL_MSIC=y
CONFIG_MFD_INTEL_PMC_BXT=m
# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set
@@ -3390,6 +3453,7 @@ CONFIG_MFD_MAX77650=m
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SL28CPLD is not set
CONFIG_MFD_SM501_GPIO=y
CONFIG_MFD_SM501=m
# CONFIG_MFD_SMSC is not set
@@ -3427,6 +3491,7 @@ CONFIG_MFD_WL1273_CORE=m
# CONFIG_MFD_WM8994 is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
+# CONFIG_MHI_BUS_DEBUG is not set
CONFIG_MHI_BUS=m
CONFIG_MIC_COSM=m
# CONFIG_MICREL_KS8995MA is not set
@@ -3688,6 +3753,7 @@ CONFIG_MUX_GPIO=m
CONFIG_MUX_MMIO=m
# CONFIG_MVIAC7 is not set
CONFIG_MVMDIO=m
+CONFIG_MVPP2_PTP=y
CONFIG_MWAVE=m
CONFIG_MWIFIEX=m
CONFIG_MWIFIEX_PCIE=m
@@ -4125,6 +4191,7 @@ CONFIG_NFS_V3=m
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
# CONFIG_NFS_V4_1_MIGRATION is not set
CONFIG_NFS_V4_1=y
+# CONFIG_NFS_V4_2_READ_PLUS is not set
CONFIG_NFS_V4_2=y
CONFIG_NFS_V4=m
CONFIG_NF_TABLES_ARP=y
@@ -4176,6 +4243,7 @@ CONFIG_N_HDLC=m
# CONFIG_NI903X_WDT is not set
CONFIG_NIC7018_WDT=m
CONFIG_NILFS2_FS=m
+CONFIG_NITRO_ENCLAVES=m
CONFIG_NIU=m
# CONFIG_NL80211_TESTMODE is not set
CONFIG_NLMON=m
@@ -4419,6 +4487,7 @@ CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT_HOST is not set
CONFIG_PCIE_ECRC=y
CONFIG_PCIE_EDR=y
+# CONFIG_PCIE_HISI_ERR is not set
# CONFIG_PCIE_INTEL_GW is not set
# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set
# CONFIG_PCIE_MOBIVEIL is not set
@@ -4463,6 +4532,7 @@ CONFIG_PCMCIA_XIRC2PS=m
CONFIG_PCMCIA_XIRCOM=m
CONFIG_PCMCIA=y
CONFIG_PCNET32=m
+CONFIG_PCS_XPCS=m
CONFIG_PD6729=m
# CONFIG_PDA_POWER is not set
CONFIG_PDC_ADMA=m
@@ -4485,8 +4555,12 @@ CONFIG_PHY_CADENCE_SIERRA=m
CONFIG_PHY_CADENCE_TORRENT=m
# CONFIG_PHY_CPCAP_USB is not set
# CONFIG_PHY_FSL_IMX8MQ_USB is not set
+# CONFIG_PHY_HI3670_USB is not set
CONFIG_PHY_INTEL_COMBO=y
CONFIG_PHY_INTEL_EMMC=m
+# CONFIG_PHY_INTEL_KEEMBAY_EMMC is not set
+CONFIG_PHY_INTEL_LGM_COMBO=y
+CONFIG_PHY_INTEL_LGM_EMMC=m
CONFIG_PHYLIB=y
CONFIG_PHYLINK=m
# CONFIG_PHY_MAPPHONE_MDM6600 is not set
@@ -4524,6 +4598,7 @@ CONFIG_PINCTRL_JASPERLAKE=m
CONFIG_PINCTRL_LEWISBURG=m
CONFIG_PINCTRL_LYNXPOINT=m
# CONFIG_PINCTRL_MCP23S08 is not set
+# CONFIG_PINCTRL_MSM8226 is not set
# CONFIG_PINCTRL_MSM8976 is not set
# CONFIG_PINCTRL_OCELOT is not set
# CONFIG_PINCTRL_QCS404 is not set
@@ -4534,6 +4609,8 @@ CONFIG_PINCTRL_RK805=m
# CONFIG_PINCTRL_SM8250 is not set
# CONFIG_PINCTRL_STMFX is not set
# CONFIG_PINCTRL_SUN4I_A10 is not set
+# CONFIG_PINCTRL_SUN50I_A100 is not set
+# CONFIG_PINCTRL_SUN50I_A100_R is not set
# CONFIG_PINCTRL_SUN50I_A64 is not set
# CONFIG_PINCTRL_SUN50I_A64_R is not set
# CONFIG_PINCTRL_SUN50I_H5 is not set
@@ -4591,7 +4668,6 @@ CONFIG_POSIX_MQUEUE=y
# CONFIG_POWER7_CPU is not set
# CONFIG_POWER8_CPU is not set
# CONFIG_POWER9_CPU is not set
-# CONFIG_POWER_AVS is not set
CONFIG_POWERCAP=y
# CONFIG_POWER_RESET_BRCMKONA is not set
# CONFIG_POWER_RESET_BRCMSTB is not set
@@ -4608,6 +4684,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_PPC_PROT_SAO_LPAR is not set
# CONFIG_PPC_PTDUMP is not set
# CONFIG_PPC_QUEUED_SPINLOCKS is not set
+CONFIG_PPC_RTAS_FILTER=y
CONFIG_PPDEV=m
CONFIG_PPP_ASYNC=m
CONFIG_PPP_BSDCOMP=m
@@ -4632,6 +4709,8 @@ CONFIG_PPTP=m
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PRESTERA=m
+CONFIG_PRESTERA_PCI=m
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_PRIME_NUMBERS is not set
CONFIG_PRINTER=m
@@ -4725,8 +4804,10 @@ CONFIG_QLCNIC_SRIOV=y
CONFIG_QLGE=m
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX6FS_FS is not set
-# CONFIG_QRTR is not set
+CONFIG_QRTR=m
CONFIG_QRTR_MHI=m
+CONFIG_QRTR_SMD=m
+CONFIG_QRTR_TUN=m
CONFIG_QSEMI_PHY=m
CONFIG_QTNFMAC_PCIE=m
# CONFIG_QUICC_ENGINE is not set
@@ -4787,6 +4868,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_PERF_TEST is not set
# CONFIG_RCU_REF_SCALE_TEST is not set
+# CONFIG_RCU_SCALE_TEST is not set
CONFIG_RCU_TORTURE_TEST=m
# CONFIG_RCU_TRACE is not set
CONFIG_RC_XBOX_DVD=m
@@ -4821,7 +4903,7 @@ CONFIG_REGMAP=y
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR_FAN53555 is not set
# CONFIG_REGULATOR_FAN53880 is not set
-# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
# CONFIG_REGULATOR_GPIO is not set
# CONFIG_REGULATOR_ISL6271A is not set
# CONFIG_REGULATOR_ISL9305 is not set
@@ -4849,6 +4931,9 @@ CONFIG_REGULATOR_MP886X=m
# CONFIG_REGULATOR_PV88080 is not set
# CONFIG_REGULATOR_PV88090 is not set
# CONFIG_REGULATOR_PWM is not set
+# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set
+CONFIG_REGULATOR_RT4801=m
+CONFIG_REGULATOR_RTMV20=m
# CONFIG_REGULATOR_SLG51000 is not set
# CONFIG_REGULATOR_SY8106A is not set
# CONFIG_REGULATOR_SY8824X is not set
@@ -4899,6 +4984,7 @@ CONFIG_RMI4_F11=y
CONFIG_RMI4_F12=y
CONFIG_RMI4_F30=y
CONFIG_RMI4_F34=y
+CONFIG_RMI4_F3A=y
# CONFIG_RMI4_F54 is not set
CONFIG_RMI4_F55=y
CONFIG_RMI4_I2C=m
@@ -5015,6 +5101,7 @@ CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_RV3028=m
CONFIG_RTC_DRV_RV3029C2=m
CONFIG_RTC_DRV_RV3029_HWMON=y
+CONFIG_RTC_DRV_RV3032=m
# CONFIG_RTC_DRV_RV8803 is not set
CONFIG_RTC_DRV_RX4581=m
# CONFIG_RTC_DRV_RX6110 is not set
@@ -5037,7 +5124,7 @@ CONFIG_RTC_HCTOSYS=y
CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_INTF_PROC=y
CONFIG_RTC_INTF_SYSFS=y
-# CONFIG_RTC_NVMEM is not set
+CONFIG_RTC_NVMEM=y
# CONFIG_RTC_SYSTOHC is not set
# CONFIG_RT_GROUP_SCHED is not set
CONFIG_RTL8180=m
@@ -5110,6 +5197,7 @@ CONFIG_SCD30_CORE=m
CONFIG_SCD30_I2C=m
CONFIG_SCD30_SERIAL=m
# CONFIG_SC_DISPCC_7180 is not set
+# CONFIG_SCF_TORTURE_TEST is not set
# CONFIG_SC_GPUCC_7180 is not set
CONFIG_SCHED_AUTOGROUP=y
CONFIG_SCHED_DEBUG=y
@@ -5248,7 +5336,7 @@ CONFIG_SECURITY_SELINUX_AVC_STATS=y
CONFIG_SECURITY_SELINUX_BOOTPARAM=y
CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0
CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_DISABLE=y
+# CONFIG_SECURITY_SELINUX_DISABLE is not set
CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256
CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9
CONFIG_SECURITY_SELINUX=y
@@ -5271,6 +5359,7 @@ CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
# CONFIG_SENSORS_ADM1177 is not set
+CONFIG_SENSORS_ADM1266=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
CONFIG_SENSORS_ADS7828=m
@@ -5329,6 +5418,7 @@ CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
# CONFIG_SENSORS_INSPUR_IPSPS is not set
+CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -5395,6 +5485,8 @@ CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_MCP3021=m
CONFIG_SENSORS_MLXREG_FAN=m
+CONFIG_SENSORS_MP2975=m
+CONFIG_SENSORS_MR75203=m
CONFIG_SENSORS_NCT6683=m
CONFIG_SENSORS_NCT6775=m
CONFIG_SENSORS_NCT7802=m
@@ -5567,6 +5659,7 @@ CONFIG_SLUB=y
CONFIG_SMARTJOYPLUS_FF=y
CONFIG_SMC_DIAG=m
CONFIG_SMC=m
+# CONFIG_SM_DISPCC_8250 is not set
# CONFIG_SM_FTL is not set
CONFIG_SMP=y
# CONFIG_SMSC37B787_WDT is not set
@@ -5579,6 +5672,8 @@ CONFIG_SMS_SDIO_DRV=m
CONFIG_SMS_SIANO_MDTV=m
CONFIG_SMS_SIANO_RC=y
CONFIG_SMS_USB_DRV=m
+# CONFIG_SM_VIDEOCC_8150 is not set
+# CONFIG_SM_VIDEOCC_8250 is not set
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AD1889=m
@@ -5750,6 +5845,7 @@ CONFIG_SND_SOC_CROS_EC_CODEC=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
+CONFIG_SND_SOC_CS4234=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -5787,7 +5883,6 @@ CONFIG_SND_SOC_HDAC_HDA=m
CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_IMG is not set
-# CONFIG_SND_SOC_IMX_AUDMIX is not set
# CONFIG_SND_SOC_IMX_AUDMUX is not set
# CONFIG_SND_SOC_IMX_ES8328 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
@@ -5802,6 +5897,7 @@ CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m
CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
+CONFIG_SND_SOC_INTEL_CATPT=m
CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
@@ -5831,6 +5927,7 @@ CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH=m
CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH=m
+CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
@@ -5870,14 +5967,14 @@ CONFIG_SND_SOC_PCM512x_I2C=m
# CONFIG_SND_SOC_PCM512x_SPI is not set
# CONFIG_SND_SOC_RK3328 is not set
CONFIG_SND_SOC_RL6231=m
-# CONFIG_SND_SOC_RT1308_SDW is not set
+CONFIG_SND_SOC_RT1308_SDW=m
# CONFIG_SND_SOC_RT5616 is not set
# CONFIG_SND_SOC_RT5631 is not set
CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_RT5682_SDW=m
-# CONFIG_SND_SOC_RT700_SDW is not set
-# CONFIG_SND_SOC_RT711_SDW is not set
-# CONFIG_SND_SOC_RT715_SDW is not set
+CONFIG_SND_SOC_RT700_SDW=m
+CONFIG_SND_SOC_RT711_SDW=m
+CONFIG_SND_SOC_RT715_SDW=m
# CONFIG_SND_SOC_SAMSUNG_ARIES_WM8994 is not set
CONFIG_SND_SOC_SAMSUNG_MIDAS_WM1811=m
# CONFIG_SND_SOC_SGTL5000 is not set
@@ -5900,6 +5997,7 @@ CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y
CONFIG_SND_SOC_SOF_HDA_LINK=y
CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK=y
CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
@@ -5920,6 +6018,7 @@ CONFIG_SND_SOC_SSM4567=m
# CONFIG_SND_SOC_STI_SAS is not set
# CONFIG_SND_SOC_TAS2552 is not set
CONFIG_SND_SOC_TAS2562=m
+CONFIG_SND_SOC_TAS2764=m
CONFIG_SND_SOC_TAS2770=m
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TAS571X is not set
@@ -6013,6 +6112,7 @@ CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
CONFIG_SOUNDWIRE_CADENCE=m
CONFIG_SOUNDWIRE_INTEL=m
+# CONFIG_SOUNDWIRE_QCOM is not set
CONFIG_SOUNDWIRE=y
CONFIG_SP5100_TCO=m
CONFIG_SPARSE_IRQ=y
@@ -6020,7 +6120,22 @@ CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_SPARSEMEM=y
-# CONFIG_SPEAKUP is not set
+CONFIG_SPEAKUP=m
+# CONFIG_SPEAKUP_SYNTH_ACNTPC is not set
+CONFIG_SPEAKUP_SYNTH_ACNTSA=m
+CONFIG_SPEAKUP_SYNTH_APOLLO=m
+CONFIG_SPEAKUP_SYNTH_AUDPTR=m
+CONFIG_SPEAKUP_SYNTH_BNS=m
+# CONFIG_SPEAKUP_SYNTH_DECEXT is not set
+# CONFIG_SPEAKUP_SYNTH_DECPC is not set
+CONFIG_SPEAKUP_SYNTH_DECTLK=m
+# CONFIG_SPEAKUP_SYNTH_DTLK is not set
+# CONFIG_SPEAKUP_SYNTH_DUMMY is not set
+# CONFIG_SPEAKUP_SYNTH_KEYPC is not set
+CONFIG_SPEAKUP_SYNTH_LTLK=m
+CONFIG_SPEAKUP_SYNTH_SOFT=m
+CONFIG_SPEAKUP_SYNTH_SPKOUT=m
+CONFIG_SPEAKUP_SYNTH_TXPRT=m
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_AMD is not set
# CONFIG_SPI_AXI_SPI_ENGINE is not set
@@ -6057,6 +6172,7 @@ CONFIG_SPI_SPIDEV=m
# CONFIG_SPI_XILINX is not set
CONFIG_SPI=y
# CONFIG_SPI_ZYNQMP_GQSPI is not set
+# CONFIG_SPMI_HISI3670 is not set
# CONFIG_SPMI is not set
# CONFIG_SPS30 is not set
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
@@ -6095,6 +6211,7 @@ CONFIG_STACK_VALIDATION=y
CONFIG_STAGING_MEDIA=y
CONFIG_STAGING=y
CONFIG_STANDALONE=y
+# CONFIG_STATIC_CALL_SELFTEST is not set
# CONFIG_STATIC_KEYS_SELFTEST is not set
# CONFIG_STATIC_USERMODEHELPER is not set
CONFIG_STE10XP=m
@@ -6120,6 +6237,7 @@ CONFIG_ST_UVIS25_I2C=m
CONFIG_ST_UVIS25=m
CONFIG_ST_UVIS25_SPI=m
# CONFIG_SUN50I_DE2_BUS is not set
+# CONFIG_SUN50I_IOMMU is not set
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -6235,6 +6353,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_HEXDUMP is not set
# CONFIG_TEST_HMM is not set
# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_KASAN_MODULE is not set
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_LIST_SORT is not set
@@ -6411,6 +6530,7 @@ CONFIG_TOUCHSCREEN_WACOM_W8001=m
# CONFIG_TOUCHSCREEN_WM97XX is not set
CONFIG_TOUCHSCREEN_ZET6223=m
CONFIG_TOUCHSCREEN_ZFORCE=m
+CONFIG_TOUCHSCREEN_ZINITIX=m
# CONFIG_TPL0102 is not set
CONFIG_TPM_KEY_PARSER=m
# CONFIG_TPS6105X is not set
@@ -6459,8 +6579,11 @@ CONFIG_TYPEC=m
CONFIG_TYPEC_MUX_INTEL_PMC=m
CONFIG_TYPEC_MUX_PI3USB30532=m
CONFIG_TYPEC_NVIDIA_ALTMODE=m
+# CONFIG_TYPEC_QCOM_PMIC is not set
# CONFIG_TYPEC_RT1711H is not set
+CONFIG_TYPEC_STUSB160X=m
CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPCI_MAXIM=m
CONFIG_TYPEC_TCPM=m
CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
@@ -6513,6 +6636,7 @@ CONFIG_UNUSED_SYMBOLS=y
CONFIG_UNWINDER_ORC=y
CONFIG_UPROBE_EVENTS=y
# CONFIG_US5182D is not set
+# CONFIG_USB4_DEBUGFS_WRITE is not set
CONFIG_USB4=m
CONFIG_USB4_NET=m
CONFIG_USB_ACM=m
@@ -6559,6 +6683,7 @@ CONFIG_USB_EMI62=m
CONFIG_USB_EPSON2888=y
# CONFIG_USB_ETH is not set
CONFIG_USB_EZUSB_FX2=m
+# CONFIG_USB_FEW_INIT_RETRIES is not set
# CONFIG_USB_FOTG210_HCD is not set
CONFIG_USB_FTDI_ELAN=m
# CONFIG_USB_FUNCTIONFS is not set
@@ -6659,6 +6784,7 @@ CONFIG_USB_LD=m
CONFIG_USB_LEDS_TRIGGER_USBPORT=m
CONFIG_USB_LED_TRIG=y
CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LGM_PHY=m
# CONFIG_USB_LINK_LAYER_TEST is not set
CONFIG_USB_M5602=m
CONFIG_USB_MA901=m
@@ -6832,7 +6958,7 @@ CONFIG_USB_WDM=m
CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_HISTB is not set
-CONFIG_USB_XHCI_PCI_RENESAS=y
+CONFIG_USB_XHCI_PCI_RENESAS=m
CONFIG_USB_XHCI_PLATFORM=m
CONFIG_USB_XUSBATM=m
CONFIG_USB=y
@@ -6878,6 +7004,7 @@ CONFIG_VFIO_MDEV=m
CONFIG_VFIO_PCI_IGD=y
CONFIG_VFIO_PCI=m
CONFIG_VFIO_PCI_VGA=y
+CONFIG_VFIO_PCI_ZDEV=y
CONFIG_VGA_ARB_MAX_GPUS=16
CONFIG_VGA_ARB=y
# CONFIG_VGACON_SOFT_SCROLLBACK_PERSISTENT_ENABLE_BY_DEFAULT is not set
@@ -7022,6 +7149,7 @@ CONFIG_VIDEO_SOLO6X10=m
CONFIG_VIDEO_SR030PC30=m
CONFIG_VIDEO_STK1160_COMMON=m
CONFIG_VIDEO_STK1160=m
+# CONFIG_VIDEO_TEGRA_TPG is not set
CONFIG_VIDEO_TM6000_ALSA=m
CONFIG_VIDEO_TM6000_DVB=m
CONFIG_VIDEO_TM6000=m
@@ -7035,6 +7163,7 @@ CONFIG_VIDEO_V4L2=m
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_VIDEO_VS6624=m
# CONFIG_VIDEO_XILINX is not set
+# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIPERBOARD_ADC is not set
CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
@@ -7287,6 +7416,7 @@ CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_OFFLOAD=y
CONFIG_XFRM_STATISTICS=y
CONFIG_XFRM_SUB_POLICY=y
+# CONFIG_XFRM_USER_COMPAT is not set
CONFIG_XFRM_USER=y
CONFIG_XFRM=y
# CONFIG_XFS_DEBUG is not set
@@ -7296,6 +7426,7 @@ CONFIG_XFS_ONLINE_SCRUB=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_XFS_QUOTA=y
# CONFIG_XFS_RT is not set
+CONFIG_XFS_SUPPORT_V4=y
# CONFIG_XFS_WARN is not set
# CONFIG_XIAOMI_WMI is not set
# CONFIG_XIL_AXIS_FIFO is not set
@@ -7325,6 +7456,7 @@ CONFIG_YELLOWFIN=m
CONFIG_YENTA=m
CONFIG_Z3FOLD=y
CONFIG_ZBUD=y
+# CONFIG_ZCRYPT_DEBUG is not set
# CONFIG_ZD1211RW_DEBUG is not set
CONFIG_ZD1211RW=m
CONFIG_ZEROPLUS_FF=y
@@ -7360,4 +7492,5 @@ CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
# Select this config option to add support for the initrd= command
# This option determines the default init for the system if no init=
# warnings from C=1 sparse checker or -Wextra compilations. It has
+# You can set the size of pernuma CMA by specifying "cma_pernuma=size"
CONFIG_ZENIFY=y
diff --git a/SOURCES/memory-tegra-Remove-GPU-from-DRM-IOMMU-group.patch b/SOURCES/memory-tegra-Remove-GPU-from-DRM-IOMMU-group.patch
deleted file mode 100644
index 7b30b78..0000000
--- a/SOURCES/memory-tegra-Remove-GPU-from-DRM-IOMMU-group.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From patchwork Tue Sep 1 15:32:48 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Thierry Reding <thierry.reding@gmail.com>
-X-Patchwork-Id: 1355200
-Return-Path: <linux-tegra-owner@vger.kernel.org>
-X-Original-To: incoming@patchwork.ozlabs.org
-Delivered-To: patchwork-incoming@bilbo.ozlabs.org
-Authentication-Results: ozlabs.org;
- spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org
- (client-ip=23.128.96.18; helo=vger.kernel.org;
- envelope-from=linux-tegra-owner@vger.kernel.org; receiver=<UNKNOWN>)
-Authentication-Results: ozlabs.org;
- dmarc=pass (p=none dis=none) header.from=gmail.com
-Authentication-Results: ozlabs.org; dkim=pass (2048-bit key;
- unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256
- header.s=20161025 header.b=InCwqcJT; dkim-atps=neutral
-Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
- by ozlabs.org (Postfix) with ESMTP id 4BgrgN1Rpfz9sWM
- for <incoming@patchwork.ozlabs.org>; Wed, 2 Sep 2020 01:33:04 +1000 (AEST)
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S1729968AbgIAPdC (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);
- Tue, 1 Sep 2020 11:33:02 -0400
-Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54580 "EHLO
- lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S1729209AbgIAPc4 (ORCPT
- <rfc822;linux-tegra@vger.kernel.org>); Tue, 1 Sep 2020 11:32:56 -0400
-Received: from mail-ej1-x642.google.com (mail-ej1-x642.google.com
- [IPv6:2a00:1450:4864:20::642])
- by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D7BF6C061244;
- Tue, 1 Sep 2020 08:32:54 -0700 (PDT)
-Received: by mail-ej1-x642.google.com with SMTP id d11so2241288ejt.13;
- Tue, 01 Sep 2020 08:32:54 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
- h=from:to:cc:subject:date:message-id:mime-version
- :content-transfer-encoding;
- bh=zEPKP0AU97R+PVYnTVD02jf9E8X+9qMRm9ouiwdoWWA=;
- b=InCwqcJTR/4A4+EuZFsM5xaKx0nFq9NH/7wDwaCpNHNzYmfW1s67o66afdrgjeT+42
- 3/IBsOzuQmvbcTIMqzeilMo8jynJopsDvJ04YORoFPrNoteMPeOR9CGnYRn5sTCTx/F8
- MExLqETfRiiBnfdt5p4S8Fw+UhsQjMtDLGVO+SktivIJKL0jgOtiulaSQfPNJxhuvalA
- YnMxjXkFrVLYsf7Q9rHbGANzrB4pQCOFOXTTolGhIm/OgJ1H1t2modzQdKwRXUsADB8L
- Wr95PT8IW7Kyqe+GrX2iD2azK1Ul6M6Ln7WgHWIYOkYGFRrhvMpSiRjMe9w0F1HwAjjO
- 5qzQ==
-X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
- d=1e100.net; s=20161025;
- h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version
- :content-transfer-encoding;
- bh=zEPKP0AU97R+PVYnTVD02jf9E8X+9qMRm9ouiwdoWWA=;
- b=kZZAjUtuN3hiPdfltUcr+jhnrz7c9rru5yMEq/CkI9aBm/ETez84EH3hV1B78K5P7L
- hNmGrJSHJ5IWuxDnUZQfaEPySWbcOwFUhahKgCeHLV/pbdTdosT0dhbnN1YfuCqO0dzc
- iPOvOI7WM/A19xKHKPCspaPpluPkBiUabwFLCWWVb06ZBUUNgVhy/7Dx7Ju8GP3kNUaA
- Pt0XvSw/Mp/rm2gKvnuDO9QKteP66lw5hvCUTUEIh76d8jMRMY8378JiysKz2wdaz8Fd
- BYHMvMGbdRy6TAA/Uez3CT9nV1OyhEST03ttXC1lJTpyHbNiA34oKyeRtqCxxOXza5yA
- k22g==
-X-Gm-Message-State: AOAM5312YM/x/KVL6Su0HEVLMkmVlAUpCOSazQK4PIdtRtPsaThSHihn
- RPsOkzFPKcz36DsW5eZOFaE=
-X-Google-Smtp-Source: ABdhPJx8pgbFxwX4+nQIkeKINcUC4+itTbYvBBHcPVcN6ZtaYmSEFVcT5J21t8xvkFqrlVQX3t3VOg==
-X-Received: by 2002:a17:907:9c3:: with SMTP id
- bx3mr2005039ejc.164.1598974373583;
- Tue, 01 Sep 2020 08:32:53 -0700 (PDT)
-Received: from localhost ([62.96.65.119]) by smtp.gmail.com with ESMTPSA id
- r23sm1371455edt.57.2020.09.01.08.32.52
- (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
- Tue, 01 Sep 2020 08:32:52 -0700 (PDT)
-From: Thierry Reding <thierry.reding@gmail.com>
-To: Krzysztof Kozlowski <krzk@kernel.org>,
- Thierry Reding <thierry.reding@gmail.com>
-Cc: Jonathan Hunter <jonathanh@nvidia.com>, Dmitry Osipenko <digetx@gmail.com>,
- linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org,
- Matias Zuniga <matias.nicolas.zc@gmail.com>
-Subject: [PATCH] memory: tegra: Remove GPU from DRM IOMMU group
-Date: Tue, 1 Sep 2020 17:32:48 +0200
-Message-Id: <20200901153248.1831263-1-thierry.reding@gmail.com>
-X-Mailer: git-send-email 2.28.0
-MIME-Version: 1.0
-Sender: linux-tegra-owner@vger.kernel.org
-Precedence: bulk
-List-ID: <linux-tegra.vger.kernel.org>
-X-Mailing-List: linux-tegra@vger.kernel.org
-
-From: Thierry Reding <treding@nvidia.com>
-
-Commit 63a613fdb16c ("memory: tegra: Add gr2d and gr3d to DRM IOMMU
-group") added the GPU to the DRM IOMMU group, which doesn't make any
-sense. This causes problems when Nouveau tries to attach to the SMMU
-and causes it to fall back to using the DMA API.
-
-Remove the GPU from the DRM groups to restore the old behaviour. The
-GPU should always have its own IOMMU domain to make sure it can map
-buffers into contiguous chunks (for big page support) without getting
-in the way of mappings from the DRM group.
-
-Fixes: 63a613fdb16c ("memory: tegra: Add gr2d and gr3d to DRM IOMMU group")
-Reported-by: Matias Zuniga <matias.nicolas.zc@gmail.com>
-Signed-off-by: Thierry Reding <treding@nvidia.com>
-Reviewed-by: Dmitry Osipenko <digetx@gmail.com>
----
- drivers/memory/tegra/tegra124.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/drivers/memory/tegra/tegra124.c b/drivers/memory/tegra/tegra124.c
-index 493b5dc3a4b3..0cede24479bf 100644
---- a/drivers/memory/tegra/tegra124.c
-+++ b/drivers/memory/tegra/tegra124.c
-@@ -957,7 +957,6 @@ static const struct tegra_smmu_swgroup tegra124_swgroups[] = {
- static const unsigned int tegra124_group_drm[] = {
- TEGRA_SWGROUP_DC,
- TEGRA_SWGROUP_DCB,
-- TEGRA_SWGROUP_GPU,
- TEGRA_SWGROUP_VIC,
- };
-
diff --git a/SOURCES/mmc-sdhci-iproc-Enable-eMMC-DDR-3.3V-support-for-bcm2711.patch b/SOURCES/mmc-sdhci-iproc-Enable-eMMC-DDR-3.3V-support-for-bcm2711.patch
deleted file mode 100644
index 6f5cf82..0000000
--- a/SOURCES/mmc-sdhci-iproc-Enable-eMMC-DDR-3.3V-support-for-bcm2711.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From patchwork Fri Aug 28 21:47:14 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Stefan Wahren <stefan.wahren@i2se.com>
-X-Patchwork-Id: 11743769
-Return-Path: <SRS0=IgIp=CG=vger.kernel.org=linux-mmc-owner@kernel.org>
-Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
- [172.30.200.123])
- by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9294E913
- for <patchwork-linux-mmc@patchwork.kernel.org>;
- Fri, 28 Aug 2020 21:48:59 +0000 (UTC)
-Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
- by mail.kernel.org (Postfix) with ESMTP id 83F242078A
- for <patchwork-linux-mmc@patchwork.kernel.org>;
- Fri, 28 Aug 2020 21:48:59 +0000 (UTC)
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S1726418AbgH1Vs7 (ORCPT
- <rfc822;patchwork-linux-mmc@patchwork.kernel.org>);
- Fri, 28 Aug 2020 17:48:59 -0400
-Received: from mout.kundenserver.de ([217.72.192.73]:41343 "EHLO
- mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
- with ESMTP id S1726379AbgH1Vs5 (ORCPT
- <rfc822;linux-mmc@vger.kernel.org>); Fri, 28 Aug 2020 17:48:57 -0400
-Received: from localhost.localdomain ([37.4.249.236]) by
- mrelayeu.kundenserver.de (mreue107 [212.227.15.183]) with ESMTPSA (Nemesis)
- id 1MzQTm-1kXpKC3Jq4-00vObT; Fri, 28 Aug 2020 23:48:40 +0200
-From: Stefan Wahren <stefan.wahren@i2se.com>
-To: Adrian Hunter <adrian.hunter@intel.com>,
- Ulf Hansson <ulf.hansson@linaro.org>,
- Ray Jui <rjui@broadcom.com>,
- Scott Branden <sbranden@broadcom.com>
-Cc: Florian Fainelli <f.fainelli@gmail.com>,
- Nicolas Saenz Julienne <nsaenzjulienne@suse.de>,
- Matthias Brugger <mbrugger@suse.com>,
- bcm-kernel-feedback-list@broadcom.com, linux-mmc@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org,
- Stefan Wahren <stefan.wahren@i2se.com>
-Subject: [PATCH] mmc: sdhci-iproc: Enable eMMC DDR 3.3V support for bcm2711
-Date: Fri, 28 Aug 2020 23:47:14 +0200
-Message-Id: <1598651234-29826-1-git-send-email-stefan.wahren@i2se.com>
-X-Mailer: git-send-email 2.7.4
-X-Provags-ID: V03:K1:kiziRvARXQvcShivifQ3e8jFQc5NDvS/jk5DcBO1+kY24pjuxcW
- pNMzHbKjpwEkD+6H3B4dmClTpiU+4kjeXUo3zfO/VqTahci/RQgw2Jjg5ClfAO20vRj4cmp
- eqHXUd9TKy5yr6xa9AzDep/tDWw/ZAMYe72C6NEC+QVodXdoe7JDC+duHvIEy7khM7PY+GF
- NzqIu6pdSVbj1v16NZ+sA==
-X-Spam-Flag: NO
-X-UI-Out-Filterresults: notjunk:1;V03:K0:eelQECZEP/o=:AtkwbFez+YK2lUaKrnCAex
- dIlTU0COpkkpKB5Qb0bMKrb8/w/SPJ2rMBPQOKwEd9/tUzoKWo+ZbAPQPpEnEcUM5QKbnzw+7
- qB1kFvhlFgAjX6S2VYE4TsPxy/Dk93b1KLbB3TpK4iOUqvcYMDP11kGtwphrPqzjB+yWqwO6y
- KgxT+VLe4SNkCYaD9JES6M1Hj770HNy3DMUeor3ZbWVQqJsm02Xd9jnX8ThCwNQM0x9NSolVQ
- 25RoD6I8fehNYcceOQKKGQTSKFw5NMv66cwKfnVYhvG9mj1Fix4xF1ssUx+PIaAKz9IPtf88l
- ls9Dj7R5z6+Jfpg2yCxV8pPeg1/NewyDH1Bmv2XVIVVZa3o3Ffms2jaDcGuRIJzYvAGzwhj+z
- G+spv31CNuWsBbUeimVwPoWruWAapA+EIOp57iNo95TYAamLRoBF+aIc4DiCyoVKiHvWl7mOh
- iDs2nI+sgIn+GWEfuSGJNNmNXiOSRr8PyVRuQELwCvbnkr1JmZqzYOdiYlIdE60pjRs0VVnSZ
- xYhbUBsbEC/lXnNUb5fF1o3qlK742HPj1nJQ3lQOdh1rcqOG20kRgACUeVAbq1NMG3DNsuHRS
- xsYTKTMMWPPeSrsGrGwEWQurcjWiskZ8QvmiCkaJHzyxpEWZfmqH30xnyIVdeVakqbob0ddv6
- VLEnvtryHj/lA4fHtioyBJ4A5CpKR2At7wnlKOICKyaHniUfMlssMuxexvZkbh5Tk/TR7aW7A
- krPi5wigbGYz2Pf0BiIjJOix9EDYS3+e2oyn6oFZX2gJcfDBT48tMcVYK3IOk6vnwvvmszY/k
- jexjMPuNFqHptYGNN/TyrXxKulWcZQdCYcksDfKHCrY0TIrxu44YkbhUl22nDy4LRXZQU6h
-Sender: linux-mmc-owner@vger.kernel.org
-Precedence: bulk
-List-ID: <linux-mmc.vger.kernel.org>
-X-Mailing-List: linux-mmc@vger.kernel.org
-
-The emmc2 interface on the bcm2711 supports DDR modes for eMMC devices
-running at 3.3V. This allows to run eMMC module with 3.3V signaling voltage
-at DDR52 mode on the Raspberry Pi 4 using a SD adapter:
-
- clock: 52000000 Hz
- actual clock: 50000000 Hz
- vdd: 21 (3.3 ~ 3.4 V)
- bus mode: 2 (push-pull)
- chip select: 0 (don't care)
- power mode: 2 (on)
- bus width: 2 (4 bits)
- timing spec: 8 (mmc DDR52)
- signal voltage: 0 (3.30 V)
- driver type: 0 (driver type B)
-
-Link: https://github.com/raspberrypi/linux/issues/3802
-Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
----
- drivers/mmc/host/sdhci-iproc.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/mmc/host/sdhci-iproc.c b/drivers/mmc/host/sdhci-iproc.c
-index e2d8dfe..b540aa6 100644
---- a/drivers/mmc/host/sdhci-iproc.c
-+++ b/drivers/mmc/host/sdhci-iproc.c
-@@ -283,6 +283,7 @@ static const struct sdhci_pltfm_data sdhci_bcm2711_pltfm_data = {
-
- static const struct sdhci_iproc_data bcm2711_data = {
- .pdata = &sdhci_bcm2711_pltfm_data,
-+ .mmc_caps = MMC_CAP_3_3V_DDR,
- };
-
- static const struct of_device_id sdhci_iproc_of_match[] = {
diff --git a/SOURCES/net-packet-fix-overflow-in-tpacket_rcv.patch b/SOURCES/net-packet-fix-overflow-in-tpacket_rcv.patch
deleted file mode 100644
index 6c6868f..0000000
--- a/SOURCES/net-packet-fix-overflow-in-tpacket_rcv.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 00c393ea14d12a4ef490a6aedf0fa6bfc2bfe8c3 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 3 Sep 2020 21:05:28 -0700
-Subject: net/packet: fix overflow in tpacket_rcv
-
-From: Or Cohen <orcohen@paloaltonetworks.com>
-
-[ Upstream commit acf69c946233259ab4d64f8869d4037a198c7f06 ]
-
-Using tp_reserve to calculate netoff can overflow as
-tp_reserve is unsigned int and netoff is unsigned short.
-
-This may lead to macoff receving a smaller value then
-sizeof(struct virtio_net_hdr), and if po->has_vnet_hdr
-is set, an out-of-bounds write will occur when
-calling virtio_net_hdr_from_skb.
-
-The bug is fixed by converting netoff to unsigned int
-and checking if it exceeds USHRT_MAX.
-
-This addresses CVE-2020-14386
-
-Fixes: 8913336a7e8d ("packet: add PACKET_RESERVE sockopt")
-Signed-off-by: Or Cohen <orcohen@paloaltonetworks.com>
-Signed-off-by: Eric Dumazet <edumazet@google.com>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- net/packet/af_packet.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
-index 301f41d4929bd..82f7802983797 100644
---- a/net/packet/af_packet.c
-+++ b/net/packet/af_packet.c
-@@ -2170,7 +2170,8 @@ static int tpacket_rcv(struct sk_buff *skb, struct net_device *dev,
- int skb_len = skb->len;
- unsigned int snaplen, res;
- unsigned long status = TP_STATUS_USER;
-- unsigned short macoff, netoff, hdrlen;
-+ unsigned short macoff, hdrlen;
-+ unsigned int netoff;
- struct sk_buff *copy_skb = NULL;
- struct timespec64 ts;
- __u32 ts_status;
-@@ -2239,6 +2240,10 @@ static int tpacket_rcv(struct sk_buff *skb, struct net_device *dev,
- }
- macoff = netoff - maclen;
- }
-+ if (netoff > USHRT_MAX) {
-+ atomic_inc(&po->tp_drops);
-+ goto drop_n_restore;
-+ }
- if (po->tp_version <= TPACKET_V2) {
- if (macoff + snaplen > po->rx_ring.frame_size) {
- if (po->copy_thresh &&
---
-2.25.1
-
diff --git a/SOURCES/netfilter-ctnetlink-add-range-check-for-l3-l4-protonum.patch b/SOURCES/netfilter-ctnetlink-add-range-check-for-l3-l4-protonum.patch
deleted file mode 100644
index 5e39014..0000000
--- a/SOURCES/netfilter-ctnetlink-add-range-check-for-l3-l4-protonum.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 1cc5ef91d2ff94d2bf2de3b3585423e8a1051cb6 Mon Sep 17 00:00:00 2001
-From: Will McVicker <willmcvicker@google.com>
-Date: Mon, 24 Aug 2020 19:38:32 +0000
-Subject: netfilter: ctnetlink: add a range check for l3/l4 protonum
-
-The indexes to the nf_nat_l[34]protos arrays come from userspace. So
-check the tuple's family, e.g. l3num, when creating the conntrack in
-order to prevent an OOB memory access during setup. Here is an example
-kernel panic on 4.14.180 when userspace passes in an index greater than
-NFPROTO_NUMPROTO.
-
-Internal error: Oops - BUG: 0 [#1] PREEMPT SMP
-Modules linked in:...
-Process poc (pid: 5614, stack limit = 0x00000000a3933121)
-CPU: 4 PID: 5614 Comm: poc Tainted: G S W O 4.14.180-g051355490483
-Hardware name: Qualcomm Technologies, Inc. SM8150 V2 PM8150 Google Inc. MSM
-task: 000000002a3dfffe task.stack: 00000000a3933121
-pc : __cfi_check_fail+0x1c/0x24
-lr : __cfi_check_fail+0x1c/0x24
-...
-Call trace:
-__cfi_check_fail+0x1c/0x24
-name_to_dev_t+0x0/0x468
-nfnetlink_parse_nat_setup+0x234/0x258
-ctnetlink_parse_nat_setup+0x4c/0x228
-ctnetlink_new_conntrack+0x590/0xc40
-nfnetlink_rcv_msg+0x31c/0x4d4
-netlink_rcv_skb+0x100/0x184
-nfnetlink_rcv+0xf4/0x180
-netlink_unicast+0x360/0x770
-netlink_sendmsg+0x5a0/0x6a4
-___sys_sendmsg+0x314/0x46c
-SyS_sendmsg+0xb4/0x108
-el0_svc_naked+0x34/0x38
-
-This crash is not happening since 5.4+, however, ctnetlink still
-allows for creating entries with unsupported layer 3 protocol number.
-
-Fixes: c1d10adb4a521 ("[NETFILTER]: Add ctnetlink port for nf_conntrack")
-Signed-off-by: Will McVicker <willmcvicker@google.com>
-[pablo@netfilter.org: rebased original patch on top of nf.git]
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
- net/netfilter/nf_conntrack_netlink.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
-index 832eabecfbddc..d65846aa80591 100644
---- a/net/netfilter/nf_conntrack_netlink.c
-+++ b/net/netfilter/nf_conntrack_netlink.c
-@@ -1404,7 +1404,8 @@ ctnetlink_parse_tuple_filter(const struct nlattr * const cda[],
- if (err < 0)
- return err;
-
--
-+ if (l3num != NFPROTO_IPV4 && l3num != NFPROTO_IPV6)
-+ return -EOPNOTSUPP;
- tuple->src.l3num = l3num;
-
- if (flags & CTA_FILTER_FLAG(CTA_IP_DST) ||
---
-cgit 1.2.3-1.el7
-
diff --git a/SOURCES/pdx86-SW_TABLET_MODE-fixes.patch b/SOURCES/pdx86-SW_TABLET_MODE-fixes.patch
deleted file mode 100644
index 3fa9f84..0000000
--- a/SOURCES/pdx86-SW_TABLET_MODE-fixes.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-From 9126d28cf4e537ef5e77006c51b1a24ad8e8170b Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Fri, 11 Sep 2020 13:34:42 +0200
-Subject: [PATCH 1/2] platform/x86: intel-vbtn: Fix SW_TABLET_MODE always
- reporting 1 on the HP Pavilion 11 x360
-
-Commit cfae58ed681c ("platform/x86: intel-vbtn: Only blacklist
-SW_TABLET_MODE on the 9 / "Laptop" chasis-type") restored SW_TABLET_MODE
-reporting on the HP stream x360 11 series on which it was previously broken
-by commit de9647efeaa9 ("platform/x86: intel-vbtn: Only activate tablet
-mode switch on 2-in-1's").
-
-It turns out that enabling SW_TABLET_MODE reporting on devices with a
-chassis-type of 10 ("Notebook") causes SW_TABLET_MODE to always report 1
-at boot on the HP Pavilion 11 x360, which causes libinput to disable the
-kbd and touchpad.
-
-The HP Pavilion 11 x360's ACPI VGBS method sets bit 4 instead of bit 6 when
-NOT in tablet mode at boot. Inspecting all the DSDTs in my DSDT collection
-shows only one other model, the Medion E1239T ever setting bit 4 and it
-always sets this together with bit 6.
-
-So lets treat bit 4 as a second bit which when set indicates the device not
-being in tablet-mode, as we already do for bit 6.
-
-While at it also prefix all VGBS constant defines with "VGBS_".
-
-Fixes: cfae58ed681c ("platform/x86: intel-vbtn: Only blacklist SW_TABLET_MODE on the 9 / "Laptop" chasis-type")
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/platform/x86/intel-vbtn.c | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/platform/x86/intel-vbtn.c b/drivers/platform/x86/intel-vbtn.c
-index e85d8e58320c..f443619e1e7e 100644
---- a/drivers/platform/x86/intel-vbtn.c
-+++ b/drivers/platform/x86/intel-vbtn.c
-@@ -15,9 +15,13 @@
- #include <linux/platform_device.h>
- #include <linux/suspend.h>
-
-+/* Returned when NOT in tablet mode on some HP Stream x360 11 models */
-+#define VGBS_TABLET_MODE_FLAG_ALT 0x10
- /* When NOT in tablet mode, VGBS returns with the flag 0x40 */
--#define TABLET_MODE_FLAG 0x40
--#define DOCK_MODE_FLAG 0x80
-+#define VGBS_TABLET_MODE_FLAG 0x40
-+#define VGBS_DOCK_MODE_FLAG 0x80
-+
-+#define VGBS_TABLET_MODE_FLAGS (VGBS_TABLET_MODE_FLAG | VGBS_TABLET_MODE_FLAG_ALT)
-
- MODULE_LICENSE("GPL");
- MODULE_AUTHOR("AceLan Kao");
-@@ -72,9 +76,9 @@ static void detect_tablet_mode(struct platform_device *device)
- if (ACPI_FAILURE(status))
- return;
-
-- m = !(vgbs & TABLET_MODE_FLAG);
-+ m = !(vgbs & VGBS_TABLET_MODE_FLAGS);
- input_report_switch(priv->input_dev, SW_TABLET_MODE, m);
-- m = (vgbs & DOCK_MODE_FLAG) ? 1 : 0;
-+ m = (vgbs & VGBS_DOCK_MODE_FLAG) ? 1 : 0;
- input_report_switch(priv->input_dev, SW_DOCK, m);
- }
-
---
-2.28.0
-
-From d26d82852e926fee13b5fa71cc004da391aaa5e3 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Wed, 16 Sep 2020 16:14:39 +0200
-Subject: [PATCH 2/2] platform/x86: asus-wmi: Fix SW_TABLET_MODE always
- reporting 1 on many different models
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Commit b0dbd97de1f1 ("platform/x86: asus-wmi: Add support for
-SW_TABLET_MODE") added support for reporting SW_TABLET_MODE using the
-Asus 0x00120063 WMI-device-id to see if various transformer models were
-docked into their keyboard-dock (SW_TABLET_MODE=0) or if they were
-being used as a tablet.
-
-The new SW_TABLET_MODE support (naively?) assumed that non Transformer
-devices would either not support the 0x00120063 WMI-device-id at all,
-or would NOT set ASUS_WMI_DSTS_PRESENCE_BIT in their reply when querying
-the device-id.
-
-Unfortunately this is not true and we have received many bug reports about
-this change causing the asus-wmi driver to always report SW_TABLET_MODE=1
-on non Transformer devices. This causes libinput to think that these are
-360 degree hinges style 2-in-1s folded into tablet-mode. Making libinput
-suppress keyboard and touchpad events from the builtin keyboard and
-touchpad. So effectively this causes the keyboard and touchpad to not work
-on many non Transformer Asus models.
-
-This commit fixes this by using the existing DMI based quirk mechanism in
-asus-nb-wmi.c to allow using the 0x00120063 device-id for reporting
-SW_TABLET_MODE on Transformer models and ignoring it on all other models.
-
-Fixes: b0dbd97de1f1 ("platform/x86: asus-wmi: Add support for SW_TABLET_MODE")
-BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=209011
-BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1875339
-BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1875828
-BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1876997
-Reported-by: Samuel Čavoj <samuel@cavoj.net>
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/platform/x86/asus-nb-wmi.c | 32 ++++++++++++++++++++++++++++++
- drivers/platform/x86/asus-wmi.c | 16 ++++++++-------
- drivers/platform/x86/asus-wmi.h | 1 +
- 3 files changed, 42 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/platform/x86/asus-nb-wmi.c b/drivers/platform/x86/asus-nb-wmi.c
-index 680c3640e013..1d9fbabd02fb 100644
---- a/drivers/platform/x86/asus-nb-wmi.c
-+++ b/drivers/platform/x86/asus-nb-wmi.c
-@@ -115,6 +115,10 @@ static struct quirk_entry quirk_asus_vendor_backlight = {
- .wmi_backlight_set_devstate = true,
- };
-
-+static struct quirk_entry quirk_asus_use_kbd_dock_devid = {
-+ .use_kbd_dock_devid = true,
-+};
-+
- static int dmi_matched(const struct dmi_system_id *dmi)
- {
- pr_info("Identified laptop model '%s'\n", dmi->ident);
-@@ -488,6 +492,34 @@ static const struct dmi_system_id asus_quirks[] = {
- },
- .driver_data = &quirk_asus_ga502i,
- },
-+ {
-+ .callback = dmi_matched,
-+ .ident = "Asus Transformer T100TA / T100HA / T100CHI",
-+ .matches = {
-+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
-+ /* Match *T100* */
-+ DMI_MATCH(DMI_PRODUCT_NAME, "T100"),
-+ },
-+ .driver_data = &quirk_asus_use_kbd_dock_devid,
-+ },
-+ {
-+ .callback = dmi_matched,
-+ .ident = "Asus Transformer T101HA",
-+ .matches = {
-+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
-+ DMI_MATCH(DMI_PRODUCT_NAME, "T101HA"),
-+ },
-+ .driver_data = &quirk_asus_use_kbd_dock_devid,
-+ },
-+ {
-+ .callback = dmi_matched,
-+ .ident = "Asus Transformer T200TA",
-+ .matches = {
-+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
-+ DMI_MATCH(DMI_PRODUCT_NAME, "T200TA"),
-+ },
-+ .driver_data = &quirk_asus_use_kbd_dock_devid,
-+ },
- {},
- };
-
-diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
-index 8f4acdc06b13..ae6289d37faf 100644
---- a/drivers/platform/x86/asus-wmi.c
-+++ b/drivers/platform/x86/asus-wmi.c
-@@ -365,12 +365,14 @@ static int asus_wmi_input_init(struct asus_wmi *asus)
- if (err)
- goto err_free_dev;
-
-- result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_KBD_DOCK);
-- if (result >= 0) {
-- input_set_capability(asus->inputdev, EV_SW, SW_TABLET_MODE);
-- input_report_switch(asus->inputdev, SW_TABLET_MODE, !result);
-- } else if (result != -ENODEV) {
-- pr_err("Error checking for keyboard-dock: %d\n", result);
-+ if (asus->driver->quirks->use_kbd_dock_devid) {
-+ result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_KBD_DOCK);
-+ if (result >= 0) {
-+ input_set_capability(asus->inputdev, EV_SW, SW_TABLET_MODE);
-+ input_report_switch(asus->inputdev, SW_TABLET_MODE, !result);
-+ } else if (result != -ENODEV) {
-+ pr_err("Error checking for keyboard-dock: %d\n", result);
-+ }
- }
-
- err = input_register_device(asus->inputdev);
-@@ -2114,7 +2116,7 @@ static void asus_wmi_handle_event_code(int code, struct asus_wmi *asus)
- return;
- }
-
-- if (code == NOTIFY_KBD_DOCK_CHANGE) {
-+ if (asus->driver->quirks->use_kbd_dock_devid && code == NOTIFY_KBD_DOCK_CHANGE) {
- result = asus_wmi_get_devstate_simple(asus,
- ASUS_WMI_DEVID_KBD_DOCK);
- if (result >= 0) {
-diff --git a/drivers/platform/x86/asus-wmi.h b/drivers/platform/x86/asus-wmi.h
-index 4f31b68642a0..1a95c172f94b 100644
---- a/drivers/platform/x86/asus-wmi.h
-+++ b/drivers/platform/x86/asus-wmi.h
-@@ -33,6 +33,7 @@ struct quirk_entry {
- bool wmi_backlight_native;
- bool wmi_backlight_set_devstate;
- bool wmi_force_als_set;
-+ bool use_kbd_dock_devid;
- int wapf;
- /*
- * For machines with AMD graphic chips, it will send out WMI event
---
-2.28.0
-
diff --git a/SOURCES/selinux_allow_reading_labels_before_policy_is_loaded.patch b/SOURCES/selinux_allow_reading_labels_before_policy_is_loaded.patch
deleted file mode 100644
index 5335915..0000000
--- a/SOURCES/selinux_allow_reading_labels_before_policy_is_loaded.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From c8e222616c7e98305bdc861db3ccac520bc29921 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
-
-This patch does for `getxattr` what commit 3e3e24b42043 ("selinux: allow
-labeling before policy is loaded") did for `setxattr`; it allows
-querying the current SELinux label on disk before the policy is loaded.
-
-One of the motivations described in that commit message also drives this
-patch: for Fedora CoreOS (and eventually RHEL CoreOS), we want to be
-able to move the root filesystem for example, from xfs to ext4 on RAID,
-on first boot, at initrd time.[1]
-
-Because such an operation works at the filesystem level, we need to be
-able to read the SELinux labels first from the original root, and apply
-them to the files of the new root. The previous commit enabled the
-second part of this process; this commit enables the first part.
-
-[1] https://github.com/coreos/fedora-coreos-tracker/issues/94
-
-Acked-by: Stephen Smalley <stephen.smalley.work@gmail.com>
-Signed-off-by: Jonathan Lebon <jlebon@redhat.com>
-Signed-off-by: Paul Moore <paul@paul-moore.com>
----
- security/selinux/hooks.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
-index efa6108b1ce9..ca901025802a 100644
---- a/security/selinux/hooks.c
-+++ b/security/selinux/hooks.c
-@@ -3332,7 +3332,12 @@ static int selinux_inode_getsecurity(struct inode *inode, const char *name, void
- char *context = NULL;
- struct inode_security_struct *isec;
-
-- if (strcmp(name, XATTR_SELINUX_SUFFIX))
-+ /*
-+ * If we're not initialized yet, then we can't validate contexts, so
-+ * just let vfs_getxattr fall back to using the on-disk xattr.
-+ */
-+ if (!selinux_initialized(&selinux_state) ||
-+ strcmp(name, XATTR_SELINUX_SUFFIX))
- return -EOPNOTSUPP;
-
- /*
---
-cgit 1.2.3-1.el7
diff --git a/SOURCES/speakup-do-not-let-the-line-discipline-be-used-several-times.patch b/SOURCES/speakup-do-not-let-the-line-discipline-be-used-several-times.patch
deleted file mode 100644
index 449aace..0000000
--- a/SOURCES/speakup-do-not-let-the-line-discipline-be-used-several-times.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From d4122754442799187d5d537a9c039a49a67e57f1 Mon Sep 17 00:00:00 2001
-From: Samuel Thibault <samuel.thibault@ens-lyon.org>
-Date: Tue, 10 Nov 2020 19:35:41 +0100
-Subject: speakup: Do not let the line discipline be used several times
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Samuel Thibault <samuel.thibault@ens-lyon.org>
-
-commit d4122754442799187d5d537a9c039a49a67e57f1 upstream.
-
-Speakup has only one speakup_tty variable to store the tty it is managing. This
-makes sense since its codebase currently assumes that there is only one user who
-controls the screen reading.
-
-That however means that we have to forbid using the line discipline several
-times, otherwise the second closure would try to free a NULL ldisc_data, leading to
-
-general protection fault: 0000 [#1] SMP KASAN PTI
-RIP: 0010:spk_ttyio_ldisc_close+0x2c/0x60
-Call Trace:
- tty_ldisc_release+0xa2/0x340
- tty_release_struct+0x17/0xd0
- tty_release+0x9d9/0xcc0
- __fput+0x231/0x740
- task_work_run+0x12c/0x1a0
- do_exit+0x9b5/0x2230
- ? release_task+0x1240/0x1240
- ? __do_page_fault+0x562/0xa30
- do_group_exit+0xd5/0x2a0
- __x64_sys_exit_group+0x35/0x40
- do_syscall_64+0x89/0x2b0
- ? page_fault+0x8/0x30
- entry_SYSCALL_64_after_hwframe+0x44/0xa9
-
-Cc: stable@vger.kernel.org
-Reported-by: 秦世松 <qinshisong1205@gmail.com>
-Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
-Tested-by: Shisong Qin <qinshisong1205@gmail.com>
-Link: https://lore.kernel.org/r/20201110183541.fzgnlwhjpgqzjeth@function
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- drivers/accessibility/speakup/spk_ttyio.c | 12 +++++++++++-
- 1 file changed, 11 insertions(+), 1 deletion(-)
-
---- a/drivers/accessibility/speakup/spk_ttyio.c
-+++ b/drivers/accessibility/speakup/spk_ttyio.c
-@@ -49,15 +49,25 @@ static int spk_ttyio_ldisc_open(struct t
-
- if (!tty->ops->write)
- return -EOPNOTSUPP;
-+
-+ mutex_lock(&speakup_tty_mutex);
-+ if (speakup_tty) {
-+ mutex_unlock(&speakup_tty_mutex);
-+ return -EBUSY;
-+ }
- speakup_tty = tty;
-
- ldisc_data = kmalloc(sizeof(*ldisc_data), GFP_KERNEL);
-- if (!ldisc_data)
-+ if (!ldisc_data) {
-+ speakup_tty = NULL;
-+ mutex_unlock(&speakup_tty_mutex);
- return -ENOMEM;
-+ }
-
- init_completion(&ldisc_data->completion);
- ldisc_data->buf_free = true;
- speakup_tty->disc_data = ldisc_data;
-+ mutex_unlock(&speakup_tty_mutex);
-
- return 0;
- }
diff --git a/SOURCES/v2-nfs-Fix-security-label-length-not-being-reset.patch b/SOURCES/v2-nfs-Fix-security-label-length-not-being-reset.patch
deleted file mode 100644
index 60f61c3..0000000
--- a/SOURCES/v2-nfs-Fix-security-label-length-not-being-reset.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-From patchwork Tue Sep 15 21:42:52 2020
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Jeffrey Mitchell <jeffrey.mitchell@starlab.io>
-X-Patchwork-Id: 11777881
-Return-Path: <SRS0=S9kK=CY=vger.kernel.org=linux-nfs-owner@kernel.org>
-Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
- [172.30.200.123])
- by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9BEEA618
- for <patchwork-linux-nfs@patchwork.kernel.org>;
- Tue, 15 Sep 2020 21:44:46 +0000 (UTC)
-Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
- by mail.kernel.org (Postfix) with ESMTP id 600CF20731
- for <patchwork-linux-nfs@patchwork.kernel.org>;
- Tue, 15 Sep 2020 21:44:46 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (1024-bit key) header.d=starlab.io header.i=@starlab.io
- header.b="aJuHPsEZ"
-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
- id S1728066AbgIOVoW (ORCPT
- <rfc822;patchwork-linux-nfs@patchwork.kernel.org>);
- Tue, 15 Sep 2020 17:44:22 -0400
-Received: from mail-dm3gcc02on2104.outbound.protection.outlook.com
- ([40.107.91.104]:22176
- "EHLO GCC02-DM3-obe.outbound.protection.outlook.com"
- rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP
- id S1727845AbgIOVnq (ORCPT <rfc822;linux-nfs@vger.kernel.org>);
- Tue, 15 Sep 2020 17:43:46 -0400
-ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
- b=gP59+M9kP3ZEQtpnFruwMJTxipkpx5mXy/SAn2tLXN3JL4qzMJ1ovTpHbiAiF/nRgN+JWCDnMI8WCCcRMUXjnFduBiNpgILfXKaDFIuooiqrtNQxzbDEq+ZXqd/6dyBNj6iD6CmIZdrBoo6eEZJhIR2gVWzt1Zu1x2I8WkY2+RjJDlgZrfvNwRcw/4U3TdF97r5ksdewF0BlNby6ZExrsumudCVvW+WO8hM/di5362QOMxgKtlaqtFHQX4/sqqgAZs6qXS1WZMpGBjKNYO3kZhTdRl0X06MFZ2UnBUMt/P9Vh4IpyS3dUHF9DQWGbOXmF9OR97gJSP4UYP6Vo+NIvg==
-ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
- s=arcselector9901;
- h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
- bh=5XTZZ/aS36tpTnR5M4LBDQk4eW6LhdJERW6/8ZQBdjg=;
- b=AEMkmqRUg3UZV5ehyVTDA4QkihRZ0LrGTYP4+eEdl+HOkLUjAoN3uBVLLoJlH2fPtc1OtuPBOe6RA6OE3dr3FKkRGBU86TJAfPr8Mr8nkNHkKcK2wXE2uMFPinGFNIq8DVH2P5c8qKxMSe/e48ddMFm/cKT/T6YCQHAtxWOBQSrZM9Gm3Dci1Vc6xbAceeaIrV7uqIAt+aSmcu7+HnZT3PDT1IsxxgdT5xexteAv8RKROzjmpwlzYCMuMeLNN2zV7TMVCaqZUkMQEe6MjAsvnvQ4erXTZ1441TMna1uCIsttHHrkV3rb9UABF9g5P5ffrbNzUXeKwEMYjUjUFq6SXg==
-ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
- smtp.mailfrom=starlab.io; dmarc=pass action=none header.from=starlab.io;
- dkim=pass header.d=starlab.io; arc=none
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=starlab.io;
- s=selector2;
- h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
- bh=5XTZZ/aS36tpTnR5M4LBDQk4eW6LhdJERW6/8ZQBdjg=;
- b=aJuHPsEZcvYEP98mtq2JKo/LbYpT9T2mpgQahKfEPFXnrB3ajaaj7edTDPFd88SsdHU/wC7pVNVj0g8Ybc9hBn483uen/K+fV2fNe2IiND7jJO/8+jusNVQEVcBbNcaGNFA1idd4Us3/7XC9AqnJ7uKjYcLlkpDC5MooQ2ALKLA=
-Authentication-Results: starlab.io; dkim=none (message not signed)
- header.d=none;starlab.io; dmarc=none action=none header.from=starlab.io;
-Received: from SA9PR09MB5246.namprd09.prod.outlook.com (2603:10b6:806:4b::9)
- by SA9PR09MB5376.namprd09.prod.outlook.com (2603:10b6:806:44::20) with
- Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3370.16; Tue, 15 Sep
- 2020 21:43:23 +0000
-Received: from SA9PR09MB5246.namprd09.prod.outlook.com
- ([fe80::e90f:c1b7:2964:d2ac]) by SA9PR09MB5246.namprd09.prod.outlook.com
- ([fe80::e90f:c1b7:2964:d2ac%7]) with mapi id 15.20.3370.019; Tue, 15 Sep 2020
- 21:43:23 +0000
-From: Jeffrey Mitchell <jeffrey.mitchell@starlab.io>
-To: Trond Myklebust <trond.myklebust@hammerspace.com>,
- Anna Schumaker <anna.schumaker@netapp.com>,
- "J . Bruce Fields" <bfields@fieldses.org>
-Cc: linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org,
- Jeffrey Mitchell <jeffrey.mitchell@starlab.io>
-Subject: [PATCH v2] nfs: Fix security label length not being reset
-Date: Tue, 15 Sep 2020 16:42:52 -0500
-Message-Id: <20200915214252.262881-1-jeffrey.mitchell@starlab.io>
-X-Mailer: git-send-email 2.25.1
-In-Reply-To: <20200914154958.55451-1-jeffrey.mitchell@starlab.io>
-References: <20200914154958.55451-1-jeffrey.mitchell@starlab.io>
-X-ClientProxiedBy: SN4PR0701CA0023.namprd07.prod.outlook.com
- (2603:10b6:803:28::33) To SA9PR09MB5246.namprd09.prod.outlook.com
- (2603:10b6:806:4b::9)
-MIME-Version: 1.0
-X-MS-Exchange-MessageSentRepresentingType: 1
-Received: from jeffrey-work-20 (75.1.70.238) by
- SN4PR0701CA0023.namprd07.prod.outlook.com (2603:10b6:803:28::33) with
- Microsoft SMTP Server (version=TLS1_2,
- cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3370.16 via Frontend
- Transport; Tue, 15 Sep 2020 21:43:22 +0000
-X-Mailer: git-send-email 2.25.1
-X-Originating-IP: [75.1.70.238]
-X-MS-PublicTrafficType: Email
-X-MS-Office365-Filtering-Correlation-Id: f6b6cbb7-73d3-494f-9182-08d859c05e6a
-X-MS-TrafficTypeDiagnostic: SA9PR09MB5376:
-X-MS-Exchange-Transport-Forked: True
-X-Microsoft-Antispam-PRVS:
- <SA9PR09MB537678871DE105834C46ED4BF8200@SA9PR09MB5376.namprd09.prod.outlook.com>
-X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
-X-MS-Exchange-SenderADCheck: 1
-X-Microsoft-Antispam: BCL:0;
-X-Microsoft-Antispam-Message-Info:
- ve0rVm2dgAEEJAHk636eMFSzbaG54N1EjudpqWLYW0DylXWpm1XPdYOKGIJ7OQAUpYFiKRVvvCCHJyBpHbHzGKC4nG5t9P4JC8cVt7aPrOwpeaPSxWzUaFp0k9bOYDPZUOJ8XLYLs7IY1pk2rtYoLLTdDcfG5Kzzo2J3bIaePbV3MKzQ0UsODbgcJZlEpmQscx6xeqDlu+uG1mYjrtw5UiZLSQAD5lbkudMm2EmmZLEYqmYHzwFZpOujih7ONUEwBPmwH3cgEdqhdth5H9fRA5RelGwfRwMIn7uLA+/xqi7XnIvhkfvfdF/IyPz3eBCA
-X-Forefront-Antispam-Report:
- CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA9PR09MB5246.namprd09.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(396003)(39830400003)(346002)(136003)(376002)(366004)(16526019)(186003)(107886003)(4326008)(8676002)(8936002)(36756003)(6496006)(66946007)(2906002)(15650500001)(52116002)(66556008)(66476007)(316002)(6666004)(86362001)(26005)(5660300002)(1076003)(44832011)(83380400001)(478600001)(2616005)(110136005)(956004)(6486002);DIR:OUT;SFP:1102;
-X-MS-Exchange-AntiSpam-MessageData:
- q4wBhvrjMzSF6Plz5Ht6sf9Uu69ig8LJutAd8jEyaoRDqKTewYyNQQYzV/bQE3XEV4LlM1hb3ypXtn2UD9kZ/IWTmgpl/Y1MFe+L1ElTHVh//V3w7gSJ81b08ickMgWfthsYiUVGueTLp5bDY8dzcUXctkSBIycLijlMk9+jcS/InJxM/w8oiMk/mNtfX7EFuhtrsvQyWRN5ixKH/jgHOhkH7+r8SK5ywKJUxitBRQHXKyBbJ9wi7nEbTIzYCW4WKtrnhYoNWNvKgjBUWA0LPrhxeO1sXAk5oq+Vuw0Oo4uzI4RtN84ucfhZCYEh5tbZXN7/hZ7VucAojcwKizYByZwF9Y7Tms+Qu6o+0mYEg8rv3674tDIbW55gvLpoClnMmUgAKEzNg3gEgaTkoYgW2ASPlIsKNy1rO+ukeMT7BSsbPQRBapQYtCSIs/TsmQcBp2XuuNqtXEhKJNwc+yV3tT3/D7hfCg9JfhdCwpS03f5o4OZPzwW+O0EF3E4KpZkQ81iTRmt6v5H+6f57VRofr6IckSvmbX+Mwbis7sXKBegIgGp8/a87r847npRq68Rao6ZDV+Z7R7M5FYP/bzJZOIWJmmn8EIoY/0as0nZmCFPxewig4O+RKwxixWqNxIYAEZZWR96si8n53nHTsMOJHQ==
-X-OriginatorOrg: starlab.io
-X-MS-Exchange-CrossTenant-Network-Message-Id:
- f6b6cbb7-73d3-494f-9182-08d859c05e6a
-X-MS-Exchange-CrossTenant-AuthSource: SA9PR09MB5246.namprd09.prod.outlook.com
-X-MS-Exchange-CrossTenant-AuthAs: Internal
-X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Sep 2020 21:43:22.8388
- (UTC)
-X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
-X-MS-Exchange-CrossTenant-Id: 5e611933-986f-4838-a403-4acb432ce224
-X-MS-Exchange-CrossTenant-MailboxType: HOSTED
-X-MS-Exchange-CrossTenant-UserPrincipalName:
- chYVMMkYAvfiR0om1oU7hkRD1vHWk8vWKpUFgxhDUxbYALnkAu4ki99P8nO5pZmG5IsEx33nXgcNyg9tcTPVyxPI/upgYllWlX/Q0iCwT6Q=
-X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA9PR09MB5376
-Sender: linux-nfs-owner@vger.kernel.org
-Precedence: bulk
-List-ID: <linux-nfs.vger.kernel.org>
-X-Mailing-List: linux-nfs@vger.kernel.org
-
-nfs_readdir_page_filler() iterates over entries in a directory, reusing
-the same security label buffer, but does not reset the buffer's length.
-This causes decode_attr_security_label() to return -ERANGE if an entry's
-security label is longer than the previous one's. This error, in
-nfs4_decode_dirent(), only gets passed up as -EAGAIN, which causes another
-failed attempt to copy into the buffer. The second error is ignored and
-the remaining entries do not show up in ls, specifically the getdents64()
-syscall.
-
-Reproduce by creating multiple files in NFS and giving one of the later
-files a longer security label. ls will not see that file nor any that are
-added afterwards, though they will exist on the backend.
-
-In nfs_readdir_page_filler(), reset security label buffer length before
-every reuse
-
-Signed-off-by: Jeffrey Mitchell <jeffrey.mitchell@starlab.io>
----
-v2: Added explanation from cover letter as requested by J. Bruce Fields
- <bfields@fieldses.org>
-
- fs/nfs/dir.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
-index e732580fe47b..cb52db9a0cfb 100644
---- a/fs/nfs/dir.c
-+++ b/fs/nfs/dir.c
-@@ -579,6 +579,9 @@ int nfs_readdir_page_filler(nfs_readdir_descriptor_t *desc, struct nfs_entry *en
- xdr_set_scratch_buffer(&stream, page_address(scratch), PAGE_SIZE);
-
- do {
-+ if (entry->label)
-+ entry->label->len = NFS4_MAXLABELLEN;
-+
- status = xdr_decode(desc, entry, &stream);
- if (status != 0) {
- if (status == -EAGAIN)
diff --git a/SOURCES/zen.patch b/SOURCES/zen.patch
index 9c7003c..635efe0 100644
--- a/SOURCES/zen.patch
+++ b/SOURCES/zen.patch
@@ -38,10 +38,10 @@ Signed-off-by: Alexandre Frade <admfrade@gmail.com>
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index b1e0da5..1b43411 100644
+index 77aa0e7..224ee14 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -63,7 +63,7 @@ const_debug unsigned int sysctl_sched_features =
+@@ -64,7 +64,7 @@ const_debug unsigned int sysctl_sched_features =
* Number of tasks to iterate in a single balance run.
* Limited because this is done with IRQs disabled.
*/
@@ -50,19 +50,19 @@ index b1e0da5..1b43411 100644
/*
* period over which we measure -rt task CPU usage in us.
-@@ -75,9 +75,9 @@ __read_mostly int scheduler_running;
+@@ -76,9 +76,9 @@ __read_mostly int scheduler_running;
/*
* part of the period that we allow rt tasks to run in us.
- * default: 0.95s
-+ * default: 0.98s
++ * XanMod default: 0.98s
*/
-int sysctl_sched_rt_runtime = 950000;
+int sysctl_sched_rt_runtime = 980000;
/*
---
+
2.28.0
@@ -78,14 +78,14 @@ Subject: [PATCH 07/17] Zenify & stuff
3 files changed, 65 insertions(+)
diff --git a/init/Kconfig b/init/Kconfig
-index 3ae8678e1145..da708eed0f1e 100644
+index 0872a5a..48dc4bd 100644
--- a/init/Kconfig
+++ b/init/Kconfig
-@@ -92,6 +92,38 @@ config THREAD_INFO_IN_TASK
+@@ -96,6 +96,39 @@ config THREAD_INFO_IN_TASK
menu "General setup"
-+config ZENIFY
++ config ZENIFY
+ bool "A selection of patches from Zen/Liquorix kernel and additional tweaks for a better gaming experience"
+ default y
+ help
@@ -117,14 +117,15 @@ index 3ae8678e1145..da708eed0f1e 100644
+ Ondemand coarse upscaling limit: 80 % -> 45 %
+ Ondemand fine upscaling limit..: 95 % -> 45 %
+
++
config BROKEN
bool
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
-index 6b3b59cc51d6..2a0072192c3d 100644
+index ae7ceba..52826af 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
-@@ -37,8 +37,13 @@
+@@ -35,8 +35,13 @@
*
* (default: 6ms * (1 + ilog(ncpus)), units: nanoseconds)
*/
@@ -138,7 +139,7 @@ index 6b3b59cc51d6..2a0072192c3d 100644
/*
* The initial- and re-scaling of tunables is configurable
-@@ -58,13 +63,22 @@ enum sched_tunable_scaling sysctl_sched_tunable_scaling = SCHED_TUNABLESCALING_L
+@@ -56,13 +61,22 @@ enum sched_tunable_scaling sysctl_sched_tunable_scaling = SCHED_TUNABLESCALING_L
*
* (default: 0.75 msec * (1 + ilog(ncpus)), units: nanoseconds)
*/
@@ -161,7 +162,7 @@ index 6b3b59cc51d6..2a0072192c3d 100644
/*
* After fork, child runs first. If set to 0 (default) then
-@@ -81,10 +95,17 @@ unsigned int sysctl_sched_child_runs_first __read_mostly;
+@@ -79,10 +93,17 @@ unsigned int sysctl_sched_child_runs_first __read_mostly;
*
* (default: 1 msec * (1 + ilog(ncpus)), units: nanoseconds)
*/
@@ -179,11 +180,11 @@ index 6b3b59cc51d6..2a0072192c3d 100644
int sched_thermal_decay_shift;
static int __init setup_sched_thermal_decay_shift(char *str)
-@@ -128,8 +149,12 @@ int __weak arch_asym_cpu_priority(int cpu)
+@@ -126,8 +147,12 @@ int __weak arch_asym_cpu_priority(int cpu)
*
* (default: 5 msec, units: microseconds)
*/
-+#ifdef CONFIG_ZENIFY
++#ifdef CONFIG_TENIFY
+unsigned int sysctl_sched_cfs_bandwidth_slice = 3000UL;
+#else
unsigned int sysctl_sched_cfs_bandwidth_slice = 5000UL;
@@ -193,7 +194,7 @@ index 6b3b59cc51d6..2a0072192c3d 100644
static inline void update_load_add(struct load_weight *lw, unsigned long inc)
{
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
-index 28b3e7a67565..01a1aef2b9b1 100644
+index 5860424..5da2d15 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -71,7 +71,11 @@ static long ratelimit_pages = 32;
@@ -220,6 +221,7 @@ index 28b3e7a67565..01a1aef2b9b1 100644
/*
* vm_dirty_bytes starts at 0 (disabled) so that it is a function of
+
--
2.28.0
@@ -393,7 +395,7 @@ affects some windows games running in wine, such as Star Citizen).
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/include/linux/mm.h b/include/linux/mm.h
-index 8615504..2e10042 100644
+index cd5c313..1a36d12 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -197,8 +197,7 @@ static inline void __mm_zero_struct_page(struct page *page)
@@ -422,7 +424,7 @@ lower values.
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/mm.h b/include/linux/mm.h
-index 2e10042..84b708a 100644
+index 1a36d12..58c10e2 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -197,7 +197,7 @@ static inline void __mm_zero_struct_page(struct page *page)
@@ -449,10 +451,10 @@ Signed-off-by: Alexandre Frade <admfrade@gmail.com>
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/block/elevator.c b/block/elevator.c
-index 90ed7a2..067482e 100644
+index 293c5c8..71111fa 100644
--- a/block/elevator.c
+++ b/block/elevator.c
-@@ -623,15 +623,15 @@ static inline bool elv_support_iosched(struct request_queue *q)
+@@ -616,15 +616,15 @@ static inline bool elv_support_iosched(struct request_queue *q)
}
/*
@@ -474,36 +476,6 @@ index 90ed7a2..067482e 100644
--
2.28.0
-
-From e2111bc5989131c675659d40e0cc4f214df2f990 Mon Sep 17 00:00:00 2001
-From: Alexandre Frade <admfrade@gmail.com>
-Date: Fri, 10 May 2019 16:45:59 -0300
-Subject: [PATCH 15/17] block: set rq_affinity = 2 for full multithreading I/O
- requests
-
-Signed-off-by: Alexandre Frade <admfrade@gmail.com>
----
- include/linux/blkdev.h | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
-index 868e11f..47e5dc6 100644
---- a/include/linux/blkdev.h
-+++ b/include/linux/blkdev.h
-@@ -619,7 +619,8 @@ struct request_queue {
- #define QUEUE_FLAG_RQ_ALLOC_TIME 27 /* record rq->alloc_time_ns */
-
- #define QUEUE_FLAG_MQ_DEFAULT ((1 << QUEUE_FLAG_IO_STAT) | \
-- (1 << QUEUE_FLAG_SAME_COMP))
-+ (1 << QUEUE_FLAG_SAME_COMP) | \
-+ (1 << QUEUE_FLAG_SAME_FORCE))
-
- void blk_queue_flag_set(unsigned int flag, struct request_queue *q);
- void blk_queue_flag_clear(unsigned int flag, struct request_queue *q);
---
-2.28.0
-
-
From 3c229f434aca65c4ca61772bc03c3e0370817b92 Mon Sep 17 00:00:00 2001
From: Alexandre Frade <kernel@xanmod.org>
Date: Mon, 3 Aug 2020 17:05:04 +0000
@@ -516,18 +488,18 @@ Signed-off-by: Alexandre Frade <kernel@xanmod.org>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h
-index 434c9c3..10c7117 100644
+index d5570de..48a8660 100644
--- a/include/linux/pagemap.h
+++ b/include/linux/pagemap.h
-@@ -699,7 +699,7 @@ int replace_page_cache_page(struct page *old, struct page *new, gfp_t gfp_mask);
- void delete_from_page_cache_batch(struct address_space *mapping,
- struct pagevec *pvec);
+@@ -808,7 +808,7 @@ struct readahead_control {
+ ._index = i, \
+ }
-#define VM_READAHEAD_PAGES (SZ_128K / PAGE_SIZE)
+#define VM_READAHEAD_PAGES (SZ_2M / PAGE_SIZE)
- void page_cache_sync_readahead(struct address_space *, struct file_ra_state *,
- struct file *, pgoff_t index, unsigned long req_count);
+ void page_cache_ra_unbounded(struct readahead_control *,
+ unsigned long nr_to_read, unsigned long lookahead_count);
--
2.28.0
@@ -563,10 +535,10 @@ selection.
2 files changed, 5 insertions(+)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
-index dca917a..dfc5f85 100644
+index f6a1513..d671f17 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
-@@ -1880,6 +1880,9 @@
+@@ -1897,6 +1897,9 @@
disable
Do not enable intel_pstate as the default
scaling driver for the supported processors
@@ -577,10 +549,10 @@ index dca917a..dfc5f85 100644
Use intel_pstate as a scaling driver, but configure it
to work with generic cpufreq governors (instead of
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
-index ef15ec4..3a0d083 100644
+index cb95da6..a422e3f 100644
--- a/drivers/cpufreq/intel_pstate.c
+++ b/drivers/cpufreq/intel_pstate.c
-@@ -3097,6 +3097,8 @@ static int __init intel_pstate_setup(char *str)
+@@ -3129,6 +3129,8 @@ static int __init intel_pstate_setup(char *str)
pr_info("HWP disabled\n");
no_hwp = 1;
}
@@ -591,3 +563,4 @@ index ef15ec4..3a0d083 100644
if (!strcmp(str, "hwp_only"))
--
2.28.0
+
diff --git a/SPECS/kernel.spec b/SPECS/kernel.spec
index 60692d4..78baf84 100644
--- a/SPECS/kernel.spec
+++ b/SPECS/kernel.spec
@@ -82,19 +82,19 @@ Summary: The Linux kernel
# For non-released -rc kernels, this will be appended after the rcX and
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
#
-%global baserelease 202
+%global baserelease 201
%global fedora_build %{baserelease}
# base_sublevel is the kernel version we're starting with and patching
# on top of -- for example, 3.1-rc7-git1 starts with a 3.0 base,
# which yields a base_sublevel of 0.
-%define base_sublevel 9
+%define base_sublevel 10
## If this is a released kernel ##
%if 0%{?released_kernel}
# Do we have a -stable update to apply?
-%define stable_update 16
+%define stable_update 6
# Set rpm version accordingly
%if 0%{?stable_update}
%define stablerev %{stable_update}
@@ -835,30 +835,24 @@ Patch68: 0001-drm-sun4i-sun6i_mipi_dsi-fix-horizontal-timing-calcu.patch
Patch70: 0001-e1000e-bump-up-timeout-to-wait-when-ME-un-configure-.patch
Patch72: 0001-Work-around-for-gcc-bug-https-gcc.gnu.org-bugzilla-s.patch
-# https://patchwork.kernel.org/patch/11743769/
-Patch100: mmc-sdhci-iproc-Enable-eMMC-DDR-3.3V-support-for-bcm2711.patch
-
-# https://patchwork.kernel.org/patch/11745283/
-Patch101: brcmfmac-BCM4329-Fixes-and-improvement.patch
-
# https://patchwork.kernel.org/patch/11796255/
-Patch102: arm64-dts-rockchip-disable-USB-type-c-DisplayPort.patch
+Patch100: arm64-dts-rockchip-disable-USB-type-c-DisplayPort.patch
# Tegra fixes
-Patch105: 0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch
-Patch106: arm64-tegra-Use-valid-PWM-period-for-VDD_GPU-on-Tegra210.patch
-# https://www.spinics.net/lists/linux-tegra/msg53605.html
-Patch108: iommu-tegra-smmu-Fix-TLB-line-for-Tegra210.patch
+Patch101: 0001-PCI-Add-MCFG-quirks-for-Tegra194-host-controllers.patch
# A patch to fix some undocumented things broke a bunch of Allwinner networks due to wrong assumptions
-Patch124: 0001-update-phy-on-pine64-a64-devices.patch
-# https://patchwork.kernel.org/project/linux-arm-kernel/patch/20201025140144.28693-1-ats@offog.org/
-Patch126: ARM-dts-sun7i-pcduino3-nano-enable-RGMII-RX-TX-delay-on-PHY.patch
+Patch102: 0001-update-phy-on-pine64-a64-devices.patch
+
+# OMAP Pandaboard fix
+Patch103: arm-pandaboard-fix-add-bluetooth.patch
+
+Patch105: 0001-ALSA-hda-via-Fix-runtime-PM-for-Clevo-W35xSS.patch
-# rhbz 1897038
-Patch132: bluetooth-fix-LL-privacy-BLE-device-fails-to-connect.patch
+# Nouveau mDP detection fix
+Patch107: 0001-drm-nouveau-kms-handle-mDP-connectors.patch
-# Linux-tkg patches - https://github.com/Frogging-Family/linux-tkg/tree/master/linux-tkg-patches/5.8
+# linux-fsync patches
Patch200: zen.patch
Patch201: futex2.patch
@@ -1554,7 +1548,7 @@ pathfix.py -i "%{__python3} %{py3_shbang_opts}" -p -n \
tools/perf/scripts/python/stat-cpi.py \
tools/perf/scripts/python/sched-migration.py \
Documentation \
- scripts/gen_compile_commands.py
+ scripts/clang-tools
# only deal with configs if we are going to build for the arch
%ifnarch %nobuildarches
@@ -2975,11 +2969,13 @@ fi
#
#
%changelog
-* Sun Jan 3 03:24:01 CET 2021 Jan Drögehoff <sentrycraft123@gmail.com> - 5.9.16-202.fsync
-- force futex2
+* Thu Jan 14 21:14:08 CET 2021 Jan Drögehoff <sentrycraft123@gmail.com> - 5.10.6-201.fsync
+- Linux v5.10.6 futex2 zen
-* Sun Dec 27 22:03:29 CET 2020 Jan Drögehoff <sentrycraft123@gmail.com> - 5.9.16-201.fsync
-- Linux v5.9.16 futex2 zen
+* Mon Jan 11 06:51:13 CST 2021 Justin M. Forbes <jforbes@fedoraproject.org> - 5.10.6-200
+- Linux v5.10.6 rebase
+- Fix bluetooth controller initialization (rhbz 1898495)
+- Fix CVE-2020-36158 (rhbz 1913348 1913349)
* Mon Dec 21 07:41:08 CST 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.9.16-200
- Linux v5.9.16