diff options
author | Jan200101 <sentrycraft123@gmail.com> | 2021-01-15 00:10:49 +0100 |
---|---|---|
committer | Jan200101 <sentrycraft123@gmail.com> | 2021-01-15 00:10:49 +0100 |
commit | 3814de27892f88d7bee46f434d386ada761fd4ba (patch) | |
tree | 0470c6d559ec46201e695664cfaef60ea541f4df /SOURCES | |
parent | d6cbdaa78bfe1ecf6aa6a95e743bcba390a2ae93 (diff) | |
download | kernel-fsync-3814de27892f88d7bee46f434d386ada761fd4ba.tar.gz kernel-fsync-3814de27892f88d7bee46f434d386ada761fd4ba.zip |
kernel 5.10.6
Diffstat (limited to 'SOURCES')
124 files changed, 3816 insertions, 18692 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 = <®_ldo_io0>; -- }; -- - chosen { - stdout-path = "serial0:115200n8"; - }; -@@ -93,30 +84,6 @@ &dai { - status = "okay"; - }; - --&de { -- status = "okay"; --}; -- --&dphy { -- status = "okay"; --}; -- --&dsi { -- vcc-dsi-supply = <®_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 = <®_dldo2>; -- vcc-supply = <®_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 = <®_dldo2>; -- vcc-supply = <®_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 = <®_ldo_io0>; -+ }; -+ - chosen { - stdout-path = "serial0:115200n8"; - }; -@@ -84,6 +93,30 @@ &dai { - status = "okay"; - }; - -+&de { -+ status = "okay"; -+}; -+ -+&dphy { -+ status = "okay"; -+}; -+ -+&dsi { -+ vcc-dsi-supply = <®_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 = <®_dldo2>; -+ vcc-supply = <®_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 = <®_ldo_io0>; -+ VDDIO-supply = <®_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 = <®_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 = <®_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 = <®_dldo2>; -+ vcc-supply = <®_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 = <®_2v8_p>; -- iovcc-supply = <®_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 = <®_2v8_p>; -+ iovcc-supply = <®_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 = <®_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 = <®_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 = <®_2v8_p>; -- iovcc-supply = <®_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 = <®_2v8_p>; -+ iovcc-supply = <®_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 = <®_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 = <®_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 = <®_dldo2>; -+ vcc-supply = <®_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 = <®_ldo_io0>; -+ VDDIO-supply = <®_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 = <®_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 = <®_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 = <®_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 = <®_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 = <®_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 = <®_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 = <®_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 = <®_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 = <®_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 = <®_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 = <®_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 = <®_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 = <®_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 = <®_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 = <®_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, ¶ms->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, ¶ms->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 = ¤t->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 = ¤t->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 + |