diff options
author | Justin M. Forbes <jforbes@fedoraproject.org> | 2017-12-04 07:44:43 -0600 |
---|---|---|
committer | Justin M. Forbes <jforbes@fedoraproject.org> | 2017-12-04 07:44:43 -0600 |
commit | c5708d5b6ee91238bbe2b0176ddf284b1f71251c (patch) | |
tree | 48c9327b2114ee201e6d4820ab86295242649a02 | |
parent | 6f8cd48d501f2cb2c6a1b57fd5815a1970388775 (diff) | |
download | kernel-c5708d5b6ee91238bbe2b0176ddf284b1f71251c.tar.gz kernel-c5708d5b6ee91238bbe2b0176ddf284b1f71251c.tar.xz kernel-c5708d5b6ee91238bbe2b0176ddf284b1f71251c.zip |
Linux v4.14.3 rebase
202 files changed, 4368 insertions, 11242 deletions
diff --git a/0001-PATCH-staging-rtl8822be-fix-wrong-dma-unmap-len.patch b/0001-PATCH-staging-rtl8822be-fix-wrong-dma-unmap-len.patch new file mode 100644 index 000000000..540b925eb --- /dev/null +++ b/0001-PATCH-staging-rtl8822be-fix-wrong-dma-unmap-len.patch @@ -0,0 +1,46 @@ +From 37af97ef14c201b1db8dd341aabd262da23e48aa Mon Sep 17 00:00:00 2001 +From: Fedora Kernel Team <kernel-team@fedoraproject.org> +Date: Mon, 30 Oct 2017 11:38:27 -0500 +Subject: [PATCH] [PATCH] staging: rtl8822be: fix wrong dma unmap len + +Patch fixes splat: + +r8822be 0000:04:00.0: DMA-API: device driver frees DMA memory with different size +[device address=0x0000000078477000] [map size=4096 bytes] [unmap size=424 bytes] +<snip> +Call Trace: + debug_dma_unmap_page+0xa5/0xb0 + ? unmap_single+0x2f/0x40 + _rtl8822be_send_bcn_or_cmd_packet+0x2c5/0x300 [r8822be] + ? _rtl8822be_send_bcn_or_cmd_packet+0x2c5/0x300 [r8822be] + rtl8822b_halmac_cb_write_data_rsvd_page+0x51/0xc0 [r8822be] + _halmac_write_data_rsvd_page+0x22/0x30 [r8822be] + halmac_download_rsvd_page_88xx+0xee/0x1f0 [r8822be] + halmac_dlfw_to_mem_88xx+0x80/0x120 [r8822be] + halmac_download_firmware_88xx.part.47+0x477/0x600 [r8822be] + halmac_download_firmware_88xx+0x32/0x40 [r8822be] + rtl_halmac_dlfw+0x70/0x120 [r8822be] + rtl_halmac_init_hal+0x5f/0x1b0 [r8822be] + rtl8822be_hw_init+0x8a2/0x1040 [r8822be] + +Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com> +--- + drivers/staging/rtlwifi/rtl8822be/fw.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/staging/rtlwifi/rtl8822be/fw.c b/drivers/staging/rtlwifi/rtl8822be/fw.c +index 8e24da1..a2cc548 100644 +--- a/drivers/staging/rtlwifi/rtl8822be/fw.c ++++ b/drivers/staging/rtlwifi/rtl8822be/fw.c +@@ -419,7 +419,7 @@ static bool _rtl8822be_send_bcn_or_cmd_packet(struct ieee80211_hw *hw, + dma_addr = rtlpriv->cfg->ops->get_desc( + hw, (u8 *)pbd_desc, true, HW_DESC_TXBUFF_ADDR); + +- pci_unmap_single(rtlpci->pdev, dma_addr, skb->len, ++ pci_unmap_single(rtlpci->pdev, dma_addr, pskb->len, + PCI_DMA_TODEVICE); + kfree_skb(pskb); + +-- +2.13.6 + diff --git a/0001-power-supply-max17042_battery-Add-support-for-ACPI-e.patch b/0001-power-supply-max17042_battery-Add-support-for-ACPI-e.patch deleted file mode 100644 index 858cd5a34..000000000 --- a/0001-power-supply-max17042_battery-Add-support-for-ACPI-e.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 075bb90dbb4d894938c5859e3850987238db9cd8 Mon Sep 17 00:00:00 2001 -From: Hans de Goede <hdegoede@redhat.com> -Date: Fri, 11 Aug 2017 22:30:55 +0200 -Subject: [PATCH 1/2] power: supply: max17042_battery: Add support for ACPI - enumeration - -Some x86 devices enumerate a max17047 fuel-gauge through a MAX17047 -ACPI firmware-node, add support for this. - -Signed-off-by: Hans de Goede <hdegoede@redhat.com> ---- - drivers/power/supply/max17042_battery.c | 22 +++++++++++++++++++++- - 1 file changed, 21 insertions(+), 1 deletion(-) - -diff --git a/drivers/power/supply/max17042_battery.c b/drivers/power/supply/max17042_battery.c -index aecaaa2b0586..b2ddb7eb69c6 100644 ---- a/drivers/power/supply/max17042_battery.c -+++ b/drivers/power/supply/max17042_battery.c -@@ -22,6 +22,7 @@ - * This driver is based on max17040_battery.c - */ - -+#include <linux/acpi.h> - #include <linux/init.h> - #include <linux/module.h> - #include <linux/slab.h> -@@ -982,6 +983,8 @@ static int max17042_probe(struct i2c_client *client, - struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent); - const struct power_supply_desc *max17042_desc = &max17042_psy_desc; - struct power_supply_config psy_cfg = {}; -+ const struct acpi_device_id *acpi_id; -+ struct device *dev = &client->dev; - struct max17042_chip *chip; - int ret; - int i; -@@ -995,7 +998,15 @@ static int max17042_probe(struct i2c_client *client, - return -ENOMEM; - - chip->client = client; -- chip->chip_type = id->driver_data; -+ if (id) { -+ chip->chip_type = id->driver_data; -+ } else { -+ acpi_id = acpi_match_device(dev->driver->acpi_match_table, dev); -+ if (!acpi_id) -+ return -ENODEV; -+ -+ chip->chip_type = acpi_id->driver_data; -+ } - chip->regmap = devm_regmap_init_i2c(client, &max17042_regmap_config); - if (IS_ERR(chip->regmap)) { - dev_err(&client->dev, "Failed to initialize regmap\n"); -@@ -1104,6 +1115,14 @@ static int max17042_resume(struct device *dev) - static SIMPLE_DEV_PM_OPS(max17042_pm_ops, max17042_suspend, - max17042_resume); - -+#ifdef CONFIG_ACPI -+static const struct acpi_device_id max17042_acpi_match[] = { -+ { "MAX17047", MAXIM_DEVICE_TYPE_MAX17047 }, -+ { } -+}; -+MODULE_DEVICE_TABLE(acpi, max17042_acpi_match); -+#endif -+ - #ifdef CONFIG_OF - static const struct of_device_id max17042_dt_match[] = { - { .compatible = "maxim,max17042" }, -@@ -1125,6 +1144,7 @@ MODULE_DEVICE_TABLE(i2c, max17042_id); - static struct i2c_driver max17042_i2c_driver = { - .driver = { - .name = "max17042", -+ .acpi_match_table = ACPI_PTR(max17042_acpi_match), - .of_match_table = of_match_ptr(max17042_dt_match), - .pm = &max17042_pm_ops, - }, --- -2.13.4 - diff --git a/0001-powerpc-64s-radix-Fix-128TB-512TB-virtual-address-bo.patch b/0001-powerpc-64s-radix-Fix-128TB-512TB-virtual-address-bo.patch deleted file mode 100644 index 4d2bbfaf7..000000000 --- a/0001-powerpc-64s-radix-Fix-128TB-512TB-virtual-address-bo.patch +++ /dev/null @@ -1,204 +0,0 @@ -From aca20afc84cf8578e044c67c4949672ac98f064a Mon Sep 17 00:00:00 2001 -From: Nicholas Piggin <npiggin@gmail.com> -Date: Tue, 28 Nov 2017 11:26:54 +0100 -Subject: [PATCH 1/5] powerpc/64s/radix: Fix 128TB-512TB virtual address - boundary case allocation - -commit 85e3f1adcb9d49300b0a943bb93f9604be375bfb upstream. - -Radix VA space allocations test addresses against mm->task_size which -is 512TB, even in cases where the intention is to limit allocation to -below 128TB. - -This results in mmap with a hint address below 128TB but address + -length above 128TB succeeding when it should fail (as hash does after -the previous patch). - -Set the high address limit to be considered up front, and base -subsequent allocation checks on that consistently. - -Fixes: f4ea6dcb08ea ("powerpc/mm: Enable mappings above 128TB") -Signed-off-by: Nicholas Piggin <npiggin@gmail.com> -Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> -Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - arch/powerpc/mm/hugetlbpage-radix.c | 26 ++++++++++++------ - arch/powerpc/mm/mmap.c | 55 ++++++++++++++++++++++--------------- - 2 files changed, 50 insertions(+), 31 deletions(-) - -diff --git a/arch/powerpc/mm/hugetlbpage-radix.c b/arch/powerpc/mm/hugetlbpage-radix.c -index a12e86395025..0a3d71aae175 100644 ---- a/arch/powerpc/mm/hugetlbpage-radix.c -+++ b/arch/powerpc/mm/hugetlbpage-radix.c -@@ -48,17 +48,28 @@ radix__hugetlb_get_unmapped_area(struct file *file, unsigned long addr, - struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; - struct hstate *h = hstate_file(file); -+ int fixed = (flags & MAP_FIXED); -+ unsigned long high_limit; - struct vm_unmapped_area_info info; - -- if (unlikely(addr > mm->context.addr_limit && addr < TASK_SIZE)) -- mm->context.addr_limit = TASK_SIZE; -+ high_limit = DEFAULT_MAP_WINDOW; -+ if (addr >= high_limit || (fixed && (addr + len > high_limit))) -+ high_limit = TASK_SIZE; - - if (len & ~huge_page_mask(h)) - return -EINVAL; -- if (len > mm->task_size) -+ if (len > high_limit) - return -ENOMEM; -+ if (fixed) { -+ if (addr > high_limit - len) -+ return -ENOMEM; -+ } - -- if (flags & MAP_FIXED) { -+ if (unlikely(addr > mm->context.addr_limit && -+ mm->context.addr_limit != TASK_SIZE)) -+ mm->context.addr_limit = TASK_SIZE; -+ -+ if (fixed) { - if (prepare_hugepage_range(file, addr, len)) - return -EINVAL; - return addr; -@@ -67,7 +78,7 @@ radix__hugetlb_get_unmapped_area(struct file *file, unsigned long addr, - if (addr) { - addr = ALIGN(addr, huge_page_size(h)); - vma = find_vma(mm, addr); -- if (mm->task_size - len >= addr && -+ if (high_limit - len >= addr && - (!vma || addr + len <= vm_start_gap(vma))) - return addr; - } -@@ -78,12 +89,9 @@ radix__hugetlb_get_unmapped_area(struct file *file, unsigned long addr, - info.flags = VM_UNMAPPED_AREA_TOPDOWN; - info.length = len; - info.low_limit = PAGE_SIZE; -- info.high_limit = current->mm->mmap_base; -+ info.high_limit = mm->mmap_base + (high_limit - DEFAULT_MAP_WINDOW); - info.align_mask = PAGE_MASK & ~huge_page_mask(h); - info.align_offset = 0; - -- if (addr > DEFAULT_MAP_WINDOW) -- info.high_limit += mm->context.addr_limit - DEFAULT_MAP_WINDOW; -- - return vm_unmapped_area(&info); - } -diff --git a/arch/powerpc/mm/mmap.c b/arch/powerpc/mm/mmap.c -index 5d78b193fec4..6d476a7b5611 100644 ---- a/arch/powerpc/mm/mmap.c -+++ b/arch/powerpc/mm/mmap.c -@@ -106,22 +106,32 @@ radix__arch_get_unmapped_area(struct file *filp, unsigned long addr, - { - struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; -+ int fixed = (flags & MAP_FIXED); -+ unsigned long high_limit; - struct vm_unmapped_area_info info; - -+ high_limit = DEFAULT_MAP_WINDOW; -+ if (addr >= high_limit || (fixed && (addr + len > high_limit))) -+ high_limit = TASK_SIZE; -+ -+ if (len > high_limit) -+ return -ENOMEM; -+ if (fixed) { -+ if (addr > high_limit - len) -+ return -ENOMEM; -+ } -+ - if (unlikely(addr > mm->context.addr_limit && - mm->context.addr_limit != TASK_SIZE)) - mm->context.addr_limit = TASK_SIZE; - -- if (len > mm->task_size - mmap_min_addr) -- return -ENOMEM; -- -- if (flags & MAP_FIXED) -+ if (fixed) - return addr; - - if (addr) { - addr = PAGE_ALIGN(addr); - vma = find_vma(mm, addr); -- if (mm->task_size - len >= addr && addr >= mmap_min_addr && -+ if (high_limit - len >= addr && addr >= mmap_min_addr && - (!vma || addr + len <= vm_start_gap(vma))) - return addr; - } -@@ -129,13 +139,9 @@ radix__arch_get_unmapped_area(struct file *filp, unsigned long addr, - info.flags = 0; - info.length = len; - info.low_limit = mm->mmap_base; -+ info.high_limit = high_limit; - info.align_mask = 0; - -- if (unlikely(addr > DEFAULT_MAP_WINDOW)) -- info.high_limit = mm->context.addr_limit; -- else -- info.high_limit = DEFAULT_MAP_WINDOW; -- - return vm_unmapped_area(&info); - } - -@@ -149,37 +155,42 @@ radix__arch_get_unmapped_area_topdown(struct file *filp, - struct vm_area_struct *vma; - struct mm_struct *mm = current->mm; - unsigned long addr = addr0; -+ int fixed = (flags & MAP_FIXED); -+ unsigned long high_limit; - struct vm_unmapped_area_info info; - -+ high_limit = DEFAULT_MAP_WINDOW; -+ if (addr >= high_limit || (fixed && (addr + len > high_limit))) -+ high_limit = TASK_SIZE; -+ -+ if (len > high_limit) -+ return -ENOMEM; -+ if (fixed) { -+ if (addr > high_limit - len) -+ return -ENOMEM; -+ } -+ - if (unlikely(addr > mm->context.addr_limit && - mm->context.addr_limit != TASK_SIZE)) - mm->context.addr_limit = TASK_SIZE; - -- /* requested length too big for entire address space */ -- if (len > mm->task_size - mmap_min_addr) -- return -ENOMEM; -- -- if (flags & MAP_FIXED) -+ if (fixed) - return addr; - -- /* requesting a specific address */ - if (addr) { - addr = PAGE_ALIGN(addr); - vma = find_vma(mm, addr); -- if (mm->task_size - len >= addr && addr >= mmap_min_addr && -- (!vma || addr + len <= vm_start_gap(vma))) -+ if (high_limit - len >= addr && addr >= mmap_min_addr && -+ (!vma || addr + len <= vm_start_gap(vma))) - return addr; - } - - info.flags = VM_UNMAPPED_AREA_TOPDOWN; - info.length = len; - info.low_limit = max(PAGE_SIZE, mmap_min_addr); -- info.high_limit = mm->mmap_base; -+ info.high_limit = mm->mmap_base + (high_limit - DEFAULT_MAP_WINDOW); - info.align_mask = 0; - -- if (addr > DEFAULT_MAP_WINDOW) -- info.high_limit += mm->context.addr_limit - DEFAULT_MAP_WINDOW; -- - addr = vm_unmapped_area(&info); - if (!(addr & ~PAGE_MASK)) - return addr; --- -2.14.3 - diff --git a/0002-power-supply-max17042_battery-Fix-ACPI-interrupt-iss.patch b/0002-power-supply-max17042_battery-Fix-ACPI-interrupt-iss.patch deleted file mode 100644 index 6daecaf4d..000000000 --- a/0002-power-supply-max17042_battery-Fix-ACPI-interrupt-iss.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 27b9d46d25c873b351757c44ce523bf0ede1d08e Mon Sep 17 00:00:00 2001 -From: Hans de Goede <hdegoede@redhat.com> -Date: Mon, 14 Aug 2017 11:02:59 +0200 -Subject: [PATCH 2/2] power: supply: max17042_battery: Fix ACPI interrupt - issues - -On some x86/ACPI boards the DSDT defines an ACPI event handler for -the max17047 IRQ, this causes several problems: - -1) We need to share the IRQ to avoid an error getting it - -2) Even of we are willing to share, we may fail to share because some - DSDTs claim it exclusivly - -3) If we are unable to share the IRQ, or the IRQ is only listed as an - ACPI event source and not in the max1704 firmware node, then the - charge threshold IRQ (which is used to give an IRQ every 1 percent - charge change) becomes a problem, the ACPI event handler will not - update this to the next 1 percent threshold, so the IRQ keeps firing - and we get an IRQ storm pegging 1 CPU core. - - This happens despite the max17042 driver not setting the charge - threshold because Windows uses it and leaves it set on reboot. - - So if we are unable to get the IRQ we need to reprogram the - charge threshold to its disabled setting. - -This commit fixes al of the above, while at it it also makes the error -msg when being unable to get the IRQ consistent with other messages. - -Signed-off-by: Hans de Goede <hdegoede@redhat.com> ---- - drivers/power/supply/max17042_battery.c | 20 +++++++++++++++----- - 1 file changed, 15 insertions(+), 5 deletions(-) - -diff --git a/drivers/power/supply/max17042_battery.c b/drivers/power/supply/max17042_battery.c -index b2ddb7eb69c6..18a44e4ed6ff 100644 ---- a/drivers/power/supply/max17042_battery.c -+++ b/drivers/power/supply/max17042_battery.c -@@ -1050,11 +1050,18 @@ static int max17042_probe(struct i2c_client *client, - } - - if (client->irq) { -+ unsigned int flags = IRQF_TRIGGER_FALLING | IRQF_ONESHOT; -+ -+ /* -+ * On ACPI systems the IRQ may be handled by ACPI-event code, -+ * so we need to share (if the ACPI code is willing to share). -+ */ -+ if (acpi_id) -+ flags |= IRQF_SHARED | IRQF_PROBE_SHARED; -+ - ret = devm_request_threaded_irq(&client->dev, client->irq, - NULL, -- max17042_thread_handler, -- IRQF_TRIGGER_FALLING | -- IRQF_ONESHOT, -+ max17042_thread_handler, flags, - chip->battery->desc->name, - chip); - if (!ret) { -@@ -1064,10 +1071,13 @@ static int max17042_probe(struct i2c_client *client, - max17042_set_soc_threshold(chip, 1); - } else { - client->irq = 0; -- dev_err(&client->dev, "%s(): cannot get IRQ\n", -- __func__); -+ if (ret != -EBUSY) -+ dev_err(&client->dev, "Failed to get IRQ\n"); - } - } -+ /* Not able to update the charge threshold when exceeded? -> disable */ -+ if (!client->irq) -+ regmap_write(chip->regmap, MAX17042_SALRT_Th, 0xff00); - - regmap_read(chip->regmap, MAX17042_STATUS, &val); - if (val & STATUS_POR_BIT) { --- -2.13.4 - diff --git a/0002-powerpc-64s-hash-Fix-512T-hint-detection-to-use-128T.patch b/0002-powerpc-64s-hash-Fix-512T-hint-detection-to-use-128T.patch deleted file mode 100644 index fc6b806d7..000000000 --- a/0002-powerpc-64s-hash-Fix-512T-hint-detection-to-use-128T.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 75c7f5172c113af1ea3cf094436c9e03191673e0 Mon Sep 17 00:00:00 2001 -From: Michael Ellerman <mpe@ellerman.id.au> -Date: Tue, 28 Nov 2017 11:26:55 +0100 -Subject: [PATCH 2/5] powerpc/64s/hash: Fix 512T hint detection to use >= 128T - -commit 7ece370996b694ae263025e056ad785afc1be5ab upstream. - -Currently userspace is able to request mmap() search between 128T-512T -by specifying a hint address that is greater than 128T. But that means -a hint of 128T exactly will return an address below 128T, which is -confusing and wrong. - -So fix the logic to check the hint is greater than *or equal* to 128T. - -Fixes: f4ea6dcb08ea ("powerpc/mm: Enable mappings above 128TB") -Suggested-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> -Suggested-by: Nicholas Piggin <npiggin@gmail.com> -[mpe: Split out of Nick's bigger patch] -Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - arch/powerpc/mm/slice.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c -index 45f6740dd407..48a5312103a1 100644 ---- a/arch/powerpc/mm/slice.c -+++ b/arch/powerpc/mm/slice.c -@@ -419,7 +419,7 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len, - /* - * Check if we need to expland slice area. - */ -- if (unlikely(addr > mm->context.addr_limit && -+ if (unlikely(addr >= mm->context.addr_limit && - mm->context.addr_limit != TASK_SIZE)) { - mm->context.addr_limit = TASK_SIZE; - on_each_cpu(slice_flush_segments, mm, 1); -@@ -427,7 +427,7 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len, - /* - * This mmap request can allocate upt to 512TB - */ -- if (addr > DEFAULT_MAP_WINDOW) -+ if (addr >= DEFAULT_MAP_WINDOW) - high_limit = mm->context.addr_limit; - else - high_limit = DEFAULT_MAP_WINDOW; --- -2.14.3 - diff --git a/0003-powerpc-64s-hash-Fix-128TB-512TB-virtual-address-bou.patch b/0003-powerpc-64s-hash-Fix-128TB-512TB-virtual-address-bou.patch deleted file mode 100644 index 009068a3b..000000000 --- a/0003-powerpc-64s-hash-Fix-128TB-512TB-virtual-address-bou.patch +++ /dev/null @@ -1,129 +0,0 @@ -From e90387a8d2227f95bf5e5b5ffd816d48a87466e2 Mon Sep 17 00:00:00 2001 -From: Nicholas Piggin <npiggin@gmail.com> -Date: Tue, 28 Nov 2017 11:26:56 +0100 -Subject: [PATCH 3/5] powerpc/64s/hash: Fix 128TB-512TB virtual address - boundary case allocation - -commit 6a72dc038b615229a1b285829d6c8378d15c2347 upstream. - -When allocating VA space with a hint that crosses 128TB, the SLB -addr_limit variable is not expanded if addr is not > 128TB, but the -slice allocation looks at task_size, which is 512TB. This results in -slice_check_fit() incorrectly succeeding because the slice_count -truncates off bit 128 of the requested mask, so the comparison to the -available mask succeeds. - -Fix this by using mm->context.addr_limit instead of mm->task_size for -testing allocation limits. This causes such allocations to fail. - -Fixes: f4ea6dcb08ea ("powerpc/mm: Enable mappings above 128TB") -Reported-by: Florian Weimer <fweimer@redhat.com> -Signed-off-by: Nicholas Piggin <npiggin@gmail.com> -Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> -Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - arch/powerpc/mm/slice.c | 50 ++++++++++++++++++++++++------------------------- - 1 file changed, 24 insertions(+), 26 deletions(-) - -diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c -index 48a5312103a1..3889201b560c 100644 ---- a/arch/powerpc/mm/slice.c -+++ b/arch/powerpc/mm/slice.c -@@ -96,7 +96,7 @@ static int slice_area_is_free(struct mm_struct *mm, unsigned long addr, - { - struct vm_area_struct *vma; - -- if ((mm->task_size - len) < addr) -+ if ((mm->context.addr_limit - len) < addr) - return 0; - vma = find_vma(mm, addr); - return (!vma || (addr + len) <= vm_start_gap(vma)); -@@ -133,7 +133,7 @@ static void slice_mask_for_free(struct mm_struct *mm, struct slice_mask *ret) - if (!slice_low_has_vma(mm, i)) - ret->low_slices |= 1u << i; - -- if (mm->task_size <= SLICE_LOW_TOP) -+ if (mm->context.addr_limit <= SLICE_LOW_TOP) - return; - - for (i = 0; i < GET_HIGH_SLICE_INDEX(mm->context.addr_limit); i++) -@@ -412,25 +412,31 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len, - struct slice_mask compat_mask; - int fixed = (flags & MAP_FIXED); - int pshift = max_t(int, mmu_psize_defs[psize].shift, PAGE_SHIFT); -+ unsigned long page_size = 1UL << pshift; - struct mm_struct *mm = current->mm; - unsigned long newaddr; - unsigned long high_limit; - -- /* -- * Check if we need to expland slice area. -- */ -- if (unlikely(addr >= mm->context.addr_limit && -- mm->context.addr_limit != TASK_SIZE)) { -- mm->context.addr_limit = TASK_SIZE; -+ high_limit = DEFAULT_MAP_WINDOW; -+ if (addr >= high_limit) -+ high_limit = TASK_SIZE; -+ -+ if (len > high_limit) -+ return -ENOMEM; -+ if (len & (page_size - 1)) -+ return -EINVAL; -+ if (fixed) { -+ if (addr & (page_size - 1)) -+ return -EINVAL; -+ if (addr > high_limit - len) -+ return -ENOMEM; -+ } -+ -+ if (high_limit > mm->context.addr_limit) { -+ mm->context.addr_limit = high_limit; - on_each_cpu(slice_flush_segments, mm, 1); - } -- /* -- * This mmap request can allocate upt to 512TB -- */ -- if (addr >= DEFAULT_MAP_WINDOW) -- high_limit = mm->context.addr_limit; -- else -- high_limit = DEFAULT_MAP_WINDOW; -+ - /* - * init different masks - */ -@@ -446,27 +452,19 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len, - - /* Sanity checks */ - BUG_ON(mm->task_size == 0); -+ BUG_ON(mm->context.addr_limit == 0); - VM_BUG_ON(radix_enabled()); - - slice_dbg("slice_get_unmapped_area(mm=%p, psize=%d...\n", mm, psize); - slice_dbg(" addr=%lx, len=%lx, flags=%lx, topdown=%d\n", - addr, len, flags, topdown); - -- if (len > mm->task_size) -- return -ENOMEM; -- if (len & ((1ul << pshift) - 1)) -- return -EINVAL; -- if (fixed && (addr & ((1ul << pshift) - 1))) -- return -EINVAL; -- if (fixed && addr > (mm->task_size - len)) -- return -ENOMEM; -- - /* If hint, make sure it matches our alignment restrictions */ - if (!fixed && addr) { -- addr = _ALIGN_UP(addr, 1ul << pshift); -+ addr = _ALIGN_UP(addr, page_size); - slice_dbg(" aligned addr=%lx\n", addr); - /* Ignore hint if it's too large or overlaps a VMA */ -- if (addr > mm->task_size - len || -+ if (addr > high_limit - len || - !slice_area_is_free(mm, addr, len)) - addr = 0; - } --- -2.14.3 - diff --git a/0004-powerpc-64s-hash-Fix-fork-with-512TB-process-address.patch b/0004-powerpc-64s-hash-Fix-fork-with-512TB-process-address.patch deleted file mode 100644 index 75d9d3241..000000000 --- a/0004-powerpc-64s-hash-Fix-fork-with-512TB-process-address.patch +++ /dev/null @@ -1,48 +0,0 @@ -From fe50aa4374f20333d9b077bbe09397d38112b081 Mon Sep 17 00:00:00 2001 -From: Nicholas Piggin <npiggin@gmail.com> -Date: Tue, 28 Nov 2017 11:26:57 +0100 -Subject: [PATCH 4/5] powerpc/64s/hash: Fix fork() with 512TB process address - space - -commit effc1b25088502fbd30305c79773de2d1f7470a6 upstream. - -Hash unconditionally resets the addr_limit to default (128TB) when the -mm context is initialised. If a process has > 128TB mappings when it -forks, the child will not get the 512TB addr_limit, so accesses to -valid > 128TB mappings will fail in the child. - -Fix this by only resetting the addr_limit to default if it was 0. Non -zero indicates it was duplicated from the parent (0 means exec()). - -Fixes: f4ea6dcb08ea ("powerpc/mm: Enable mappings above 128TB") -Signed-off-by: Nicholas Piggin <npiggin@gmail.com> -Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> -Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - arch/powerpc/mm/mmu_context_book3s64.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/arch/powerpc/mm/mmu_context_book3s64.c b/arch/powerpc/mm/mmu_context_book3s64.c -index a75f63833284..bb9cdf01fc4f 100644 ---- a/arch/powerpc/mm/mmu_context_book3s64.c -+++ b/arch/powerpc/mm/mmu_context_book3s64.c -@@ -95,11 +95,11 @@ static int hash__init_new_context(struct mm_struct *mm) - return index; - - /* -- * We do switch_slb() early in fork, even before we setup the -- * mm->context.addr_limit. Default to max task size so that we copy the -- * default values to paca which will help us to handle slb miss early. -+ * In the case of exec, use the default limit, -+ * otherwise inherit it from the mm we are duplicating. - */ -- mm->context.addr_limit = DEFAULT_MAP_WINDOW_USER64; -+ if (!mm->context.addr_limit) -+ mm->context.addr_limit = DEFAULT_MAP_WINDOW_USER64; - - /* - * The old code would re-promote on fork, we don't do that when using --- -2.14.3 - diff --git a/0005-powerpc-64s-hash-Allow-MAP_FIXED-allocations-to-cros.patch b/0005-powerpc-64s-hash-Allow-MAP_FIXED-allocations-to-cros.patch deleted file mode 100644 index e7e9a4acf..000000000 --- a/0005-powerpc-64s-hash-Allow-MAP_FIXED-allocations-to-cros.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 2beb551e379191c2a24e7db8c4fcc64fef4b921a Mon Sep 17 00:00:00 2001 -From: Nicholas Piggin <npiggin@gmail.com> -Date: Tue, 28 Nov 2017 11:26:58 +0100 -Subject: [PATCH 5/5] powerpc/64s/hash: Allow MAP_FIXED allocations to cross - 128TB boundary - -commit 35602f82d0c765f991420e319c8d3a596c921eb8 upstream. - -While mapping hints with a length that cross 128TB are disallowed, -MAP_FIXED allocations that cross 128TB are allowed. These are failing -on hash (on radix they succeed). Add an additional case for fixed -mappings to expand the addr_limit when crossing 128TB. - -Fixes: f4ea6dcb08ea ("powerpc/mm: Enable mappings above 128TB") -Signed-off-by: Nicholas Piggin <npiggin@gmail.com> -Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> -Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - arch/powerpc/mm/slice.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c -index 3889201b560c..a4f93699194b 100644 ---- a/arch/powerpc/mm/slice.c -+++ b/arch/powerpc/mm/slice.c -@@ -418,7 +418,7 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len, - unsigned long high_limit; - - high_limit = DEFAULT_MAP_WINDOW; -- if (addr >= high_limit) -+ if (addr >= high_limit || (fixed && (addr + len > high_limit))) - high_limit = TASK_SIZE; - - if (len > high_limit) --- -2.14.3 - diff --git a/0011-Input-goodix-Add-support-for-capacitive-home-button.patch b/0011-Input-goodix-Add-support-for-capacitive-home-button.patch deleted file mode 100644 index 162357c21..000000000 --- a/0011-Input-goodix-Add-support-for-capacitive-home-button.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 2a99775c336303d2efc43eab4f24b34722a28faa Mon Sep 17 00:00:00 2001 -From: "Sergei A. Trusov" <sergei.a.trusov@ya.ru> -Date: Tue, 20 Jun 2017 18:08:35 +0200 -Subject: [PATCH 11/16] Input: goodix: Add support for capacitive home button - -On some x86 tablets with a Goodix touchscreen, the Windows logo on the -front is a capacitive home button. Touching this button results in a touch -with bit 4 of the first byte set, while only the lower 4 bits (0-3) are -used to indicate the number of touches. - -Report a KEY_LEFTMETA press when this happens. - -Note that the hardware might support more than one button, in which -case the "id" byte of coor_data would identify the button in question. -This is not implemented as we don't have access to hardware with -multiple buttons. - -Signed-off-by: Sergei A. Trusov <sergei.a.trusov@ya.ru> -Acked-by: Bastien Nocera <hadess@hadess.net> ---- - drivers/input/touchscreen/goodix.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c -index 240b16f3ee97..903137d9cf7d 100644 ---- a/drivers/input/touchscreen/goodix.c -+++ b/drivers/input/touchscreen/goodix.c -@@ -267,6 +267,12 @@ static void goodix_process_events(struct goodix_ts_data *ts) - if (touch_num < 0) - return; - -+ /* -+ * Bit 4 of the first byte reports the status of the capacitive -+ * Windows/Home button. -+ */ -+ input_report_key(ts->input_dev, KEY_LEFTMETA, !!(point_data[0] & BIT(4))); -+ - for (i = 0; i < touch_num; i++) - goodix_ts_report_touch(ts, - &point_data[1 + GOODIX_CONTACT_SIZE * i]); -@@ -612,6 +618,9 @@ static int goodix_request_input_dev(struct goodix_ts_data *ts) - ts->input_dev->id.product = ts->id; - ts->input_dev->id.version = ts->version; - -+ /* Capacitive Windows/Home button on some devices */ -+ input_set_capability(ts->input_dev, EV_KEY, KEY_LEFTMETA); -+ - error = input_register_device(ts->input_dev); - if (error) { - dev_err(&ts->client->dev, --- -2.13.0 - diff --git a/0013-iio-accel-bmc150-Add-support-for-BOSC0200-ACPI-devic.patch b/0013-iio-accel-bmc150-Add-support-for-BOSC0200-ACPI-devic.patch deleted file mode 100644 index 8eb41ee3f..000000000 --- a/0013-iio-accel-bmc150-Add-support-for-BOSC0200-ACPI-devic.patch +++ /dev/null @@ -1,32 +0,0 @@ -From bf3e9581e10a19b2ce77a45fe001116d269b4c7f Mon Sep 17 00:00:00 2001 -From: Hans de Goede <hdegoede@redhat.com> -Date: Sun, 18 Jun 2017 12:47:38 +0200 -Subject: [PATCH 13/16] iio: accel: bmc150: Add support for BOSC0200 ACPI - device id - -Add support for the BOSC0200 ACPI device id used on some x86 tablets. -note driver_data is not set to a specific model, driver_data is not -used anyways (instead detection is done on the chip_id reg) and the -2 tablets with a BOSC0200 ACPI device id I've have 2 different chips, -one has a BMA250E, the other a BMA222E. - -Signed-off-by: Hans de Goede <hdegoede@redhat.com> ---- - drivers/iio/accel/bmc150-accel-i2c.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/iio/accel/bmc150-accel-i2c.c b/drivers/iio/accel/bmc150-accel-i2c.c -index 8ca8041267ef..f85014fbaa12 100644 ---- a/drivers/iio/accel/bmc150-accel-i2c.c -+++ b/drivers/iio/accel/bmc150-accel-i2c.c -@@ -64,6 +64,7 @@ static const struct acpi_device_id bmc150_accel_acpi_match[] = { - {"BMA250E", bma250e}, - {"BMA222E", bma222e}, - {"BMA0280", bma280}, -+ {"BOSC0200"}, - { }, - }; - MODULE_DEVICE_TABLE(acpi, bmc150_accel_acpi_match); --- -2.13.0 - diff --git a/0015-i2c-cht-wc-Add-Intel-Cherry-Trail-Whiskey-Cove-SMBUS.patch b/0015-i2c-cht-wc-Add-Intel-Cherry-Trail-Whiskey-Cove-SMBUS.patch deleted file mode 100644 index 5d7497ce1..000000000 --- a/0015-i2c-cht-wc-Add-Intel-Cherry-Trail-Whiskey-Cove-SMBUS.patch +++ /dev/null @@ -1,410 +0,0 @@ -From bd0d7169342e47919f68e75d659968f02b62f84b Mon Sep 17 00:00:00 2001 -From: Hans de Goede <hdegoede@redhat.com> -Date: Fri, 3 Mar 2017 23:48:50 +0100 -Subject: [PATCH 15/16] i2c-cht-wc: Add Intel Cherry Trail Whiskey Cove SMBUS - controller driver - -The Intel Cherry Trail Whiskey Cove PMIC does not contain a builtin -battery charger, instead boards with this PMIC use an external TI -bq24292i charger IC, which is connected to a SMBUS controller built into -the PMIC. - -This commit adds an i2c-bus driver for the PMIC's builtin SMBUS -controller. The probe function for this i2c-bus will also register an -i2c-client for the TI bq24292i charger after the i2c-bus has been -registered. - -Note that several device-properties are set on the client-device to -tell the bq24190 power-supply driver to integrate the Whiskey Cove PMIC -and e.g. use the PMIC's BC1.2 detection (through extcon) to determine -the maximum input current. - -Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com> -Signed-off-by: Hans de Goede <hdegoede@redhat.com> ---- -Changes in v2: --Various style (mostly captialization and variable name) fixes --Use device-properties instead of platform_data for the i2c_board_info ---- - drivers/i2c/busses/Kconfig | 8 + - drivers/i2c/busses/Makefile | 1 + - drivers/i2c/busses/i2c-cht-wc.c | 336 ++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 345 insertions(+) - create mode 100644 drivers/i2c/busses/i2c-cht-wc.c - -diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig -index 144cbadc7c72..18c96178b177 100644 ---- a/drivers/i2c/busses/Kconfig -+++ b/drivers/i2c/busses/Kconfig -@@ -187,6 +187,14 @@ config I2C_PIIX4 - This driver can also be built as a module. If so, the module - will be called i2c-piix4. - -+config I2C_CHT_WC -+ tristate "Intel Cherry Trail Whiskey Cove PMIC smbus controller" -+ depends on INTEL_SOC_PMIC_CHTWC -+ help -+ If you say yes to this option, support will be included for the -+ SMBus controller found in the Intel Cherry Trail Whiskey Cove PMIC -+ found on some Intel Cherry Trail systems. -+ - config I2C_NFORCE2 - tristate "Nvidia nForce2, nForce3 and nForce4" - depends on PCI -diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile -index 30b60855fbcd..f6443fa44f61 100644 ---- a/drivers/i2c/busses/Makefile -+++ b/drivers/i2c/busses/Makefile -@@ -12,6 +12,7 @@ obj-$(CONFIG_I2C_ALI15X3) += i2c-ali15x3.o - obj-$(CONFIG_I2C_AMD756) += i2c-amd756.o - obj-$(CONFIG_I2C_AMD756_S4882) += i2c-amd756-s4882.o - obj-$(CONFIG_I2C_AMD8111) += i2c-amd8111.o -+obj-$(CONFIG_I2C_CHT_WC) += i2c-cht-wc.o - obj-$(CONFIG_I2C_I801) += i2c-i801.o - obj-$(CONFIG_I2C_ISCH) += i2c-isch.o - obj-$(CONFIG_I2C_ISMT) += i2c-ismt.o -diff --git a/drivers/i2c/busses/i2c-cht-wc.c b/drivers/i2c/busses/i2c-cht-wc.c -new file mode 100644 -index 000000000000..ccf0785bcb75 ---- /dev/null -+++ b/drivers/i2c/busses/i2c-cht-wc.c -@@ -0,0 +1,336 @@ -+/* -+ * Intel CHT Whiskey Cove PMIC I2C Master driver -+ * Copyright (C) 2017 Hans de Goede <hdegoede@redhat.com> -+ * -+ * Based on various non upstream patches to support the CHT Whiskey Cove PMIC: -+ * Copyright (C) 2011 - 2014 Intel Corporation. All rights reserved. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License version -+ * 2 as published by the Free Software Foundation. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ */ -+ -+#include <linux/completion.h> -+#include <linux/delay.h> -+#include <linux/i2c.h> -+#include <linux/interrupt.h> -+#include <linux/irq.h> -+#include <linux/irqdomain.h> -+#include <linux/mfd/intel_soc_pmic.h> -+#include <linux/module.h> -+#include <linux/platform_device.h> -+#include <linux/slab.h> -+ -+#define CHT_WC_I2C_CTRL 0x5e24 -+#define CHT_WC_I2C_CTRL_WR BIT(0) -+#define CHT_WC_I2C_CTRL_RD BIT(1) -+#define CHT_WC_I2C_CLIENT_ADDR 0x5e25 -+#define CHT_WC_I2C_REG_OFFSET 0x5e26 -+#define CHT_WC_I2C_WRDATA 0x5e27 -+#define CHT_WC_I2C_RDDATA 0x5e28 -+ -+#define CHT_WC_EXTCHGRIRQ 0x6e0a -+#define CHT_WC_EXTCHGRIRQ_CLIENT_IRQ BIT(0) -+#define CHT_WC_EXTCHGRIRQ_WRITE_IRQ BIT(1) -+#define CHT_WC_EXTCHGRIRQ_READ_IRQ BIT(2) -+#define CHT_WC_EXTCHGRIRQ_NACK_IRQ BIT(3) -+#define CHT_WC_EXTCHGRIRQ_ADAP_IRQMASK ((u8)GENMASK(3, 1)) -+#define CHT_WC_EXTCHGRIRQ_MSK 0x6e17 -+ -+struct cht_wc_i2c_adap { -+ struct i2c_adapter adapter; -+ wait_queue_head_t wait; -+ struct irq_chip irqchip; -+ struct mutex irqchip_lock; -+ struct regmap *regmap; -+ struct irq_domain *irq_domain; -+ struct i2c_client *client; -+ int client_irq; -+ u8 irq_mask; -+ u8 old_irq_mask; -+ bool nack; -+ bool done; -+}; -+ -+static irqreturn_t cht_wc_i2c_adap_thread_handler(int id, void *data) -+{ -+ struct cht_wc_i2c_adap *adap = data; -+ int ret, reg; -+ -+ /* Read IRQs */ -+ ret = regmap_read(adap->regmap, CHT_WC_EXTCHGRIRQ, ®); -+ if (ret) { -+ dev_err(&adap->adapter.dev, "Error reading extchgrirq reg\n"); -+ return IRQ_NONE; -+ } -+ -+ reg &= ~adap->irq_mask; -+ -+ /* -+ * Immediately ack IRQs, so that if new IRQs arrives while we're -+ * handling the previous ones our irq will re-trigger when we're done. -+ */ -+ ret = regmap_write(adap->regmap, CHT_WC_EXTCHGRIRQ, reg); -+ if (ret) -+ dev_err(&adap->adapter.dev, "Error writing extchgrirq reg\n"); -+ -+ /* -+ * Do NOT use handle_nested_irq here, the client irq handler will -+ * likely want to do i2c transfers and the i2c controller uses this -+ * interrupt handler as well, so running the client irq handler from -+ * this thread will cause things to lock up. -+ */ -+ if (reg & CHT_WC_EXTCHGRIRQ_CLIENT_IRQ) { -+ /* -+ * generic_handle_irq expects local IRQs to be disabled -+ * as normally it is called from interrupt context. -+ */ -+ local_irq_disable(); -+ generic_handle_irq(adap->client_irq); -+ local_irq_enable(); -+ } -+ -+ if (reg & CHT_WC_EXTCHGRIRQ_ADAP_IRQMASK) { -+ adap->nack = !!(reg & CHT_WC_EXTCHGRIRQ_NACK_IRQ); -+ adap->done = true; -+ wake_up(&adap->wait); -+ } -+ -+ return IRQ_HANDLED; -+} -+ -+static u32 cht_wc_i2c_adap_master_func(struct i2c_adapter *adap) -+{ -+ /* This i2c adapter only supports SMBUS byte transfers */ -+ return I2C_FUNC_SMBUS_BYTE_DATA; -+} -+ -+static int cht_wc_i2c_adap_smbus_xfer(struct i2c_adapter *_adap, u16 addr, -+ unsigned short flags, char read_write, -+ u8 command, int size, -+ union i2c_smbus_data *data) -+{ -+ struct cht_wc_i2c_adap *adap = i2c_get_adapdata(_adap); -+ int ret, reg; -+ -+ adap->nack = false; -+ adap->done = false; -+ -+ ret = regmap_write(adap->regmap, CHT_WC_I2C_CLIENT_ADDR, addr); -+ if (ret) -+ return ret; -+ -+ if (read_write == I2C_SMBUS_WRITE) { -+ ret = regmap_write(adap->regmap, CHT_WC_I2C_WRDATA, data->byte); -+ if (ret) -+ return ret; -+ } -+ -+ ret = regmap_write(adap->regmap, CHT_WC_I2C_REG_OFFSET, command); -+ if (ret) -+ return ret; -+ -+ ret = regmap_write(adap->regmap, CHT_WC_I2C_CTRL, -+ (read_write == I2C_SMBUS_WRITE) ? -+ CHT_WC_I2C_CTRL_WR : CHT_WC_I2C_CTRL_RD); -+ if (ret) -+ return ret; -+ -+ /* 3 second timeout, during cable plug the PMIC responds quite slow */ -+ ret = wait_event_timeout(adap->wait, adap->done, 3 * HZ); -+ if (ret == 0) -+ return -ETIMEDOUT; -+ if (adap->nack) -+ return -EIO; -+ -+ if (read_write == I2C_SMBUS_READ) { -+ ret = regmap_read(adap->regmap, CHT_WC_I2C_RDDATA, ®); -+ if (ret) -+ return ret; -+ -+ data->byte = reg; -+ } -+ -+ return 0; -+} -+ -+static const struct i2c_algorithm cht_wc_i2c_adap_algo = { -+ .functionality = cht_wc_i2c_adap_master_func, -+ .smbus_xfer = cht_wc_i2c_adap_smbus_xfer, -+}; -+ -+/**** irqchip for the client connected to the extchgr i2c adapter ****/ -+static void cht_wc_i2c_irq_lock(struct irq_data *data) -+{ -+ struct cht_wc_i2c_adap *adap = irq_data_get_irq_chip_data(data); -+ -+ mutex_lock(&adap->irqchip_lock); -+} -+ -+static void cht_wc_i2c_irq_sync_unlock(struct irq_data *data) -+{ -+ struct cht_wc_i2c_adap *adap = irq_data_get_irq_chip_data(data); -+ int ret; -+ -+ if (adap->irq_mask != adap->old_irq_mask) { -+ ret = regmap_write(adap->regmap, CHT_WC_EXTCHGRIRQ_MSK, -+ adap->irq_mask); -+ if (ret == 0) -+ adap->old_irq_mask = adap->irq_mask; -+ else -+ dev_err(&adap->adapter.dev, "Error writing EXTCHGRIRQ_MSK\n"); -+ } -+ -+ mutex_unlock(&adap->irqchip_lock); -+} -+ -+static void cht_wc_i2c_irq_enable(struct irq_data *data) -+{ -+ struct cht_wc_i2c_adap *adap = irq_data_get_irq_chip_data(data); -+ -+ adap->irq_mask &= ~CHT_WC_EXTCHGRIRQ_CLIENT_IRQ; -+} -+ -+static void cht_wc_i2c_irq_disable(struct irq_data *data) -+{ -+ struct cht_wc_i2c_adap *adap = irq_data_get_irq_chip_data(data); -+ -+ adap->irq_mask |= CHT_WC_EXTCHGRIRQ_CLIENT_IRQ; -+} -+ -+static const struct irq_chip cht_wc_i2c_irq_chip = { -+ .irq_bus_lock = cht_wc_i2c_irq_lock, -+ .irq_bus_sync_unlock = cht_wc_i2c_irq_sync_unlock, -+ .irq_disable = cht_wc_i2c_irq_disable, -+ .irq_enable = cht_wc_i2c_irq_enable, -+ .name = "cht_wc_ext_chrg_irq_chip", -+}; -+ -+static const struct property_entry bq24190_props[] = { -+ PROPERTY_ENTRY_STRING("extcon-name", "cht_wcove_pwrsrc"), -+ PROPERTY_ENTRY_BOOL("omit-battery-class"), -+ PROPERTY_ENTRY_BOOL("disable-reset"), -+ { } -+}; -+ -+static int cht_wc_i2c_adap_i2c_probe(struct platform_device *pdev) -+{ -+ struct intel_soc_pmic *pmic = dev_get_drvdata(pdev->dev.parent); -+ struct cht_wc_i2c_adap *adap; -+ struct i2c_board_info board_info = { -+ .type = "bq24190", -+ .addr = 0x6b, -+ .properties = bq24190_props, -+ }; -+ int ret, irq; -+ -+ irq = platform_get_irq(pdev, 0); -+ if (irq < 0) { -+ dev_err(&pdev->dev, "Error missing irq resource\n"); -+ return -EINVAL; -+ } -+ -+ adap = devm_kzalloc(&pdev->dev, sizeof(*adap), GFP_KERNEL); -+ if (!adap) -+ return -ENOMEM; -+ -+ init_waitqueue_head(&adap->wait); -+ mutex_init(&adap->irqchip_lock); -+ adap->irqchip = cht_wc_i2c_irq_chip; -+ adap->regmap = pmic->regmap; -+ adap->adapter.owner = THIS_MODULE; -+ adap->adapter.class = I2C_CLASS_HWMON; -+ adap->adapter.algo = &cht_wc_i2c_adap_algo; -+ strlcpy(adap->adapter.name, "PMIC I2C Adapter", -+ sizeof(adap->adapter.name)); -+ adap->adapter.dev.parent = &pdev->dev; -+ -+ /* Clear and activate i2c-adapter interrupts, disable client IRQ */ -+ adap->old_irq_mask = adap->irq_mask = ~CHT_WC_EXTCHGRIRQ_ADAP_IRQMASK; -+ ret = regmap_write(adap->regmap, CHT_WC_EXTCHGRIRQ, ~adap->irq_mask); -+ if (ret) -+ return ret; -+ -+ ret = regmap_write(adap->regmap, CHT_WC_EXTCHGRIRQ_MSK, adap->irq_mask); -+ if (ret) -+ return ret; -+ -+ /* Alloc and register client IRQ */ -+ adap->irq_domain = irq_domain_add_linear(pdev->dev.of_node, 1, -+ &irq_domain_simple_ops, NULL); -+ if (!adap->irq_domain) -+ return -ENOMEM; -+ -+ adap->client_irq = irq_create_mapping(adap->irq_domain, 0); -+ if (!adap->client_irq) { -+ ret = -ENOMEM; -+ goto remove_irq_domain; -+ } -+ -+ irq_set_chip_data(adap->client_irq, adap); -+ irq_set_chip_and_handler(adap->client_irq, &adap->irqchip, -+ handle_simple_irq); -+ -+ ret = devm_request_threaded_irq(&pdev->dev, irq, NULL, -+ cht_wc_i2c_adap_thread_handler, -+ IRQF_ONESHOT, "PMIC I2C Adapter", adap); -+ if (ret) -+ goto remove_irq_domain; -+ -+ i2c_set_adapdata(&adap->adapter, adap); -+ ret = i2c_add_adapter(&adap->adapter); -+ if (ret) -+ goto remove_irq_domain; -+ -+ board_info.irq = adap->client_irq; -+ adap->client = i2c_new_device(&adap->adapter, &board_info); -+ if (!adap->client) { -+ ret = -ENOMEM; -+ goto del_adapter; -+ } -+ -+ platform_set_drvdata(pdev, adap); -+ return 0; -+ -+del_adapter: -+ i2c_del_adapter(&adap->adapter); -+remove_irq_domain: -+ irq_domain_remove(adap->irq_domain); -+ return ret; -+} -+ -+static int cht_wc_i2c_adap_i2c_remove(struct platform_device *pdev) -+{ -+ struct cht_wc_i2c_adap *adap = platform_get_drvdata(pdev); -+ -+ i2c_unregister_device(adap->client); -+ i2c_del_adapter(&adap->adapter); -+ irq_domain_remove(adap->irq_domain); -+ -+ return 0; -+} -+ -+static struct platform_device_id cht_wc_i2c_adap_id_table[] = { -+ { .name = "cht_wcove_ext_chgr" }, -+ {}, -+}; -+MODULE_DEVICE_TABLE(platform, cht_wc_i2c_adap_id_table); -+ -+struct platform_driver cht_wc_i2c_adap_driver = { -+ .probe = cht_wc_i2c_adap_i2c_probe, -+ .remove = cht_wc_i2c_adap_i2c_remove, -+ .driver = { -+ .name = "cht_wcove_ext_chgr", -+ }, -+ .id_table = cht_wc_i2c_adap_id_table, -+}; -+module_platform_driver(cht_wc_i2c_adap_driver); -+ -+MODULE_DESCRIPTION("Intel CHT Whiskey Cove PMIC I2C Master driver"); -+MODULE_AUTHOR("Hans de Goede <hdegoede@redhat.com>"); -+MODULE_LICENSE("GPL"); --- -2.13.0 - diff --git a/1-2-kvm-vmx-Reinstate-support-for-CPUs-without-virtual-NMI.patch b/1-2-kvm-vmx-Reinstate-support-for-CPUs-without-virtual-NMI.patch deleted file mode 100644 index ca079af42..000000000 --- a/1-2-kvm-vmx-Reinstate-support-for-CPUs-without-virtual-NMI.patch +++ /dev/null @@ -1,296 +0,0 @@ -From patchwork Mon Nov 6 12:31:12 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [1/2] kvm: vmx: Reinstate support for CPUs without virtual NMI -From: Paolo Bonzini <pbonzini@redhat.com> -X-Patchwork-Id: 10043403 -Message-Id: <1509971473-74491-2-git-send-email-pbonzini@redhat.com> -To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org -Cc: rkrcmar@redhat.com, stable@vger.kernel.org -Date: Mon, 6 Nov 2017 13:31:12 +0100 - -This is more or less a revert of commit 2c82878b0cb3 ("KVM: VMX: require -virtual NMI support", 2017-03-27); it turns out that Core 2 Duo machines -only had virtual NMIs in some SKUs. - -The revert is not trivial because in the meanwhile there have been several -fixes to nested NMI injection. Therefore, the entire vNMI state is moved -to struct loaded_vmcs. - -Another change compared to before the patch is a simplification here: - - if (unlikely(!cpu_has_virtual_nmis() && vmx->soft_vnmi_blocked && - !(is_guest_mode(vcpu) && nested_cpu_has_virtual_nmis( - get_vmcs12(vcpu))))) { - -The final condition here is always true (because nested_cpu_has_virtual_nmis -is always false) and is removed. - -Fixes: 2c82878b0cb38fd516fd612c67852a6bbf282003 -Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1490803 -Cc: stable@vger.kernel.org -Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> ---- - arch/x86/kvm/vmx.c | 150 +++++++++++++++++++++++++++++++++++++---------------- - 1 file changed, 106 insertions(+), 44 deletions(-) - -diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c -index e6c8ffa84968..d6b3b12ae1e2 100644 ---- a/arch/x86/kvm/vmx.c -+++ b/arch/x86/kvm/vmx.c -@@ -202,6 +202,10 @@ struct loaded_vmcs { - bool nmi_known_unmasked; - unsigned long vmcs_host_cr3; /* May not match real cr3 */ - unsigned long vmcs_host_cr4; /* May not match real cr4 */ -+ /* Support for vnmi-less CPUs */ -+ int soft_vnmi_blocked; -+ ktime_t entry_time; -+ s64 vnmi_blocked_time; - struct list_head loaded_vmcss_on_cpu_link; - }; - -@@ -1291,6 +1295,11 @@ static inline bool cpu_has_vmx_invpcid(void) - SECONDARY_EXEC_ENABLE_INVPCID; - } - -+static inline bool cpu_has_virtual_nmis(void) -+{ -+ return vmcs_config.pin_based_exec_ctrl & PIN_BASED_VIRTUAL_NMIS; -+} -+ - static inline bool cpu_has_vmx_wbinvd_exit(void) - { - return vmcs_config.cpu_based_2nd_exec_ctrl & -@@ -1348,11 +1357,6 @@ static inline bool nested_cpu_has2(struct vmcs12 *vmcs12, u32 bit) - (vmcs12->secondary_vm_exec_control & bit); - } - --static inline bool nested_cpu_has_virtual_nmis(struct vmcs12 *vmcs12) --{ -- return vmcs12->pin_based_vm_exec_control & PIN_BASED_VIRTUAL_NMIS; --} -- - static inline bool nested_cpu_has_preemption_timer(struct vmcs12 *vmcs12) - { - return vmcs12->pin_based_vm_exec_control & -@@ -3712,9 +3716,9 @@ static __init int setup_vmcs_config(struct vmcs_config *vmcs_conf) - &_vmexit_control) < 0) - return -EIO; - -- min = PIN_BASED_EXT_INTR_MASK | PIN_BASED_NMI_EXITING | -- PIN_BASED_VIRTUAL_NMIS; -- opt = PIN_BASED_POSTED_INTR | PIN_BASED_VMX_PREEMPTION_TIMER; -+ min = PIN_BASED_EXT_INTR_MASK | PIN_BASED_NMI_EXITING; -+ opt = PIN_BASED_VIRTUAL_NMIS | PIN_BASED_POSTED_INTR | -+ PIN_BASED_VMX_PREEMPTION_TIMER; - if (adjust_vmx_controls(min, opt, MSR_IA32_VMX_PINBASED_CTLS, - &_pin_based_exec_control) < 0) - return -EIO; -@@ -5669,7 +5673,8 @@ static void enable_irq_window(struct kvm_vcpu *vcpu) - - static void enable_nmi_window(struct kvm_vcpu *vcpu) - { -- if (vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) & GUEST_INTR_STATE_STI) { -+ if (!cpu_has_virtual_nmis() || -+ vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) & GUEST_INTR_STATE_STI) { - enable_irq_window(vcpu); - return; - } -@@ -5709,6 +5714,19 @@ static void vmx_inject_nmi(struct kvm_vcpu *vcpu) - { - struct vcpu_vmx *vmx = to_vmx(vcpu); - -+ if (!cpu_has_virtual_nmis()) { -+ /* -+ * Tracking the NMI-blocked state in software is built upon -+ * finding the next open IRQ window. This, in turn, depends on -+ * well-behaving guests: They have to keep IRQs disabled at -+ * least as long as the NMI handler runs. Otherwise we may -+ * cause NMI nesting, maybe breaking the guest. But as this is -+ * highly unlikely, we can live with the residual risk. -+ */ -+ vmx->loaded_vmcs->soft_vnmi_blocked = 1; -+ vmx->loaded_vmcs->vnmi_blocked_time = 0; -+ } -+ - ++vcpu->stat.nmi_injections; - vmx->loaded_vmcs->nmi_known_unmasked = false; - -@@ -5727,6 +5745,8 @@ static bool vmx_get_nmi_mask(struct kvm_vcpu *vcpu) - struct vcpu_vmx *vmx = to_vmx(vcpu); - bool masked; - -+ if (!cpu_has_virtual_nmis()) -+ return vmx->loaded_vmcs->soft_vnmi_blocked; - if (vmx->loaded_vmcs->nmi_known_unmasked) - return false; - masked = vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) & GUEST_INTR_STATE_NMI; -@@ -5738,13 +5758,20 @@ static void vmx_set_nmi_mask(struct kvm_vcpu *vcpu, bool masked) - { - struct vcpu_vmx *vmx = to_vmx(vcpu); - -- vmx->loaded_vmcs->nmi_known_unmasked = !masked; -- if (masked) -- vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, -- GUEST_INTR_STATE_NMI); -- else -- vmcs_clear_bits(GUEST_INTERRUPTIBILITY_INFO, -- GUEST_INTR_STATE_NMI); -+ if (!cpu_has_virtual_nmis()) { -+ if (vmx->loaded_vmcs->soft_vnmi_blocked != masked) { -+ vmx->loaded_vmcs->soft_vnmi_blocked = masked; -+ vmx->loaded_vmcs->vnmi_blocked_time = 0; -+ } -+ } else { -+ vmx->loaded_vmcs->nmi_known_unmasked = !masked; -+ if (masked) -+ vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, -+ GUEST_INTR_STATE_NMI); -+ else -+ vmcs_clear_bits(GUEST_INTERRUPTIBILITY_INFO, -+ GUEST_INTR_STATE_NMI); -+ } - } - - static int vmx_nmi_allowed(struct kvm_vcpu *vcpu) -@@ -5752,6 +5779,10 @@ static int vmx_nmi_allowed(struct kvm_vcpu *vcpu) - if (to_vmx(vcpu)->nested.nested_run_pending) - return 0; - -+ if (!cpu_has_virtual_nmis() && -+ to_vmx(vcpu)->loaded_vmcs->soft_vnmi_blocked) -+ return 0; -+ - return !(vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) & - (GUEST_INTR_STATE_MOV_SS | GUEST_INTR_STATE_STI - | GUEST_INTR_STATE_NMI)); -@@ -6479,6 +6510,7 @@ static int handle_ept_violation(struct kvm_vcpu *vcpu) - * AAK134, BY25. - */ - if (!(to_vmx(vcpu)->idt_vectoring_info & VECTORING_INFO_VALID_MASK) && -+ cpu_has_virtual_nmis() && - (exit_qualification & INTR_INFO_UNBLOCK_NMI)) - vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, GUEST_INTR_STATE_NMI); - -@@ -6965,7 +6997,7 @@ static struct loaded_vmcs *nested_get_current_vmcs02(struct vcpu_vmx *vmx) - } - - /* Create a new VMCS */ -- item = kmalloc(sizeof(struct vmcs02_list), GFP_KERNEL); -+ item = kzalloc(sizeof(struct vmcs02_list), GFP_KERNEL); - if (!item) - return NULL; - item->vmcs02.vmcs = alloc_vmcs(); -@@ -7982,6 +8014,7 @@ static int handle_pml_full(struct kvm_vcpu *vcpu) - * "blocked by NMI" bit has to be set before next VM entry. - */ - if (!(to_vmx(vcpu)->idt_vectoring_info & VECTORING_INFO_VALID_MASK) && -+ cpu_has_virtual_nmis() && - (exit_qualification & INTR_INFO_UNBLOCK_NMI)) - vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, - GUEST_INTR_STATE_NMI); -@@ -8826,6 +8859,25 @@ static int vmx_handle_exit(struct kvm_vcpu *vcpu) - return 0; - } - -+ if (unlikely(!cpu_has_virtual_nmis() && -+ vmx->loaded_vmcs->soft_vnmi_blocked)) { -+ if (vmx_interrupt_allowed(vcpu)) { -+ vmx->loaded_vmcs->soft_vnmi_blocked = 0; -+ } else if (vmx->loaded_vmcs->vnmi_blocked_time > 1000000000LL && -+ vcpu->arch.nmi_pending) { -+ /* -+ * This CPU don't support us in finding the end of an -+ * NMI-blocked window if the guest runs with IRQs -+ * disabled. So we pull the trigger after 1 s of -+ * futile waiting, but inform the user about this. -+ */ -+ printk(KERN_WARNING "%s: Breaking out of NMI-blocked " -+ "state on VCPU %d after 1 s timeout\n", -+ __func__, vcpu->vcpu_id); -+ vmx->loaded_vmcs->soft_vnmi_blocked = 0; -+ } -+ } -+ - if (exit_reason < kvm_vmx_max_exit_handlers - && kvm_vmx_exit_handlers[exit_reason]) - return kvm_vmx_exit_handlers[exit_reason](vcpu); -@@ -9108,33 +9160,38 @@ static void vmx_recover_nmi_blocking(struct vcpu_vmx *vmx) - - idtv_info_valid = vmx->idt_vectoring_info & VECTORING_INFO_VALID_MASK; - -- if (vmx->loaded_vmcs->nmi_known_unmasked) -- return; -- /* -- * Can't use vmx->exit_intr_info since we're not sure what -- * the exit reason is. -- */ -- exit_intr_info = vmcs_read32(VM_EXIT_INTR_INFO); -- unblock_nmi = (exit_intr_info & INTR_INFO_UNBLOCK_NMI) != 0; -- vector = exit_intr_info & INTR_INFO_VECTOR_MASK; -- /* -- * SDM 3: 27.7.1.2 (September 2008) -- * Re-set bit "block by NMI" before VM entry if vmexit caused by -- * a guest IRET fault. -- * SDM 3: 23.2.2 (September 2008) -- * Bit 12 is undefined in any of the following cases: -- * If the VM exit sets the valid bit in the IDT-vectoring -- * information field. -- * If the VM exit is due to a double fault. -- */ -- if ((exit_intr_info & INTR_INFO_VALID_MASK) && unblock_nmi && -- vector != DF_VECTOR && !idtv_info_valid) -- vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, -- GUEST_INTR_STATE_NMI); -- else -- vmx->loaded_vmcs->nmi_known_unmasked = -- !(vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) -- & GUEST_INTR_STATE_NMI); -+ if (cpu_has_virtual_nmis()) { -+ if (vmx->loaded_vmcs->nmi_known_unmasked) -+ return; -+ /* -+ * Can't use vmx->exit_intr_info since we're not sure what -+ * the exit reason is. -+ */ -+ exit_intr_info = vmcs_read32(VM_EXIT_INTR_INFO); -+ unblock_nmi = (exit_intr_info & INTR_INFO_UNBLOCK_NMI) != 0; -+ vector = exit_intr_info & INTR_INFO_VECTOR_MASK; -+ /* -+ * SDM 3: 27.7.1.2 (September 2008) -+ * Re-set bit "block by NMI" before VM entry if vmexit caused by -+ * a guest IRET fault. -+ * SDM 3: 23.2.2 (September 2008) -+ * Bit 12 is undefined in any of the following cases: -+ * If the VM exit sets the valid bit in the IDT-vectoring -+ * information field. -+ * If the VM exit is due to a double fault. -+ */ -+ if ((exit_intr_info & INTR_INFO_VALID_MASK) && unblock_nmi && -+ vector != DF_VECTOR && !idtv_info_valid) -+ vmcs_set_bits(GUEST_INTERRUPTIBILITY_INFO, -+ GUEST_INTR_STATE_NMI); -+ else -+ vmx->loaded_vmcs->nmi_known_unmasked = -+ !(vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) -+ & GUEST_INTR_STATE_NMI); -+ } else if (unlikely(vmx->loaded_vmcs->soft_vnmi_blocked)) -+ vmx->loaded_vmcs->vnmi_blocked_time += -+ ktime_to_ns(ktime_sub(ktime_get(), -+ vmx->loaded_vmcs->entry_time)); - } - - static void __vmx_complete_interrupts(struct kvm_vcpu *vcpu, -@@ -9251,6 +9308,11 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu) - struct vcpu_vmx *vmx = to_vmx(vcpu); - unsigned long debugctlmsr, cr3, cr4; - -+ /* Record the guest's net vcpu time for enforced NMI injections. */ -+ if (unlikely(!cpu_has_virtual_nmis() && -+ vmx->loaded_vmcs->soft_vnmi_blocked)) -+ vmx->loaded_vmcs->entry_time = ktime_get(); -+ - /* Don't enter VMX if guest state is invalid, let the exit handler - start emulation until we arrive back to a valid state */ - if (vmx->emulation_required) diff --git a/1-3-net-set-tb--fast_sk_family.patch b/1-3-net-set-tb--fast_sk_family.patch deleted file mode 100644 index dbe5250ab..000000000 --- a/1-3-net-set-tb--fast_sk_family.patch +++ /dev/null @@ -1,50 +0,0 @@ -From patchwork Mon Sep 18 16:28:55 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [1/3] net: set tb->fast_sk_family -X-Patchwork-Submitter: Josef Bacik <josef@toxicpanda.com> -X-Patchwork-Id: 815031 -X-Patchwork-Delegate: davem@davemloft.net -Message-Id: <1505752137-15522-2-git-send-email-jbacik@fb.com> -To: davem@davemloft.net, netdev@vger.kernel.org, - linux-kernel@vger.kernel.org, crobinso@redhat.com, - labbott@redhat.com, kernel-team@fb.com -Cc: Josef Bacik <jbacik@fb.com>, stable@vger.kernel.org -Date: Mon, 18 Sep 2017 12:28:55 -0400 -From: josef@toxicpanda.com -List-Id: <netdev.vger.kernel.org> - -From: Josef Bacik <jbacik@fb.com> - -We need to set the tb->fast_sk_family properly so we can use the proper -comparison function for all subsequent reuseport bind requests. - -Cc: stable@vger.kernel.org -Fixes: 637bc8bbe6c0 ("inet: reset tb->fastreuseport when adding a reuseport sk") -Reported-and-tested-by: Cole Robinson <crobinso@redhat.com> -Signed-off-by: Josef Bacik <jbacik@fb.com> ---- - net/ipv4/inet_connection_sock.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c -index b9c64b40a83a..f87f4805e244 100644 ---- a/net/ipv4/inet_connection_sock.c -+++ b/net/ipv4/inet_connection_sock.c -@@ -328,6 +328,7 @@ int inet_csk_get_port(struct sock *sk, unsigned short snum) - tb->fastuid = uid; - tb->fast_rcv_saddr = sk->sk_rcv_saddr; - tb->fast_ipv6_only = ipv6_only_sock(sk); -+ tb->fast_sk_family = sk->sk_family; - #if IS_ENABLED(CONFIG_IPV6) - tb->fast_v6_rcv_saddr = sk->sk_v6_rcv_saddr; - #endif -@@ -354,6 +355,7 @@ int inet_csk_get_port(struct sock *sk, unsigned short snum) - tb->fastuid = uid; - tb->fast_rcv_saddr = sk->sk_rcv_saddr; - tb->fast_ipv6_only = ipv6_only_sock(sk); -+ tb->fast_sk_family = sk->sk_family; - #if IS_ENABLED(CONFIG_IPV6) - tb->fast_v6_rcv_saddr = sk->sk_v6_rcv_saddr; - #endif diff --git a/2-3-net-use-inet6_rcv_saddr-to-compare-sockets.patch b/2-3-net-use-inet6_rcv_saddr-to-compare-sockets.patch deleted file mode 100644 index 3d64361df..000000000 --- a/2-3-net-use-inet6_rcv_saddr-to-compare-sockets.patch +++ /dev/null @@ -1,44 +0,0 @@ -From patchwork Mon Sep 18 16:28:56 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [2/3] net: use inet6_rcv_saddr to compare sockets -X-Patchwork-Submitter: Josef Bacik <josef@toxicpanda.com> -X-Patchwork-Id: 815028 -X-Patchwork-Delegate: davem@davemloft.net -Message-Id: <1505752137-15522-3-git-send-email-jbacik@fb.com> -To: davem@davemloft.net, netdev@vger.kernel.org, - linux-kernel@vger.kernel.org, crobinso@redhat.com, - labbott@redhat.com, kernel-team@fb.com -Cc: Josef Bacik <jbacik@fb.com>, stable@vger.kernel.org -Date: Mon, 18 Sep 2017 12:28:56 -0400 -From: josef@toxicpanda.com -List-Id: <netdev.vger.kernel.org> - -From: Josef Bacik <jbacik@fb.com> - -In ipv6_rcv_saddr_equal() we need to use inet6_rcv_saddr(sk) for the -ipv6 compare with the fast socket information to make sure we're doing -the proper comparisons. - -Cc: stable@vger.kernel.org -Fixes: 637bc8bbe6c0 ("inet: reset tb->fastreuseport when adding a reuseport sk") -Reported-and-tested-by: Cole Robinson <crobinso@redhat.com> -Signed-off-by: Josef Bacik <jbacik@fb.com> ---- - net/ipv4/inet_connection_sock.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c -index f87f4805e244..a1bf30438bc5 100644 ---- a/net/ipv4/inet_connection_sock.c -+++ b/net/ipv4/inet_connection_sock.c -@@ -266,7 +266,7 @@ static inline int sk_reuseport_match(struct inet_bind_bucket *tb, - #if IS_ENABLED(CONFIG_IPV6) - if (tb->fast_sk_family == AF_INET6) - return ipv6_rcv_saddr_equal(&tb->fast_v6_rcv_saddr, -- &sk->sk_v6_rcv_saddr, -+ inet6_rcv_saddr(sk), - tb->fast_rcv_saddr, - sk->sk_rcv_saddr, - tb->fast_ipv6_only, diff --git a/3-3-inet-fix-improper-empty-comparison.patch b/3-3-inet-fix-improper-empty-comparison.patch deleted file mode 100644 index 421a235cb..000000000 --- a/3-3-inet-fix-improper-empty-comparison.patch +++ /dev/null @@ -1,53 +0,0 @@ -From patchwork Mon Sep 18 16:28:57 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [3/3] inet: fix improper empty comparison -X-Patchwork-Submitter: Josef Bacik <josef@toxicpanda.com> -X-Patchwork-Id: 815029 -X-Patchwork-Delegate: davem@davemloft.net -Message-Id: <1505752137-15522-4-git-send-email-jbacik@fb.com> -To: davem@davemloft.net, netdev@vger.kernel.org, - linux-kernel@vger.kernel.org, crobinso@redhat.com, - labbott@redhat.com, kernel-team@fb.com -Cc: Josef Bacik <jbacik@fb.com>, stable@vger.kernel.org -Date: Mon, 18 Sep 2017 12:28:57 -0400 -From: josef@toxicpanda.com -List-Id: <netdev.vger.kernel.org> - -From: Josef Bacik <jbacik@fb.com> - -When doing my reuseport rework I screwed up and changed a - -if (hlist_empty(&tb->owners)) - -to - -if (!hlist_empty(&tb->owners)) - -This is obviously bad as all of the reuseport/reuse logic was reversed, -which caused weird problems like allowing an ipv4 bind conflict if we -opened an ipv4 only socket on a port followed by an ipv6 only socket on -the same port. - -Cc: stable@vger.kernel.org -Fixes: b9470c27607b ("inet: kill smallest_size and smallest_port") -Reported-by: Cole Robinson <crobinso@redhat.com> -Signed-off-by: Josef Bacik <jbacik@fb.com> ---- - net/ipv4/inet_connection_sock.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c -index a1bf30438bc5..c039c937ba90 100644 ---- a/net/ipv4/inet_connection_sock.c -+++ b/net/ipv4/inet_connection_sock.c -@@ -321,7 +321,7 @@ int inet_csk_get_port(struct sock *sk, unsigned short snum) - goto fail_unlock; - } - success: -- if (!hlist_empty(&tb->owners)) { -+ if (hlist_empty(&tb->owners)) { - tb->fastreuse = reuse; - if (sk->sk_reuseport) { - tb->fastreuseport = FASTREUSEPORT_ANY; diff --git a/CVE-2017-16538.patch b/CVE-2017-16538.patch deleted file mode 100644 index e9cf4b054..000000000 --- a/CVE-2017-16538.patch +++ /dev/null @@ -1,166 +0,0 @@ -From patchwork Tue Sep 26 21:10:20 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [1/2] media: dvb-usb-v2: lmedm04: Improve logic checking of warm - start. -From: Malcolm Priestley <tvboxspy@gmail.com> -X-Patchwork-Id: 44566 -Message-Id: <20170926211021.11036-1-tvboxspy@gmail.com> -To: linux-media@vger.kernel.org -Cc: Andrey Konovalov <andreyknvl@google.com>, - Malcolm Priestley <tvboxspy@gmail.com> -Date: Tue, 26 Sep 2017 22:10:20 +0100 - -Warm start has no check as whether a genuine device has -connected and proceeds to next execution path. - -Check device should read 0x47 at offset of 2 on USB descriptor read -and it is the amount requested of 6 bytes. - -Fix for -kasan: CONFIG_KASAN_INLINE enabled -kasan: GPF could be caused by NULL-ptr deref or user memory access as - -Reported-by: Andrey Konovalov <andreyknvl@google.com> -Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com> ---- - drivers/media/usb/dvb-usb-v2/lmedm04.c | 26 ++++++++++++++++++-------- - 1 file changed, 18 insertions(+), 8 deletions(-) - -diff --git a/drivers/media/usb/dvb-usb-v2/lmedm04.c b/drivers/media/usb/dvb-usb-v2/lmedm04.c -index 5e320fa4a795..992f2011a6ba 100644 ---- a/drivers/media/usb/dvb-usb-v2/lmedm04.c -+++ b/drivers/media/usb/dvb-usb-v2/lmedm04.c -@@ -494,18 +494,23 @@ static int lme2510_pid_filter(struct dvb_usb_adapter *adap, int index, u16 pid, - - static int lme2510_return_status(struct dvb_usb_device *d) - { -- int ret = 0; -+ int ret; - u8 *data; - -- data = kzalloc(10, GFP_KERNEL); -+ data = kzalloc(6, GFP_KERNEL); - if (!data) - return -ENOMEM; - -- ret |= usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), -- 0x06, 0x80, 0x0302, 0x00, data, 0x0006, 200); -- info("Firmware Status: %x (%x)", ret , data[2]); -+ ret = usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), -+ 0x06, 0x80, 0x0302, 0x00, -+ data, 0x6, 200); -+ if (ret != 6) -+ ret = -EINVAL; -+ else -+ ret = data[2]; -+ -+ info("Firmware Status: %6ph", data); - -- ret = (ret < 0) ? -ENODEV : data[2]; - kfree(data); - return ret; - } -@@ -1189,6 +1194,7 @@ static int lme2510_get_adapter_count(struct dvb_usb_device *d) - static int lme2510_identify_state(struct dvb_usb_device *d, const char **name) - { - struct lme2510_state *st = d->priv; -+ int status; - - usb_reset_configuration(d->udev); - -@@ -1197,12 +1203,16 @@ static int lme2510_identify_state(struct dvb_usb_device *d, const char **name) - - st->dvb_usb_lme2510_firmware = dvb_usb_lme2510_firmware; - -- if (lme2510_return_status(d) == 0x44) { -+ status = lme2510_return_status(d); -+ if (status == 0x44) { - *name = lme_firmware_switch(d, 0); - return COLD; - } - -- return 0; -+ if (status != 0x47) -+ return -EINVAL; -+ -+ return WARM; - } - - static int lme2510_get_stream_config(struct dvb_frontend *fe, u8 *ts_type, -From patchwork Tue Sep 26 21:10:21 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [2/2] media: dvb-usb-v2: lmedm04: move ts2020 attach to - dm04_lme2510_tuner -From: Malcolm Priestley <tvboxspy@gmail.com> -X-Patchwork-Id: 44567 -Message-Id: <20170926211021.11036-2-tvboxspy@gmail.com> -To: linux-media@vger.kernel.org -Cc: Andrey Konovalov <andreyknvl@google.com>, - Malcolm Priestley <tvboxspy@gmail.com> -Date: Tue, 26 Sep 2017 22:10:21 +0100 - -When the tuner was split from m88rs2000 the attach function is in wrong -place. - -Move to dm04_lme2510_tuner to trap errors on failure and removing -a call to lme_coldreset. - -Prevents driver starting up without any tuner connected. - -Fixes to trap for ts2020 fail. -LME2510(C): FE Found M88RS2000 -ts2020: probe of 0-0060 failed with error -11 -... -LME2510(C): TUN Found RS2000 tuner -kasan: CONFIG_KASAN_INLINE enabled -kasan: GPF could be caused by NULL-ptr deref or user memory access -general protection fault: 0000 [#1] PREEMPT SMP KASAN - -Reported-by: Andrey Konovalov <andreyknvl@google.com> -Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com> -Tested-by: Andrey Konovalov <andreyknvl@google.com> ---- - drivers/media/usb/dvb-usb-v2/lmedm04.c | 13 ++++++------- - 1 file changed, 6 insertions(+), 7 deletions(-) - -diff --git a/drivers/media/usb/dvb-usb-v2/lmedm04.c b/drivers/media/usb/dvb-usb-v2/lmedm04.c -index 992f2011a6ba..be26c029546b 100644 ---- a/drivers/media/usb/dvb-usb-v2/lmedm04.c -+++ b/drivers/media/usb/dvb-usb-v2/lmedm04.c -@@ -1076,8 +1076,6 @@ static int dm04_lme2510_frontend_attach(struct dvb_usb_adapter *adap) - - if (adap->fe[0]) { - info("FE Found M88RS2000"); -- dvb_attach(ts2020_attach, adap->fe[0], &ts2020_config, -- &d->i2c_adap); - st->i2c_tuner_gate_w = 5; - st->i2c_tuner_gate_r = 5; - st->i2c_tuner_addr = 0x60; -@@ -1143,17 +1141,18 @@ static int dm04_lme2510_tuner(struct dvb_usb_adapter *adap) - ret = st->tuner_config; - break; - case TUNER_RS2000: -- ret = st->tuner_config; -+ if (dvb_attach(ts2020_attach, adap->fe[0], -+ &ts2020_config, &d->i2c_adap)) -+ ret = st->tuner_config; - break; - default: - break; - } - -- if (ret) -+ if (ret) { - info("TUN Found %s tuner", tun_msg[ret]); -- else { -- info("TUN No tuner found --- resetting device"); -- lme_coldreset(d); -+ } else { -+ info("TUN No tuner found"); - return -ENODEV; - } - diff --git a/CVE-2017-7477.patch b/CVE-2017-7477.patch deleted file mode 100644 index 6405614cc..000000000 --- a/CVE-2017-7477.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 4d6fa57b4dab0d77f4d8e9d9c73d1e63f6fe8fee Mon Sep 17 00:00:00 2001 -From: "Jason A. Donenfeld" <Jason@zx2c4.com> -Date: Fri, 21 Apr 2017 23:14:48 +0200 -Subject: macsec: avoid heap overflow in skb_to_sgvec - -While this may appear as a humdrum one line change, it's actually quite -important. An sk_buff stores data in three places: - -1. A linear chunk of allocated memory in skb->data. This is the easiest - one to work with, but it precludes using scatterdata since the memory - must be linear. -2. The array skb_shinfo(skb)->frags, which is of maximum length - MAX_SKB_FRAGS. This is nice for scattergather, since these fragments - can point to different pages. -3. skb_shinfo(skb)->frag_list, which is a pointer to another sk_buff, - which in turn can have data in either (1) or (2). - -The first two are rather easy to deal with, since they're of a fixed -maximum length, while the third one is not, since there can be -potentially limitless chains of fragments. Fortunately dealing with -frag_list is opt-in for drivers, so drivers don't actually have to deal -with this mess. For whatever reason, macsec decided it wanted pain, and -so it explicitly specified NETIF_F_FRAGLIST. - -Because dealing with (1), (2), and (3) is insane, most users of sk_buff -doing any sort of crypto or paging operation calls a convenient function -called skb_to_sgvec (which happens to be recursive if (3) is in use!). -This takes a sk_buff as input, and writes into its output pointer an -array of scattergather list items. Sometimes people like to declare a -fixed size scattergather list on the stack; othertimes people like to -allocate a fixed size scattergather list on the heap. However, if you're -doing it in a fixed-size fashion, you really shouldn't be using -NETIF_F_FRAGLIST too (unless you're also ensuring the sk_buff and its -frag_list children arent't shared and then you check the number of -fragments in total required.) - -Macsec specifically does this: - - size += sizeof(struct scatterlist) * (MAX_SKB_FRAGS + 1); - tmp = kmalloc(size, GFP_ATOMIC); - *sg = (struct scatterlist *)(tmp + sg_offset); - ... - sg_init_table(sg, MAX_SKB_FRAGS + 1); - skb_to_sgvec(skb, sg, 0, skb->len); - -Specifying MAX_SKB_FRAGS + 1 is the right answer usually, but not if you're -using NETIF_F_FRAGLIST, in which case the call to skb_to_sgvec will -overflow the heap, and disaster ensues. - -Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> -Cc: stable@vger.kernel.org -Cc: security@kernel.org -Signed-off-by: David S. Miller <davem@davemloft.net> ---- - drivers/net/macsec.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c -index ff0a5ed..dbab05a 100644 ---- a/drivers/net/macsec.c -+++ b/drivers/net/macsec.c -@@ -2716,7 +2716,7 @@ static netdev_tx_t macsec_start_xmit(struct sk_buff *skb, - } - - #define MACSEC_FEATURES \ -- (NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST) -+ (NETIF_F_SG | NETIF_F_HIGHDMA) - static struct lock_class_key macsec_netdev_addr_lock_key; - - static int macsec_dev_init(struct net_device *dev) --- -cgit v1.1 - diff --git a/HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch b/HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch deleted file mode 100644 index d6a8e6a52..000000000 --- a/HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch +++ /dev/null @@ -1,54 +0,0 @@ -From ef14a4bf0910d06c7e202552914028d4956809cb Mon Sep 17 00:00:00 2001 -From: Andrew Duggan <aduggan@synaptics.com> -Date: Tue, 17 Oct 2017 18:37:36 -0700 -Subject: [PATCH] HID: rmi: Check that a device is a RMI device before calling - RMI functions - -The hid-rmi driver may handle non rmi devices on composite USB devices. -Callbacks need to make sure that the current device is a RMI device before -calling RMI specific functions. Most callbacks already have this check, but -this patch adds checks to the remaining callbacks. - -Reported-by: Hendrik Langer <hendrik.langer@gmx.de> -Tested-by: Hendrik Langer <hendrik.langer@gmx.de> -Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> -Signed-off-by: Andrew Duggan <aduggan@synaptics.com> -Signed-off-by: Jiri Kosina <jkosina@suse.cz> ---- - drivers/hid/hid-rmi.c | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) - -diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c -index ef241d66562e..0f43c4292685 100644 ---- a/drivers/hid/hid-rmi.c -+++ b/drivers/hid/hid-rmi.c -@@ -368,6 +368,11 @@ static int rmi_check_sanity(struct hid_device *hdev, u8 *data, int size) - static int rmi_raw_event(struct hid_device *hdev, - struct hid_report *report, u8 *data, int size) - { -+ struct rmi_data *hdata = hid_get_drvdata(hdev); -+ -+ if (!(hdata->device_flags & RMI_DEVICE)) -+ return 0; -+ - size = rmi_check_sanity(hdev, data, size); - if (size < 2) - return 0; -@@ -713,9 +718,11 @@ static void rmi_remove(struct hid_device *hdev) - { - struct rmi_data *hdata = hid_get_drvdata(hdev); - -- clear_bit(RMI_STARTED, &hdata->flags); -- cancel_work_sync(&hdata->reset_work); -- rmi_unregister_transport_device(&hdata->xport); -+ if (hdata->device_flags & RMI_DEVICE) { -+ clear_bit(RMI_STARTED, &hdata->flags); -+ cancel_work_sync(&hdata->reset_work); -+ rmi_unregister_transport_device(&hdata->xport); -+ } - - hid_hw_stop(hdev); - } --- -2.14.3 - diff --git a/Input-synaptics---Disable-kernel-tracking-on-SMBus-devices.patch b/Input-synaptics---Disable-kernel-tracking-on-SMBus-devices.patch deleted file mode 100644 index 81e858fd0..000000000 --- a/Input-synaptics---Disable-kernel-tracking-on-SMBus-devices.patch +++ /dev/null @@ -1,51 +0,0 @@ -From patchwork Thu Sep 28 20:07:19 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 8bit -Subject: Input: synaptics - Disable kernel tracking on SMBus devices -From: Andrew Duggan <aduggan@synaptics.com> -X-Patchwork-Id: 9976729 -Message-Id: <1506629239-5940-1-git-send-email-aduggan@synaptics.com> -To: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org -Cc: Andrew Duggan <aduggan@synaptics.com>, - Dmitry Torokhov <dmitry.torokhov@gmail.com>, - Benjamin Tissoires <benjamin.tissoires@redhat.com>, - =?UTF-8?q?Kamil=20P=C3=A1ral?= <kparal@redhat.com> -Date: Thu, 28 Sep 2017 13:07:19 -0700 - -In certain situations kernel tracking seems to be getting confused -and incorrectly reporting the slot of a contact. On example is when -the user does a three finger click or tap and then places two fingers -on the touchpad in the same area. The kernel tracking code seems to -continue to think that there are three contacts on the touchpad and -incorrectly alternates the slot of one of the contacts. The result that -is the input subsystem reports a stream of button press and release -events as the reported slot changes. - -Kernel tracking was originally enabled to prevent cursor jumps, but it -is unclear how much of an issue kernel jumps actually are. This patch -simply disabled kernel tracking for now. - -Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1482640 - -Signed-off-by: Andrew Duggan <aduggan@synaptics.com> -Tested-by: Kamil Páral <kparal@redhat.com> -Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> ---- - drivers/input/mouse/synaptics.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c -index 5af0b7d..ee5466a 100644 ---- a/drivers/input/mouse/synaptics.c -+++ b/drivers/input/mouse/synaptics.c -@@ -1709,8 +1709,7 @@ static int synaptics_create_intertouch(struct psmouse *psmouse, - .sensor_pdata = { - .sensor_type = rmi_sensor_touchpad, - .axis_align.flip_y = true, -- /* to prevent cursors jumps: */ -- .kernel_tracking = true, -+ .kernel_tracking = false, - .topbuttonpad = topbuttonpad, - }, - .f30_data = { diff --git a/ahci-don-t-ignore-result-code-of-ahci_reset_controller.patch b/ahci-don-t-ignore-result-code-of-ahci_reset_controller.patch deleted file mode 100644 index 771ca7950..000000000 --- a/ahci-don-t-ignore-result-code-of-ahci_reset_controller.patch +++ /dev/null @@ -1,77 +0,0 @@ -From patchwork Mon Oct 2 18:31:24 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: ahci: don't ignore result code of ahci_reset_controller() -X-Patchwork-Submitter: Ard Biesheuvel <ard.biesheuvel@linaro.org> -X-Patchwork-Id: 820637 -X-Patchwork-Delegate: davem@davemloft.net -Message-Id: <20171002183124.17003-1-ard.biesheuvel@linaro.org> -To: linux-ide@vger.kernel.org, tj@kernel.org -Cc: graeme.gregory@linaro.org, leif.lindholm@linaro.org, - daniel.thompson@Linaro.org, Ard Biesheuvel <ard.biesheuvel@linaro.org> -Date: Mon, 2 Oct 2017 19:31:24 +0100 -From: Ard Biesheuvel <ard.biesheuvel@linaro.org> -List-Id: <linux-ide.vger.kernel.org> - -ahci_pci_reset_controller() calls ahci_reset_controller(), which may -fail, but ignores the result code and always returns success. This -may result in failures like below - - ahci 0000:02:00.0: version 3.0 - ahci 0000:02:00.0: enabling device (0000 -> 0003) - ahci 0000:02:00.0: SSS flag set, parallel bus scan disabled - ahci 0000:02:00.0: controller reset failed (0xffffffff) - ahci 0000:02:00.0: failed to stop engine (-5) - ... repeated many times ... - ahci 0000:02:00.0: failed to stop engine (-5) - Unable to handle kernel paging request at virtual address ffff0000093f9018 - ... - PC is at ahci_stop_engine+0x5c/0xd8 [libahci] - LR is at ahci_deinit_port.constprop.12+0x1c/0xc0 [libahci] - ... - [<ffff000000a17014>] ahci_stop_engine+0x5c/0xd8 [libahci] - [<ffff000000a196b4>] ahci_deinit_port.constprop.12+0x1c/0xc0 [libahci] - [<ffff000000a197d8>] ahci_init_controller+0x80/0x168 [libahci] - [<ffff000000a260f8>] ahci_pci_init_controller+0x60/0x68 [ahci] - [<ffff000000a26f94>] ahci_init_one+0x75c/0xd88 [ahci] - [<ffff000008430324>] local_pci_probe+0x3c/0xb8 - [<ffff000008431728>] pci_device_probe+0x138/0x170 - [<ffff000008585e54>] driver_probe_device+0x2dc/0x458 - [<ffff0000085860e4>] __driver_attach+0x114/0x118 - [<ffff000008583ca8>] bus_for_each_dev+0x60/0xa0 - [<ffff000008585638>] driver_attach+0x20/0x28 - [<ffff0000085850b0>] bus_add_driver+0x1f0/0x2a8 - [<ffff000008586ae0>] driver_register+0x60/0xf8 - [<ffff00000842f9b4>] __pci_register_driver+0x3c/0x48 - [<ffff000000a3001c>] ahci_pci_driver_init+0x1c/0x1000 [ahci] - [<ffff000008083918>] do_one_initcall+0x38/0x120 - -where an obvious hardware level failure results in an unnecessary 15 second -delay and a subsequent crash. - -So record the result code of ahci_reset_controller() and relay it, rather -than ignoring it. - -Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> ---- - drivers/ata/ahci.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c -index 5a5fd0b404eb..649e799df9c1 100644 ---- a/drivers/ata/ahci.c -+++ b/drivers/ata/ahci.c -@@ -621,8 +621,11 @@ static void ahci_pci_save_initial_config(struct pci_dev *pdev, - static int ahci_pci_reset_controller(struct ata_host *host) - { - struct pci_dev *pdev = to_pci_dev(host->dev); -+ int rc; - -- ahci_reset_controller(host); -+ rc = ahci_reset_controller(host); -+ if (rc) -+ return rc; - - if (pdev->vendor == PCI_VENDOR_ID_INTEL) { - struct ahci_host_priv *hpriv = host->private_data; diff --git a/allwinner-net-emac.patch b/allwinner-net-emac.patch index f5d680bde..6d4f11d90 100644 --- a/allwinner-net-emac.patch +++ b/allwinner-net-emac.patch @@ -1,18 +1,575 @@ -From 83e18f0ad4793ea83e03cb8e608bdd2939e76d78 Mon Sep 17 00:00:00 2001 -From: Peter Robinson <pbrobinson@gmail.com> -Date: Mon, 4 Sep 2017 13:04:34 +0100 -Subject: [PATCH 1/4] Revert "net: stmmac: sun8i: Remove the compatibles" +From 1b28a544627ddce094091946f06f99bc41d0098f Mon Sep 17 00:00:00 2001 +From: Corentin LABBE <clabbe.montjoie@gmail.com> +Date: Tue, 24 Oct 2017 19:57:12 +0200 +Subject: [PATCH 01/11] net: stmmac: snps, dwmac-mdio MDIOs are automatically + registered + +stmmac bindings docs said that its mdio node must have +compatible = "snps,dwmac-mdio"; +Since dwmac-sun8i does not have any good reasons to not doing it, all +their MDIO node must have it. + +Since these compatible is automatically registered, dwmac-sun8i compatible +does not need to be in need_mdio_ids. + +Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com> +--- + drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +index 6383695004a5..645ef949705f 100644 +--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c ++++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +@@ -318,10 +318,6 @@ static int stmmac_dt_phy(struct plat_stmmacenet_data *plat, + bool mdio = true; + static const struct of_device_id need_mdio_ids[] = { + { .compatible = "snps,dwc-qos-ethernet-4.10" }, +- { .compatible = "allwinner,sun8i-a83t-emac" }, +- { .compatible = "allwinner,sun8i-h3-emac" }, +- { .compatible = "allwinner,sun8i-v3s-emac" }, +- { .compatible = "allwinner,sun50i-a64-emac" }, + {}, + }; + +-- +2.14.3 -This reverts commit ad4540cc5aa3dccb8e1e12458d57f8c40fae5a1c. +From 9a5b1d9a7614b022512744896d889e76f687e90a Mon Sep 17 00:00:00 2001 +From: Corentin LABBE <clabbe.montjoie@gmail.com> +Date: Tue, 24 Oct 2017 19:57:13 +0200 +Subject: [PATCH 02/11] net: stmmac: dwmac-sun8i: Handle integrated/external + MDIOs + +The Allwinner H3 SoC have two distinct MDIO bus, only one could be +active at the same time. +The selection of the active MDIO bus are done via some bits in the EMAC +register of the system controller. + +This patch implement this MDIO switch via a custom MDIO-mux. + +Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com> +Reviewed-by: Andrew Lunn <andrew@lunn.ch> +--- + drivers/net/ethernet/stmicro/stmmac/Kconfig | 1 + + drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 353 ++++++++++++++-------- + 2 files changed, 224 insertions(+), 130 deletions(-) + +diff --git a/drivers/net/ethernet/stmicro/stmmac/Kconfig b/drivers/net/ethernet/stmicro/stmmac/Kconfig +index 97035766c291..e28c0d2c58e9 100644 +--- a/drivers/net/ethernet/stmicro/stmmac/Kconfig ++++ b/drivers/net/ethernet/stmicro/stmmac/Kconfig +@@ -159,6 +159,7 @@ config DWMAC_SUN8I + tristate "Allwinner sun8i GMAC support" + default ARCH_SUNXI + depends on OF && (ARCH_SUNXI || COMPILE_TEST) ++ select MDIO_BUS_MUX + ---help--- + Support for Allwinner H3 A83T A64 EMAC ethernet controllers. + +diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c +index 39c2122a4f26..b3eb344bb158 100644 +--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c ++++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c +@@ -17,6 +17,7 @@ + #include <linux/clk.h> + #include <linux/io.h> + #include <linux/iopoll.h> ++#include <linux/mdio-mux.h> + #include <linux/mfd/syscon.h> + #include <linux/module.h> + #include <linux/of_device.h> +@@ -41,14 +42,14 @@ + * This value is used for disabling properly EMAC + * and used as a good starting value in case of the + * boot process(uboot) leave some stuff. +- * @internal_phy: Does the MAC embed an internal PHY ++ * @soc_has_internal_phy: Does the MAC embed an internal PHY + * @support_mii: Does the MAC handle MII + * @support_rmii: Does the MAC handle RMII + * @support_rgmii: Does the MAC handle RGMII + */ + struct emac_variant { + u32 default_syscon_value; +- int internal_phy; ++ bool soc_has_internal_phy; + bool support_mii; + bool support_rmii; + bool support_rgmii; +@@ -61,7 +62,8 @@ struct emac_variant { + * @rst_ephy: reference to the optional EPHY reset for the internal PHY + * @variant: reference to the current board variant + * @regmap: regmap for using the syscon +- * @use_internal_phy: Does the current PHY choice imply using the internal PHY ++ * @internal_phy_powered: Does the internal PHY is enabled ++ * @mux_handle: Internal pointer used by mdio-mux lib + */ + struct sunxi_priv_data { + struct clk *tx_clk; +@@ -70,12 +72,13 @@ struct sunxi_priv_data { + struct reset_control *rst_ephy; + const struct emac_variant *variant; + struct regmap *regmap; +- bool use_internal_phy; ++ bool internal_phy_powered; ++ void *mux_handle; + }; + + static const struct emac_variant emac_variant_h3 = { + .default_syscon_value = 0x58000, +- .internal_phy = PHY_INTERFACE_MODE_MII, ++ .soc_has_internal_phy = true, + .support_mii = true, + .support_rmii = true, + .support_rgmii = true +@@ -83,20 +86,20 @@ static const struct emac_variant emac_variant_h3 = { + + static const struct emac_variant emac_variant_v3s = { + .default_syscon_value = 0x38000, +- .internal_phy = PHY_INTERFACE_MODE_MII, ++ .soc_has_internal_phy = true, + .support_mii = true + }; + + static const struct emac_variant emac_variant_a83t = { + .default_syscon_value = 0, +- .internal_phy = 0, ++ .soc_has_internal_phy = false, + .support_mii = true, + .support_rgmii = true + }; + + static const struct emac_variant emac_variant_a64 = { + .default_syscon_value = 0, +- .internal_phy = 0, ++ .soc_has_internal_phy = false, + .support_mii = true, + .support_rmii = true, + .support_rgmii = true +@@ -195,6 +198,9 @@ static const struct emac_variant emac_variant_a64 = { + #define H3_EPHY_LED_POL BIT(17) /* 1: active low, 0: active high */ + #define H3_EPHY_SHUTDOWN BIT(16) /* 1: shutdown, 0: power up */ + #define H3_EPHY_SELECT BIT(15) /* 1: internal PHY, 0: external PHY */ ++#define H3_EPHY_MUX_MASK (H3_EPHY_SHUTDOWN | H3_EPHY_SELECT) ++#define DWMAC_SUN8I_MDIO_MUX_INTERNAL_ID 1 ++#define DWMAC_SUN8I_MDIO_MUX_EXTERNAL_ID 2 + + /* H3/A64 specific bits */ + #define SYSCON_RMII_EN BIT(13) /* 1: enable RMII (overrides EPIT) */ +@@ -634,6 +640,159 @@ static int sun8i_dwmac_reset(struct stmmac_priv *priv) + return 0; + } + ++/* Search in mdio-mux node for internal PHY node and get its clk/reset */ ++static int get_ephy_nodes(struct stmmac_priv *priv) ++{ ++ struct sunxi_priv_data *gmac = priv->plat->bsp_priv; ++ struct device_node *mdio_mux, *iphynode; ++ struct device_node *mdio_internal; ++ int ret; ++ ++ mdio_mux = of_get_child_by_name(priv->device->of_node, "mdio-mux"); ++ if (!mdio_mux) { ++ dev_err(priv->device, "Cannot get mdio-mux node\n"); ++ return -ENODEV; ++ } ++ ++ mdio_internal = of_find_compatible_node(mdio_mux, NULL, ++ "allwinner,sun8i-h3-mdio-internal"); ++ if (!mdio_internal) { ++ dev_err(priv->device, "Cannot get internal_mdio node\n"); ++ return -ENODEV; ++ } ++ ++ /* Seek for internal PHY */ ++ for_each_child_of_node(mdio_internal, iphynode) { ++ gmac->ephy_clk = of_clk_get(iphynode, 0); ++ if (IS_ERR(gmac->ephy_clk)) ++ continue; ++ gmac->rst_ephy = of_reset_control_get_exclusive(iphynode, NULL); ++ if (IS_ERR(gmac->rst_ephy)) { ++ ret = PTR_ERR(gmac->rst_ephy); ++ if (ret == -EPROBE_DEFER) ++ return ret; ++ continue; ++ } ++ dev_info(priv->device, "Found internal PHY node\n"); ++ return 0; ++ } ++ return -ENODEV; ++} ++ ++static int sun8i_dwmac_power_internal_phy(struct stmmac_priv *priv) ++{ ++ struct sunxi_priv_data *gmac = priv->plat->bsp_priv; ++ int ret; ++ ++ if (gmac->internal_phy_powered) { ++ dev_warn(priv->device, "Internal PHY already powered\n"); ++ return 0; ++ } ++ ++ dev_info(priv->device, "Powering internal PHY\n"); ++ ret = clk_prepare_enable(gmac->ephy_clk); ++ if (ret) { ++ dev_err(priv->device, "Cannot enable internal PHY\n"); ++ return ret; ++ } ++ ++ /* Make sure the EPHY is properly reseted, as U-Boot may leave ++ * it at deasserted state, and thus it may fail to reset EMAC. ++ */ ++ reset_control_assert(gmac->rst_ephy); ++ ++ ret = reset_control_deassert(gmac->rst_ephy); ++ if (ret) { ++ dev_err(priv->device, "Cannot deassert internal phy\n"); ++ clk_disable_unprepare(gmac->ephy_clk); ++ return ret; ++ } ++ ++ gmac->internal_phy_powered = true; ++ ++ return 0; ++} ++ ++static int sun8i_dwmac_unpower_internal_phy(struct sunxi_priv_data *gmac) ++{ ++ if (!gmac->internal_phy_powered) ++ return 0; ++ ++ clk_disable_unprepare(gmac->ephy_clk); ++ reset_control_assert(gmac->rst_ephy); ++ gmac->internal_phy_powered = false; ++ return 0; ++} ++ ++/* MDIO multiplexing switch function ++ * This function is called by the mdio-mux layer when it thinks the mdio bus ++ * multiplexer needs to switch. ++ * 'current_child' is the current value of the mux register ++ * 'desired_child' is the value of the 'reg' property of the target child MDIO ++ * node. ++ * The first time this function is called, current_child == -1. ++ * If current_child == desired_child, then the mux is already set to the ++ * correct bus. ++ */ ++static int mdio_mux_syscon_switch_fn(int current_child, int desired_child, ++ void *data) ++{ ++ struct stmmac_priv *priv = data; ++ struct sunxi_priv_data *gmac = priv->plat->bsp_priv; ++ u32 reg, val; ++ int ret = 0; ++ bool need_power_ephy = false; ++ ++ if (current_child ^ desired_child) { ++ regmap_read(gmac->regmap, SYSCON_EMAC_REG, ®); ++ switch (desired_child) { ++ case DWMAC_SUN8I_MDIO_MUX_INTERNAL_ID: ++ dev_info(priv->device, "Switch mux to internal PHY"); ++ val = (reg & ~H3_EPHY_MUX_MASK) | H3_EPHY_SELECT; ++ ++ need_power_ephy = true; ++ break; ++ case DWMAC_SUN8I_MDIO_MUX_EXTERNAL_ID: ++ dev_info(priv->device, "Switch mux to external PHY"); ++ val = (reg & ~H3_EPHY_MUX_MASK) | H3_EPHY_SHUTDOWN; ++ need_power_ephy = false; ++ break; ++ default: ++ dev_err(priv->device, "Invalid child ID %x\n", ++ desired_child); ++ return -EINVAL; ++ } ++ regmap_write(gmac->regmap, SYSCON_EMAC_REG, val); ++ if (need_power_ephy) { ++ ret = sun8i_dwmac_power_internal_phy(priv); ++ if (ret) ++ return ret; ++ } else { ++ sun8i_dwmac_unpower_internal_phy(gmac); ++ } ++ /* After changing syscon value, the MAC need reset or it will ++ * use the last value (and so the last PHY set). ++ */ ++ ret = sun8i_dwmac_reset(priv); ++ } ++ return ret; ++} ++ ++static int sun8i_dwmac_register_mdio_mux(struct stmmac_priv *priv) ++{ ++ int ret; ++ struct device_node *mdio_mux; ++ struct sunxi_priv_data *gmac = priv->plat->bsp_priv; ++ ++ mdio_mux = of_get_child_by_name(priv->device->of_node, "mdio-mux"); ++ if (!mdio_mux) ++ return -ENODEV; ++ ++ ret = mdio_mux_init(priv->device, mdio_mux, mdio_mux_syscon_switch_fn, ++ &gmac->mux_handle, priv, priv->mii); ++ return ret; ++} ++ + static int sun8i_dwmac_set_syscon(struct stmmac_priv *priv) + { + struct sunxi_priv_data *gmac = priv->plat->bsp_priv; +@@ -648,35 +807,25 @@ static int sun8i_dwmac_set_syscon(struct stmmac_priv *priv) + "Current syscon value is not the default %x (expect %x)\n", + val, reg); + +- if (gmac->variant->internal_phy) { +- if (!gmac->use_internal_phy) { +- /* switch to external PHY interface */ +- reg &= ~H3_EPHY_SELECT; +- } else { +- reg |= H3_EPHY_SELECT; +- reg &= ~H3_EPHY_SHUTDOWN; +- dev_dbg(priv->device, "Select internal_phy %x\n", reg); +- +- if (of_property_read_bool(priv->plat->phy_node, +- "allwinner,leds-active-low")) +- reg |= H3_EPHY_LED_POL; +- else +- reg &= ~H3_EPHY_LED_POL; +- +- /* Force EPHY xtal frequency to 24MHz. */ +- reg |= H3_EPHY_CLK_SEL; +- +- ret = of_mdio_parse_addr(priv->device, +- priv->plat->phy_node); +- if (ret < 0) { +- dev_err(priv->device, "Could not parse MDIO addr\n"); +- return ret; +- } +- /* of_mdio_parse_addr returns a valid (0 ~ 31) PHY +- * address. No need to mask it again. +- */ +- reg |= ret << H3_EPHY_ADDR_SHIFT; ++ if (gmac->variant->soc_has_internal_phy) { ++ if (of_property_read_bool(priv->plat->phy_node, ++ "allwinner,leds-active-low")) ++ reg |= H3_EPHY_LED_POL; ++ else ++ reg &= ~H3_EPHY_LED_POL; ++ ++ /* Force EPHY xtal frequency to 24MHz. */ ++ reg |= H3_EPHY_CLK_SEL; ++ ++ ret = of_mdio_parse_addr(priv->device, priv->plat->phy_node); ++ if (ret < 0) { ++ dev_err(priv->device, "Could not parse MDIO addr\n"); ++ return ret; + } ++ /* of_mdio_parse_addr returns a valid (0 ~ 31) PHY ++ * address. No need to mask it again. ++ */ ++ reg |= 1 << H3_EPHY_ADDR_SHIFT; + } + + if (!of_property_read_u32(node, "allwinner,tx-delay-ps", &val)) { +@@ -746,81 +895,21 @@ static void sun8i_dwmac_unset_syscon(struct sunxi_priv_data *gmac) + regmap_write(gmac->regmap, SYSCON_EMAC_REG, reg); + } + +-static int sun8i_dwmac_power_internal_phy(struct stmmac_priv *priv) ++static void sun8i_dwmac_exit(struct platform_device *pdev, void *priv) + { +- struct sunxi_priv_data *gmac = priv->plat->bsp_priv; +- int ret; +- +- if (!gmac->use_internal_phy) +- return 0; +- +- ret = clk_prepare_enable(gmac->ephy_clk); +- if (ret) { +- dev_err(priv->device, "Cannot enable ephy\n"); +- return ret; +- } +- +- /* Make sure the EPHY is properly reseted, as U-Boot may leave +- * it at deasserted state, and thus it may fail to reset EMAC. +- */ +- reset_control_assert(gmac->rst_ephy); ++ struct sunxi_priv_data *gmac = priv; + +- ret = reset_control_deassert(gmac->rst_ephy); +- if (ret) { +- dev_err(priv->device, "Cannot deassert ephy\n"); +- clk_disable_unprepare(gmac->ephy_clk); +- return ret; ++ if (gmac->variant->soc_has_internal_phy) { ++ /* sun8i_dwmac_exit could be called with mdiomux uninit */ ++ if (gmac->mux_handle) ++ mdio_mux_uninit(gmac->mux_handle); ++ if (gmac->internal_phy_powered) ++ sun8i_dwmac_unpower_internal_phy(gmac); + } + +- return 0; +-} +- +-static int sun8i_dwmac_unpower_internal_phy(struct sunxi_priv_data *gmac) +-{ +- if (!gmac->use_internal_phy) +- return 0; +- +- clk_disable_unprepare(gmac->ephy_clk); +- reset_control_assert(gmac->rst_ephy); +- return 0; +-} +- +-/* sun8i_power_phy() - Activate the PHY: +- * In case of error, no need to call sun8i_unpower_phy(), +- * it will be called anyway by sun8i_dwmac_exit() +- */ +-static int sun8i_power_phy(struct stmmac_priv *priv) +-{ +- int ret; +- +- ret = sun8i_dwmac_power_internal_phy(priv); +- if (ret) +- return ret; +- +- ret = sun8i_dwmac_set_syscon(priv); +- if (ret) +- return ret; +- +- /* After changing syscon value, the MAC need reset or it will use +- * the last value (and so the last PHY set. +- */ +- ret = sun8i_dwmac_reset(priv); +- if (ret) +- return ret; +- return 0; +-} +- +-static void sun8i_unpower_phy(struct sunxi_priv_data *gmac) +-{ + sun8i_dwmac_unset_syscon(gmac); +- sun8i_dwmac_unpower_internal_phy(gmac); +-} +- +-static void sun8i_dwmac_exit(struct platform_device *pdev, void *priv) +-{ +- struct sunxi_priv_data *gmac = priv; + +- sun8i_unpower_phy(gmac); ++ reset_control_put(gmac->rst_ephy); + + clk_disable_unprepare(gmac->tx_clk); + +@@ -849,7 +938,7 @@ static struct mac_device_info *sun8i_dwmac_setup(void *ppriv) + if (!mac) + return NULL; + +- ret = sun8i_power_phy(priv); ++ ret = sun8i_dwmac_set_syscon(priv); + if (ret) + return NULL; + +@@ -889,6 +978,8 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) + struct sunxi_priv_data *gmac; + struct device *dev = &pdev->dev; + int ret; ++ struct stmmac_priv *priv; ++ struct net_device *ndev; + + ret = stmmac_get_platform_resources(pdev, &stmmac_res); + if (ret) +@@ -932,29 +1023,6 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) + } + + plat_dat->interface = of_get_phy_mode(dev->of_node); +- if (plat_dat->interface == gmac->variant->internal_phy) { +- dev_info(&pdev->dev, "Will use internal PHY\n"); +- gmac->use_internal_phy = true; +- gmac->ephy_clk = of_clk_get(plat_dat->phy_node, 0); +- if (IS_ERR(gmac->ephy_clk)) { +- ret = PTR_ERR(gmac->ephy_clk); +- dev_err(&pdev->dev, "Cannot get EPHY clock: %d\n", ret); +- return -EINVAL; +- } +- +- gmac->rst_ephy = of_reset_control_get(plat_dat->phy_node, NULL); +- if (IS_ERR(gmac->rst_ephy)) { +- ret = PTR_ERR(gmac->rst_ephy); +- if (ret == -EPROBE_DEFER) +- return ret; +- dev_err(&pdev->dev, "No EPHY reset control found %d\n", +- ret); +- return -EINVAL; +- } +- } else { +- dev_info(&pdev->dev, "Will use external PHY\n"); +- gmac->use_internal_phy = false; +- } + + /* platform data specifying hardware features and callbacks. + * hardware features were copied from Allwinner drivers. +@@ -973,9 +1041,34 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) + + ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res); + if (ret) +- sun8i_dwmac_exit(pdev, plat_dat->bsp_priv); ++ goto dwmac_exit; ++ ++ ndev = dev_get_drvdata(&pdev->dev); ++ priv = netdev_priv(ndev); ++ /* The mux must be registered after parent MDIO ++ * so after stmmac_dvr_probe() ++ */ ++ if (gmac->variant->soc_has_internal_phy) { ++ ret = get_ephy_nodes(priv); ++ if (ret) ++ goto dwmac_exit; ++ ret = sun8i_dwmac_register_mdio_mux(priv); ++ if (ret) { ++ dev_err(&pdev->dev, "Failed to register mux\n"); ++ goto dwmac_mux; ++ } ++ } else { ++ ret = sun8i_dwmac_reset(priv); ++ if (ret) ++ goto dwmac_exit; ++ } + + return ret; ++dwmac_mux: ++ sun8i_dwmac_unset_syscon(gmac); ++dwmac_exit: ++ sun8i_dwmac_exit(pdev, plat_dat->bsp_priv); ++return ret; + } + + static const struct of_device_id sun8i_dwmac_match[] = { +-- +2.14.3 + +From f58f11ebb67468471ed8f232c576f348dd1a32b1 Mon Sep 17 00:00:00 2001 +From: Corentin LABBE <clabbe.montjoie@gmail.com> +Date: Tue, 24 Oct 2017 19:57:14 +0200 +Subject: [PATCH 03/11] net: stmmac: sun8i: Restore the compatibles + +The original dwmac-sun8i DT bindings have some issue on how to handle +integrated PHY and was reverted in last RC of 4.13. +But now we have a solution so we need to get back that was reverted. + +This patch restore compatibles about dwmac-sun8i +This reverts commit ad4540cc5aa3 ("net: stmmac: sun8i: Remove the compatibles") + +Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com> --- drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c -index 39c2122a4f26..fffd6d5fc907 100644 +index b3eb344bb158..e5ff734d4f9b 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c -@@ -979,6 +979,14 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) +@@ -1072,6 +1072,14 @@ return ret; } static const struct of_device_id sun8i_dwmac_match[] = { @@ -28,26 +585,483 @@ index 39c2122a4f26..fffd6d5fc907 100644 }; MODULE_DEVICE_TABLE(of, sun8i_dwmac_match); -- -2.13.5 +2.14.3 + +From 54678636d98cd9625f342c831015e302642bf104 Mon Sep 17 00:00:00 2001 +From: Corentin LABBE <clabbe.montjoie@gmail.com> +Date: Tue, 31 Oct 2017 09:19:08 +0100 +Subject: [PATCH 04/11] dt-bindings: net: Restore sun8i dwmac binding + +The original dwmac-sun8i DT bindings have some issue on how to handle +integrated PHY and was reverted in last RC of 4.13. +But now we have a solution so we need to get back that was reverted. + +This patch restore dt-bindings documentation about dwmac-sun8i +This reverts commit 8aa33ec2f481 ("dt-bindings: net: Revert sun8i dwmac binding") + +Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com> +Acked-by: Rob Herring <robh@kernel.org> +Acked-by: Florian Fainelli <f.fainelli@gmail.com> +--- + .../devicetree/bindings/net/dwmac-sun8i.txt | 84 ++++++++++++++++++++++ + 1 file changed, 84 insertions(+) + create mode 100644 Documentation/devicetree/bindings/net/dwmac-sun8i.txt + +diff --git a/Documentation/devicetree/bindings/net/dwmac-sun8i.txt b/Documentation/devicetree/bindings/net/dwmac-sun8i.txt +new file mode 100644 +index 000000000000..725f3b187886 +--- /dev/null ++++ b/Documentation/devicetree/bindings/net/dwmac-sun8i.txt +@@ -0,0 +1,84 @@ ++* Allwinner sun8i GMAC ethernet controller ++ ++This device is a platform glue layer for stmmac. ++Please see stmmac.txt for the other unchanged properties. ++ ++Required properties: ++- compatible: should be one of the following string: ++ "allwinner,sun8i-a83t-emac" ++ "allwinner,sun8i-h3-emac" ++ "allwinner,sun8i-v3s-emac" ++ "allwinner,sun50i-a64-emac" ++- reg: address and length of the register for the device. ++- interrupts: interrupt for the device ++- interrupt-names: should be "macirq" ++- clocks: A phandle to the reference clock for this device ++- clock-names: should be "stmmaceth" ++- resets: A phandle to the reset control for this device ++- reset-names: should be "stmmaceth" ++- phy-mode: See ethernet.txt ++- phy-handle: See ethernet.txt ++- #address-cells: shall be 1 ++- #size-cells: shall be 0 ++- syscon: A phandle to the syscon of the SoC with one of the following ++ compatible string: ++ - allwinner,sun8i-h3-system-controller ++ - allwinner,sun8i-v3s-system-controller ++ - allwinner,sun50i-a64-system-controller ++ - allwinner,sun8i-a83t-system-controller ++ ++Optional properties: ++- allwinner,tx-delay-ps: TX clock delay chain value in ps. Range value is 0-700. Default is 0) ++- allwinner,rx-delay-ps: RX clock delay chain value in ps. Range value is 0-3100. Default is 0) ++Both delay properties need to be a multiple of 100. They control the delay for ++external PHY. ++ ++Optional properties for the following compatibles: ++ - "allwinner,sun8i-h3-emac", ++ - "allwinner,sun8i-v3s-emac": ++- allwinner,leds-active-low: EPHY LEDs are active low ++ ++Required child node of emac: ++- mdio bus node: should be named mdio ++ ++Required properties of the mdio node: ++- #address-cells: shall be 1 ++- #size-cells: shall be 0 ++ ++The device node referenced by "phy" or "phy-handle" should be a child node ++of the mdio node. See phy.txt for the generic PHY bindings. ++ ++Required properties of the phy node with the following compatibles: ++ - "allwinner,sun8i-h3-emac", ++ - "allwinner,sun8i-v3s-emac": ++- clocks: a phandle to the reference clock for the EPHY ++- resets: a phandle to the reset control for the EPHY ++ ++Example: ++ ++emac: ethernet@1c0b000 { ++ compatible = "allwinner,sun8i-h3-emac"; ++ syscon = <&syscon>; ++ reg = <0x01c0b000 0x104>; ++ interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; ++ interrupt-names = "macirq"; ++ resets = <&ccu RST_BUS_EMAC>; ++ reset-names = "stmmaceth"; ++ clocks = <&ccu CLK_BUS_EMAC>; ++ clock-names = "stmmaceth"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ phy-handle = <&int_mii_phy>; ++ phy-mode = "mii"; ++ allwinner,leds-active-low; ++ mdio: mdio { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ int_mii_phy: ethernet-phy@1 { ++ reg = <1>; ++ clocks = <&ccu CLK_BUS_EPHY>; ++ resets = <&ccu RST_BUS_EPHY>; ++ }; ++ }; ++}; +-- +2.14.3 + +From 227bc8c6bfad58c32c7a6c3bbc13d99eb6d266c0 Mon Sep 17 00:00:00 2001 +From: Corentin LABBE <clabbe.montjoie@gmail.com> +Date: Tue, 31 Oct 2017 09:19:09 +0100 +Subject: [PATCH 05/11] dt-bindings: net: dwmac-sun8i: update documentation + about integrated PHY -From fa4788d88903c1e535d034c3dd3fcd386685a02c Mon Sep 17 00:00:00 2001 +This patch add documentation about the MDIO switch used on sun8i-h3-emac +for integrated PHY. + +Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com> +Acked-by: Florian Fainelli <f.fainelli@gmail.com> +Reviewed-by: Andrew Lunn <andrew@lunn.ch> +--- + .../devicetree/bindings/net/dwmac-sun8i.txt | 147 +++++++++++++++++++-- + 1 file changed, 135 insertions(+), 12 deletions(-) + +diff --git a/Documentation/devicetree/bindings/net/dwmac-sun8i.txt b/Documentation/devicetree/bindings/net/dwmac-sun8i.txt +index 725f3b187886..3d6d5fa0c4d5 100644 +--- a/Documentation/devicetree/bindings/net/dwmac-sun8i.txt ++++ b/Documentation/devicetree/bindings/net/dwmac-sun8i.txt +@@ -4,18 +4,18 @@ This device is a platform glue layer for stmmac. + Please see stmmac.txt for the other unchanged properties. + + Required properties: +-- compatible: should be one of the following string: ++- compatible: must be one of the following string: + "allwinner,sun8i-a83t-emac" + "allwinner,sun8i-h3-emac" + "allwinner,sun8i-v3s-emac" + "allwinner,sun50i-a64-emac" + - reg: address and length of the register for the device. + - interrupts: interrupt for the device +-- interrupt-names: should be "macirq" ++- interrupt-names: must be "macirq" + - clocks: A phandle to the reference clock for this device +-- clock-names: should be "stmmaceth" ++- clock-names: must be "stmmaceth" + - resets: A phandle to the reset control for this device +-- reset-names: should be "stmmaceth" ++- reset-names: must be "stmmaceth" + - phy-mode: See ethernet.txt + - phy-handle: See ethernet.txt + - #address-cells: shall be 1 +@@ -39,23 +39,42 @@ Optional properties for the following compatibles: + - allwinner,leds-active-low: EPHY LEDs are active low + + Required child node of emac: +-- mdio bus node: should be named mdio ++- mdio bus node: should be named mdio with compatible "snps,dwmac-mdio" + + Required properties of the mdio node: + - #address-cells: shall be 1 + - #size-cells: shall be 0 + +-The device node referenced by "phy" or "phy-handle" should be a child node ++The device node referenced by "phy" or "phy-handle" must be a child node + of the mdio node. See phy.txt for the generic PHY bindings. + +-Required properties of the phy node with the following compatibles: ++The following compatibles require that the emac node have a mdio-mux child ++node called "mdio-mux": ++ - "allwinner,sun8i-h3-emac" ++ - "allwinner,sun8i-v3s-emac": ++Required properties for the mdio-mux node: ++ - compatible = "allwinner,sun8i-h3-mdio-mux" ++ - mdio-parent-bus: a phandle to EMAC mdio ++ - one child mdio for the integrated mdio with the compatible ++ "allwinner,sun8i-h3-mdio-internal" ++ - one child mdio for the external mdio if present (V3s have none) ++Required properties for the mdio-mux children node: ++ - reg: 1 for internal MDIO bus, 2 for external MDIO bus ++ ++The following compatibles require a PHY node representing the integrated ++PHY, under the integrated MDIO bus node if an mdio-mux node is used: + - "allwinner,sun8i-h3-emac", + - "allwinner,sun8i-v3s-emac": ++ ++Additional information regarding generic multiplexer properties can be found ++at Documentation/devicetree/bindings/net/mdio-mux.txt ++ ++Required properties of the integrated phy node: + - clocks: a phandle to the reference clock for the EPHY + - resets: a phandle to the reset control for the EPHY ++- Must be a child of the integrated mdio + +-Example: +- ++Example with integrated PHY: + emac: ethernet@1c0b000 { + compatible = "allwinner,sun8i-h3-emac"; + syscon = <&syscon>; +@@ -72,13 +91,117 @@ emac: ethernet@1c0b000 { + phy-handle = <&int_mii_phy>; + phy-mode = "mii"; + allwinner,leds-active-low; ++ ++ mdio: mdio { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ compatible = "snps,dwmac-mdio"; ++ }; ++ ++ mdio-mux { ++ compatible = "mdio-mux", "allwinner,sun8i-h3-mdio-mux"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ mdio-parent-bus = <&mdio>; ++ ++ int_mdio: mdio@1 { ++ compatible = "allwinner,sun8i-h3-mdio-internal"; ++ reg = <1>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ int_mii_phy: ethernet-phy@1 { ++ reg = <1>; ++ clocks = <&ccu CLK_BUS_EPHY>; ++ resets = <&ccu RST_BUS_EPHY>; ++ phy-is-integrated; ++ }; ++ }; ++ ext_mdio: mdio@2 { ++ reg = <2>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ }; ++ }; ++}; ++ ++Example with external PHY: ++emac: ethernet@1c0b000 { ++ compatible = "allwinner,sun8i-h3-emac"; ++ syscon = <&syscon>; ++ reg = <0x01c0b000 0x104>; ++ interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; ++ interrupt-names = "macirq"; ++ resets = <&ccu RST_BUS_EMAC>; ++ reset-names = "stmmaceth"; ++ clocks = <&ccu CLK_BUS_EMAC>; ++ clock-names = "stmmaceth"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ phy-handle = <&ext_rgmii_phy>; ++ phy-mode = "rgmii"; ++ allwinner,leds-active-low; ++ ++ mdio: mdio { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ compatible = "snps,dwmac-mdio"; ++ }; ++ ++ mdio-mux { ++ compatible = "allwinner,sun8i-h3-mdio-mux"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ mdio-parent-bus = <&mdio>; ++ ++ int_mdio: mdio@1 { ++ compatible = "allwinner,sun8i-h3-mdio-internal"; ++ reg = <1>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ int_mii_phy: ethernet-phy@1 { ++ reg = <1>; ++ clocks = <&ccu CLK_BUS_EPHY>; ++ resets = <&ccu RST_BUS_EPHY>; ++ }; ++ }; ++ ext_mdio: mdio@2 { ++ reg = <2>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ext_rgmii_phy: ethernet-phy@1 { ++ reg = <1>; ++ }; ++ }: ++ }; ++}; ++ ++Example with SoC without integrated PHY ++ ++emac: ethernet@1c0b000 { ++ compatible = "allwinner,sun8i-a83t-emac"; ++ syscon = <&syscon>; ++ reg = <0x01c0b000 0x104>; ++ interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; ++ interrupt-names = "macirq"; ++ resets = <&ccu RST_BUS_EMAC>; ++ reset-names = "stmmaceth"; ++ clocks = <&ccu CLK_BUS_EMAC>; ++ clock-names = "stmmaceth"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ phy-handle = <&ext_rgmii_phy>; ++ phy-mode = "rgmii"; ++ + mdio: mdio { ++ compatible = "snps,dwmac-mdio"; + #address-cells = <1>; + #size-cells = <0>; +- int_mii_phy: ethernet-phy@1 { ++ ext_rgmii_phy: ethernet-phy@1 { + reg = <1>; +- clocks = <&ccu CLK_BUS_EPHY>; +- resets = <&ccu RST_BUS_EPHY>; + }; + }; + }; +-- +2.14.3 + +From 1de79efa35a1130c7a085f62b9d9b666d79b9a89 Mon Sep 17 00:00:00 2001 From: Peter Robinson <pbrobinson@gmail.com> -Date: Mon, 4 Sep 2017 13:04:41 +0100 -Subject: [PATCH 2/4] Revert "arm: dts: sunxi: Revert EMAC changes" +Date: Wed, 1 Nov 2017 14:04:20 +0000 +Subject: [PATCH 06/11] arm: dts: sunxi: h3/h5: Restore EMAC changes + +The original dwmac-sun8i DT bindings have some issue on how to handle +integrated PHY and was reverted in last RC of 4.13. +But now we have a solution so we need to get back that was reverted. -This reverts commit fe45174b72aead678da581bab9e9a37c9b26a070. +This patch restore sunxi-h3-h5.dtsi +This reverts partially commit fe45174b72ae ("arm: dts: sunxi: Revert EMAC changes") + +Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com> +Acked-by: Florian Fainelli <f.fainelli@gmail.com> --- - arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts | 9 ++++++++ - arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts | 19 +++++++++++++++++ - arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts | 7 ++++++ - arch/arm/boot/dts/sun8i-h3-orangepi-2.dts | 8 +++++++ - arch/arm/boot/dts/sun8i-h3-orangepi-one.dts | 8 +++++++ + arch/arm/boot/dts/sunxi-h3-h5.dtsi | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +diff --git a/arch/arm/boot/dts/sunxi-h3-h5.dtsi b/arch/arm/boot/dts/sunxi-h3-h5.dtsi +index 11240a8313c2..d38282b9e5d4 100644 +--- a/arch/arm/boot/dts/sunxi-h3-h5.dtsi ++++ b/arch/arm/boot/dts/sunxi-h3-h5.dtsi +@@ -391,6 +391,32 @@ + clocks = <&osc24M>; + }; + ++ emac: ethernet@1c30000 { ++ compatible = "allwinner,sun8i-h3-emac"; ++ syscon = <&syscon>; ++ reg = <0x01c30000 0x10000>; ++ interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; ++ interrupt-names = "macirq"; ++ resets = <&ccu RST_BUS_EMAC>; ++ reset-names = "stmmaceth"; ++ clocks = <&ccu CLK_BUS_EMAC>; ++ clock-names = "stmmaceth"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ status = "disabled"; ++ ++ mdio: mdio { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ int_mii_phy: ethernet-phy@1 { ++ compatible = "ethernet-phy-ieee802.3-c22"; ++ reg = <1>; ++ clocks = <&ccu CLK_BUS_EPHY>; ++ resets = <&ccu RST_BUS_EPHY>; ++ }; ++ }; ++ }; ++ + spi0: spi@01c68000 { + compatible = "allwinner,sun8i-h3-spi"; + reg = <0x01c68000 0x1000>; +-- +2.14.3 + +From 65233cba93184e0efa8d94f907d65af947d197a1 Mon Sep 17 00:00:00 2001 +From: Corentin LABBE <clabbe.montjoie@gmail.com> +Date: Tue, 31 Oct 2017 09:19:11 +0100 +Subject: [PATCH 07/11] ARM: dts: sunxi: h3/h5: represent the mdio switch used + by sun8i-h3-emac + +Since dwmac-sun8i could use either an integrated PHY or an external PHY +(which could be at same MDIO address), we need to represent this selection +by a MDIO switch. + +Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com> +Acked-by: Florian Fainelli <f.fainelli@gmail.com> +Reviewed-by: Andrew Lunn <andrew@lunn.ch> +--- + arch/arm/boot/dts/sunxi-h3-h5.dtsi | 31 +++++++++++++++++++++++++++---- + 1 file changed, 27 insertions(+), 4 deletions(-) + +diff --git a/arch/arm/boot/dts/sunxi-h3-h5.dtsi b/arch/arm/boot/dts/sunxi-h3-h5.dtsi +index d38282b9e5d4..2721b39c1875 100644 +--- a/arch/arm/boot/dts/sunxi-h3-h5.dtsi ++++ b/arch/arm/boot/dts/sunxi-h3-h5.dtsi +@@ -408,11 +408,34 @@ + mdio: mdio { + #address-cells = <1>; + #size-cells = <0>; +- int_mii_phy: ethernet-phy@1 { +- compatible = "ethernet-phy-ieee802.3-c22"; ++ compatible = "snps,dwmac-mdio"; ++ }; ++ ++ mdio-mux { ++ compatible = "allwinner,sun8i-h3-mdio-mux"; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ mdio-parent-bus = <&mdio>; ++ /* Only one MDIO is usable at the time */ ++ internal_mdio: mdio@1 { ++ compatible = "allwinner,sun8i-h3-mdio-internal"; + reg = <1>; +- clocks = <&ccu CLK_BUS_EPHY>; +- resets = <&ccu RST_BUS_EPHY>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ int_mii_phy: ethernet-phy@1 { ++ compatible = "ethernet-phy-ieee802.3-c22"; ++ reg = <1>; ++ clocks = <&ccu CLK_BUS_EPHY>; ++ resets = <&ccu RST_BUS_EPHY>; ++ }; ++ }; ++ ++ external_mdio: mdio@2 { ++ reg = <2>; ++ #address-cells = <1>; ++ #size-cells = <0>; + }; + }; + }; +-- +2.14.3 + +From b705315d36dbe1b31062f30c987b3a502b437c85 Mon Sep 17 00:00:00 2001 +From: Peter Robinson <pbrobinson@gmail.com> +Date: Wed, 1 Nov 2017 14:08:45 +0000 +Subject: [PATCH 08/11] ARM: dts: sunxi: Restore EMAC changes (boards) + +The original dwmac-sun8i DT bindings have some issue on how to handle +integrated PHY and was reverted in last RC of 4.13. +But now we have a solution so we need to get back that was reverted. + +This patch restore all boards DT about dwmac-sun8i +This reverts partially commit fe45174b72ae ("arm: dts: sunxi: Revert EMAC changes") + +Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com> +Acked-by: Florian Fainelli <f.fainelli@gmail.com> +--- + arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts | 9 +++++++++ + arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts | 19 +++++++++++++++++++ + arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts | 19 +++++++++++++++++++ + arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts | 7 +++++++ + arch/arm/boot/dts/sun8i-h3-orangepi-2.dts | 8 ++++++++ + arch/arm/boot/dts/sun8i-h3-orangepi-one.dts | 8 ++++++++ arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts | 5 +++++ - arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts | 8 +++++++ - arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts | 22 +++++++++++++++++++ - arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts | 16 ++++++++++++++ - arch/arm/boot/dts/sunxi-h3-h5.dtsi | 26 +++++++++++++++++++++++ - 10 files changed, 128 insertions(+) + arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts | 8 ++++++++ + arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts | 22 ++++++++++++++++++++++ + arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts | 16 ++++++++++++++++ + 10 files changed, 121 insertions(+) diff --git a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts index b1502df7b509..6713d0f2b3f4 100644 @@ -77,7 +1091,7 @@ index b1502df7b509..6713d0f2b3f4 100644 pinctrl-names = "default"; pinctrl-0 = <&mmc0_pins_a>; diff --git a/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts -index a337af1de322..d756ff825116 100644 +index a337af1de322..3f95d806355b 100644 --- a/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts +++ b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts @@ -52,6 +52,7 @@ @@ -88,7 +1102,7 @@ index a337af1de322..d756ff825116 100644 serial0 = &uart0; serial1 = &uart1; }; -@@ -114,12 +115,30 @@ +@@ -114,6 +115,24 @@ status = "okay"; }; @@ -103,22 +1117,43 @@ index a337af1de322..d756ff825116 100644 + status = "okay"; +}; + ++&external_mdio { ++ ext_rgmii_phy: ethernet-phy@1 { ++ compatible = "ethernet-phy-ieee802.3-c22"; ++ reg = <0>; ++ }; ++}; ++ &ir { pinctrl-names = "default"; pinctrl-0 = <&ir_pins_a>; +diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts +index 8ddd1b2cc097..ef0371811296 100644 +--- a/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts ++++ b/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts +@@ -62,3 +62,22 @@ + &ohci2 { status = "okay"; }; - -+&mdio { ++ ++&emac { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&emac_rgmii_pins>; ++ phy-supply = <®_gmac_3v3>; ++ phy-handle = <&ext_rgmii_phy>; ++ phy-mode = "rgmii"; ++ ++ allwinner,leds-active-low; ++ ++ status = "okay"; ++}; ++ ++&external_mdio { + ext_rgmii_phy: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; -+ reg = <0>; ++ reg = <7>; + }; +}; -+ - &mmc0 { - pinctrl-names = "default"; - pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts index 8d2cc6e9a03f..78f6c24952dd 100644 --- a/arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts @@ -229,7 +1264,7 @@ index 1a044b17d6c6..998b60f8d295 100644 pinctrl-names = "default"; pinctrl-0 = <&ir_pins_a>; diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts -index 828ae7a526d9..331ed683ac62 100644 +index 828ae7a526d9..3002c025e187 100644 --- a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts +++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts @@ -47,6 +47,10 @@ @@ -258,7 +1293,7 @@ index 828ae7a526d9..331ed683ac62 100644 + status = "okay"; +}; + -+&mdio { ++&external_mdio { + ext_rgmii_phy: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0>; @@ -269,7 +1304,7 @@ index 828ae7a526d9..331ed683ac62 100644 pinctrl-names = "default"; pinctrl-0 = <&mmc2_8bit_pins>; diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts -index 97920b12a944..80026f3caafc 100644 +index 97920b12a944..6dbf7b2e0c13 100644 --- a/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts +++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts @@ -61,3 +61,19 @@ @@ -286,71 +1321,39 @@ index 97920b12a944..80026f3caafc 100644 + status = "okay"; +}; + -+&mdio { ++&external_mdio { + ext_rgmii_phy: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <1>; + }; +}; -diff --git a/arch/arm/boot/dts/sunxi-h3-h5.dtsi b/arch/arm/boot/dts/sunxi-h3-h5.dtsi -index 11240a8313c2..d38282b9e5d4 100644 ---- a/arch/arm/boot/dts/sunxi-h3-h5.dtsi -+++ b/arch/arm/boot/dts/sunxi-h3-h5.dtsi -@@ -391,6 +391,32 @@ - clocks = <&osc24M>; - }; - -+ emac: ethernet@1c30000 { -+ compatible = "allwinner,sun8i-h3-emac"; -+ syscon = <&syscon>; -+ reg = <0x01c30000 0x10000>; -+ interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; -+ interrupt-names = "macirq"; -+ resets = <&ccu RST_BUS_EMAC>; -+ reset-names = "stmmaceth"; -+ clocks = <&ccu CLK_BUS_EMAC>; -+ clock-names = "stmmaceth"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ status = "disabled"; -+ -+ mdio: mdio { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ int_mii_phy: ethernet-phy@1 { -+ compatible = "ethernet-phy-ieee802.3-c22"; -+ reg = <1>; -+ clocks = <&ccu CLK_BUS_EPHY>; -+ resets = <&ccu RST_BUS_EPHY>; -+ }; -+ }; -+ }; -+ - spi0: spi@01c68000 { - compatible = "allwinner,sun8i-h3-spi"; - reg = <0x01c68000 0x1000>; -- -2.13.5 +2.14.3 -From 4aba5ca95496899165ee7ceef5d9c60a6e7b15dd Mon Sep 17 00:00:00 2001 -From: Peter Robinson <pbrobinson@gmail.com> -Date: Mon, 4 Sep 2017 13:04:47 +0100 -Subject: [PATCH 3/4] Revert "arm64: dts: allwinner: Revert EMAC changes" +From 516b88bfa40cf54732d2ba5e689fdf592a742ec3 Mon Sep 17 00:00:00 2001 +From: Corentin LABBE <clabbe.montjoie@gmail.com> +Date: Tue, 31 Oct 2017 09:19:13 +0100 +Subject: [PATCH 09/11] arm64: dts: allwinner: A64: Restore EMAC changes + +The original dwmac-sun8i DT bindings have some issue on how to handle +integrated PHY and was reverted in last RC of 4.13. +But now we have a solution so we need to get back that was reverted. -This reverts commit 87e1f5e8bb4bd584de0a8f3b1e42196dca221d02. +This patch restore arm64 DT about dwmac-sun8i for A64 +This reverts commit 87e1f5e8bb4b ("arm64: dts: allwinner: Revert EMAC changes") + +Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com> +Acked-by: Florian Fainelli <f.fainelli@gmail.com> --- .../boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 16 ++++++++++++++++ .../boot/dts/allwinner/sun50i-a64-pine64-plus.dts | 15 +++++++++++++++ arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts | 17 +++++++++++++++++ .../dts/allwinner/sun50i-a64-sopine-baseboard.dts | 16 ++++++++++++++++ arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 20 ++++++++++++++++++++ - .../boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts | 17 +++++++++++++++++ - .../boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts | 17 +++++++++++++++++ - .../boot/dts/allwinner/sun50i-h5-orangepi-prime.dts | 17 +++++++++++++++++ - 8 files changed, 135 insertions(+) + 5 files changed, 84 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts -index 6872135d7f84..ba2fde2909f9 100644 +index d347f52e27f6..45bdbfb96126 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts @@ -51,6 +51,7 @@ @@ -361,8 +1364,8 @@ index 6872135d7f84..ba2fde2909f9 100644 serial0 = &uart0; serial1 = &uart1; }; -@@ -67,6 +68,14 @@ - }; +@@ -69,6 +70,14 @@ + status = "okay"; }; +&emac { @@ -376,7 +1379,7 @@ index 6872135d7f84..ba2fde2909f9 100644 &i2c1 { pinctrl-names = "default"; pinctrl-0 = <&i2c1_pins>; -@@ -77,6 +86,13 @@ +@@ -79,6 +88,13 @@ bias-pull-up; }; @@ -414,7 +1417,7 @@ index f82ccf332c0f..24f1aac366d6 100644 + }; +}; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts -index 7c533b6d4ba9..827168bc22ed 100644 +index d06e34b5d192..806442d3e846 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts @@ -51,6 +51,7 @@ @@ -425,7 +1428,7 @@ index 7c533b6d4ba9..827168bc22ed 100644 serial0 = &uart0; serial1 = &uart1; serial2 = &uart2; -@@ -78,6 +79,15 @@ +@@ -71,6 +72,15 @@ status = "okay"; }; @@ -441,7 +1444,7 @@ index 7c533b6d4ba9..827168bc22ed 100644 &i2c1 { pinctrl-names = "default"; pinctrl-0 = <&i2c1_pins>; -@@ -88,6 +98,13 @@ +@@ -81,6 +91,13 @@ bias-pull-up; }; @@ -456,7 +1459,7 @@ index 7c533b6d4ba9..827168bc22ed 100644 pinctrl-names = "default"; pinctrl-0 = <&mmc0_pins>; 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 d891a1a27f6c..216e3a5dafae 100644 +index 17ccc12b58df..0eb2acedf8c3 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts @@ -53,6 +53,7 @@ @@ -490,7 +1493,7 @@ index d891a1a27f6c..216e3a5dafae 100644 pinctrl-names = "default"; pinctrl-0 = <&mmc2_pins>; diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -index 68aadc9b96dc..bd0f33b77f57 100644 +index 8c8db1b057df..50f17bab0c07 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi @@ -449,6 +449,26 @@ @@ -520,8 +1523,31 @@ index 68aadc9b96dc..bd0f33b77f57 100644 gic: interrupt-controller@1c81000 { compatible = "arm,gic-400"; reg = <0x01c81000 0x1000>, +-- +2.14.3 + +From 070173449eb88e9cf9c91889c77f53616911f4d0 Mon Sep 17 00:00:00 2001 +From: Corentin LABBE <clabbe.montjoie@gmail.com> +Date: Tue, 31 Oct 2017 09:19:14 +0100 +Subject: [PATCH 10/11] arm64: dts: allwinner: H5: Restore EMAC changes + +The original dwmac-sun8i DT bindings have some issue on how to handle +integrated PHY and was reverted in last RC of 4.13. +But now we have a solution so we need to get back that was reverted. + +This patch restore arm64 DT about dwmac-sun8i for H5 +This reverts a part of commit 87e1f5e8bb4b ("arm64: dts: allwinner: Revert EMAC changes") + +Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com> +Acked-by: Florian Fainelli <f.fainelli@gmail.com> +--- + arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts | 17 +++++++++++++++++ + .../arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts | 17 +++++++++++++++++ + .../boot/dts/allwinner/sun50i-h5-orangepi-prime.dts | 17 +++++++++++++++++ + 3 files changed, 51 insertions(+) + diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts -index 1c2387bd5df6..968908761194 100644 +index 1c2387bd5df6..6eb8092d8e57 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts @@ -50,6 +50,7 @@ @@ -545,7 +1571,7 @@ index 1c2387bd5df6..968908761194 100644 + status = "okay"; +}; + -+&mdio { ++&external_mdio { + ext_rgmii_phy: ethernet-phy@7 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <7>; @@ -556,7 +1582,7 @@ index 1c2387bd5df6..968908761194 100644 pinctrl-names = "default"; pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; 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 4f77c8470f6c..a8296feee884 100644 +index 4f77c8470f6c..a0ca925175aa 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts @@ -59,6 +59,7 @@ @@ -567,7 +1593,7 @@ index 4f77c8470f6c..a8296feee884 100644 serial0 = &uart0; }; -@@ -136,12 +137,28 @@ +@@ -136,6 +137,22 @@ status = "okay"; }; @@ -580,24 +1606,18 @@ index 4f77c8470f6c..a8296feee884 100644 + status = "okay"; +}; + - &ir { - pinctrl-names = "default"; - pinctrl-0 = <&ir_pins_a>; - status = "okay"; - }; - -+&mdio { ++&external_mdio { + ext_rgmii_phy: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <1>; + }; +}; + - &mmc0 { + &ir { pinctrl-names = "default"; - pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; + pinctrl-0 = <&ir_pins_a>; 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 6be06873e5af..d906b302cbcd 100644 +index 6be06873e5af..b47790650144 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts @@ -54,6 +54,7 @@ @@ -608,7 +1628,7 @@ index 6be06873e5af..d906b302cbcd 100644 serial0 = &uart0; }; -@@ -143,12 +144,28 @@ +@@ -143,6 +144,22 @@ status = "okay"; }; @@ -621,126 +1641,151 @@ index 6be06873e5af..d906b302cbcd 100644 + status = "okay"; +}; + - &ir { - pinctrl-names = "default"; - pinctrl-0 = <&ir_pins_a>; - status = "okay"; - }; - -+&mdio { ++&external_mdio { + ext_rgmii_phy: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <1>; + }; +}; + - &mmc0 { + &ir { pinctrl-names = "default"; - pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>; + pinctrl-0 = <&ir_pins_a>; -- -2.13.5 +2.14.3 + +From 63118a9f7808a0a67c23e7d276138c996e094eae Mon Sep 17 00:00:00 2001 +From: Corentin LABBE <clabbe.montjoie@gmail.com> +Date: Tue, 31 Oct 2017 09:19:15 +0100 +Subject: [PATCH 11/11] arm64: dts: allwinner: add snps, dwmac-mdio compatible + to emac/mdio + +stmmac bindings docs said that its mdio node must have +compatible = "snps,dwmac-mdio"; +Since dwmac-sun8i does not have any good reasons to not doing it, all +their MDIO node must have it. -From 11190f020b948ccdf15061b6df8cc2836a2afcb1 Mon Sep 17 00:00:00 2001 +Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com> +Acked-by: Florian Fainelli <f.fainelli@gmail.com> +--- + arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +index 50f17bab0c07..8fd75c95937a 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi ++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +@@ -464,6 +464,7 @@ + #size-cells = <0>; + + mdio: mdio { ++ compatible = "snps,dwmac-mdio"; + #address-cells = <1>; + #size-cells = <0>; + }; +-- +2.14.3 + +From patchwork Fri Nov 10 09:26:54 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: arm64: allwinner: a64: add Ethernet PHY regulator for several boards +From: Icenowy Zheng <icenowy@aosc.io> +X-Patchwork-Id: 10052659 +Message-Id: <20171110092654.10746-1-icenowy@aosc.io> +To: Maxime Ripard <maxime.ripard@free-electrons.com>, + Chen-Yu Tsai <wens@csie.org> +Cc: linux-sunxi@googlegroups.com, linux-kernel@vger.kernel.org, + linux-arm-kernel@lists.infradead.org, Icenowy Zheng <icenowy@aosc.io> +Date: Fri, 10 Nov 2017 17:26:54 +0800 + +On several A64 boards the Ethernet PHY is powered by the DC1SW regulator +on the AXP803 PMIC. + +Add phy-handle property to these boards' emac node. + +Signed-off-by: Icenowy Zheng <icenowy@aosc.io> +Acked-by: Corentin LABBE <clabbe.montjoie@gmail.com> +Tested-by: Corentin LABBE <clabbe.montjoie@gmail.com> +--- + arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 1 + + arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts | 1 + + arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts | 1 + + 3 files changed, 3 insertions(+) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts +index 45bdbfb96126..4a8d3f83a36e 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts +@@ -75,6 +75,7 @@ + pinctrl-0 = <&rgmii_pins>; + phy-mode = "rgmii"; + phy-handle = <&ext_rgmii_phy>; ++ phy-supply = <®_dc1sw>; + status = "okay"; + }; + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts +index 806442d3e846..604cdaedac38 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts +@@ -77,6 +77,7 @@ + pinctrl-0 = <&rmii_pins>; + phy-mode = "rmii"; + 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 0eb2acedf8c3..a053a6ac5267 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts +@@ -82,6 +82,7 @@ + pinctrl-0 = <&rgmii_pins>; + phy-mode = "rgmii"; + phy-handle = <&ext_rgmii_phy>; ++ phy-supply = <®_dc1sw>; + status = "okay"; + }; + +From 79e7d6c8bfe67fce8c8fe4953e74ce7f420dd732 Mon Sep 17 00:00:00 2001 From: Peter Robinson <pbrobinson@gmail.com> -Date: Mon, 4 Sep 2017 13:04:55 +0100 -Subject: [PATCH 4/4] Revert "dt-bindings: net: Revert sun8i dwmac binding" +Date: Tue, 21 Nov 2017 15:43:19 +0000 +Subject: [PATCH] ARM: dts: sunxi: sun8i-h3-nanopi-m1-plus: Add missing + regulator + +This patch add the missing regulator for sun8i-h3-nanopi-m1-plus. -This reverts commit 8aa33ec2f4812d1ee96f4c02ba013f5b9c514343. +Fixes: ("ARM: dts: sunxi: Restore EMAC changes (boards)") +Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com> --- - .../devicetree/bindings/net/dwmac-sun8i.txt | 84 ++++++++++++++++++++++ - 1 file changed, 84 insertions(+) - create mode 100644 Documentation/devicetree/bindings/net/dwmac-sun8i.txt + arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts | 11 +++++++++++ + 1 file changed, 11 insertions(+) -diff --git a/Documentation/devicetree/bindings/net/dwmac-sun8i.txt b/Documentation/devicetree/bindings/net/dwmac-sun8i.txt -new file mode 100644 -index 000000000000..725f3b187886 ---- /dev/null -+++ b/Documentation/devicetree/bindings/net/dwmac-sun8i.txt -@@ -0,0 +1,84 @@ -+* Allwinner sun8i GMAC ethernet controller -+ -+This device is a platform glue layer for stmmac. -+Please see stmmac.txt for the other unchanged properties. -+ -+Required properties: -+- compatible: should be one of the following string: -+ "allwinner,sun8i-a83t-emac" -+ "allwinner,sun8i-h3-emac" -+ "allwinner,sun8i-v3s-emac" -+ "allwinner,sun50i-a64-emac" -+- reg: address and length of the register for the device. -+- interrupts: interrupt for the device -+- interrupt-names: should be "macirq" -+- clocks: A phandle to the reference clock for this device -+- clock-names: should be "stmmaceth" -+- resets: A phandle to the reset control for this device -+- reset-names: should be "stmmaceth" -+- phy-mode: See ethernet.txt -+- phy-handle: See ethernet.txt -+- #address-cells: shall be 1 -+- #size-cells: shall be 0 -+- syscon: A phandle to the syscon of the SoC with one of the following -+ compatible string: -+ - allwinner,sun8i-h3-system-controller -+ - allwinner,sun8i-v3s-system-controller -+ - allwinner,sun50i-a64-system-controller -+ - allwinner,sun8i-a83t-system-controller -+ -+Optional properties: -+- allwinner,tx-delay-ps: TX clock delay chain value in ps. Range value is 0-700. Default is 0) -+- allwinner,rx-delay-ps: RX clock delay chain value in ps. Range value is 0-3100. Default is 0) -+Both delay properties need to be a multiple of 100. They control the delay for -+external PHY. -+ -+Optional properties for the following compatibles: -+ - "allwinner,sun8i-h3-emac", -+ - "allwinner,sun8i-v3s-emac": -+- allwinner,leds-active-low: EPHY LEDs are active low -+ -+Required child node of emac: -+- mdio bus node: should be named mdio -+ -+Required properties of the mdio node: -+- #address-cells: shall be 1 -+- #size-cells: shall be 0 -+ -+The device node referenced by "phy" or "phy-handle" should be a child node -+of the mdio node. See phy.txt for the generic PHY bindings. +diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts +index ef0371811296..738ef1d9e844 100644 +--- a/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts ++++ b/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts +@@ -45,6 +45,17 @@ + / { + model = "FriendlyArm NanoPi M1 Plus"; + compatible = "friendlyarm,nanopi-m1-plus", "allwinner,sun8i-h3"; + -+Required properties of the phy node with the following compatibles: -+ - "allwinner,sun8i-h3-emac", -+ - "allwinner,sun8i-v3s-emac": -+- clocks: a phandle to the reference clock for the EPHY -+- resets: a phandle to the reset control for the EPHY ++ reg_gmac_3v3: gmac-3v3 { ++ compatible = "regulator-fixed"; ++ regulator-name = "gmac-3v3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ startup-delay-us = <100000>; ++ enable-active-high; ++ gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; ++ }; + -+Example: -+ -+emac: ethernet@1c0b000 { -+ compatible = "allwinner,sun8i-h3-emac"; -+ syscon = <&syscon>; -+ reg = <0x01c0b000 0x104>; -+ interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; -+ interrupt-names = "macirq"; -+ resets = <&ccu RST_BUS_EMAC>; -+ reset-names = "stmmaceth"; -+ clocks = <&ccu CLK_BUS_EMAC>; -+ clock-names = "stmmaceth"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ phy-handle = <&int_mii_phy>; -+ phy-mode = "mii"; -+ allwinner,leds-active-low; -+ mdio: mdio { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ int_mii_phy: ethernet-phy@1 { -+ reg = <1>; -+ clocks = <&ccu CLK_BUS_EPHY>; -+ resets = <&ccu RST_BUS_EPHY>; -+ }; -+ }; -+}; + }; + + &ehci1 { -- -2.13.5 +2.14.3 diff --git a/arm-of-restrict-dma-configuration.patch b/arm-of-restrict-dma-configuration.patch deleted file mode 100644 index cc9ddd965..000000000 --- a/arm-of-restrict-dma-configuration.patch +++ /dev/null @@ -1,121 +0,0 @@ -From 723288836628bc1c0855f3bb7b64b1803e4b9e4a Mon Sep 17 00:00:00 2001 -From: Robin Murphy <robin.murphy@arm.com> -Date: Thu, 31 Aug 2017 11:32:54 +0100 -Subject: of: restrict DMA configuration - -Moving DMA configuration to happen later at driver probe time had the -unnoticed side-effect that we now perform DMA configuration for *every* -device represented in DT, rather than only those explicitly created by -the of_platform and PCI code. - -As Christoph points out, this is not really the best thing to do. Whilst -there may well be other DMA-capable buses that can benefit from having -their children automatically configured after the bridge has probed, -there are also plenty of others like USB, MDIO, etc. that definitely do -not support DMA and should not be indiscriminately processed. - -The good news is that in most cases the DT "dma-ranges" property serves -as an appropriate indicator - per a strict interpretation of the spec, -anything lacking a "dma-ranges" property should be considered not to -have a mapping of DMA address space from its children to its parent, -thus anything for which of_dma_get_range() does not succeed does not -need DMA configuration. Certain bus types have a general expectation of -DMA capability and carry a well-established precedent that an absent -"dma-ranges" implies the same as the empty property, so we automatically -opt those in to DMA configuration regardless, to avoid regressing most -existing platforms. - -Fixes: 09515ef5ddad ("of/acpi: Configure dma operations at probe time for platform/amba/pci bus devices") -Reported-by: Christoph Hellwig <hch@lst.de> -Signed-off-by: Robin Murphy <robin.murphy@arm.com> -Acked-by: Rob Herring <robh@kernel.org> -Signed-off-by: Christoph Hellwig <hch@lst.de> ---- - drivers/of/device.c | 48 ++++++++++++++++++++++++++++++++---------------- - 1 file changed, 32 insertions(+), 16 deletions(-) - -diff --git a/drivers/of/device.c b/drivers/of/device.c -index e0a28ea..04c4c95 100644 ---- a/drivers/of/device.c -+++ b/drivers/of/device.c -@@ -9,6 +9,9 @@ - #include <linux/module.h> - #include <linux/mod_devicetable.h> - #include <linux/slab.h> -+#include <linux/pci.h> -+#include <linux/platform_device.h> -+#include <linux/amba/bus.h> - - #include <asm/errno.h> - #include "of_private.h" -@@ -84,31 +87,28 @@ int of_device_add(struct platform_device *ofdev) - */ - int of_dma_configure(struct device *dev, struct device_node *np) - { -- u64 dma_addr, paddr, size; -+ u64 dma_addr, paddr, size = 0; - int ret; - bool coherent; - unsigned long offset; - const struct iommu_ops *iommu; - u64 mask; - -- /* -- * Set default coherent_dma_mask to 32 bit. Drivers are expected to -- * setup the correct supported mask. -- */ -- if (!dev->coherent_dma_mask) -- dev->coherent_dma_mask = DMA_BIT_MASK(32); -- -- /* -- * Set it to coherent_dma_mask by default if the architecture -- * code has not set it. -- */ -- if (!dev->dma_mask) -- dev->dma_mask = &dev->coherent_dma_mask; -- - ret = of_dma_get_range(np, &dma_addr, &paddr, &size); - if (ret < 0) { -+ /* -+ * For legacy reasons, we have to assume some devices need -+ * DMA configuration regardless of whether "dma-ranges" is -+ * correctly specified or not. -+ */ -+ if (!dev_is_pci(dev) && -+#ifdef CONFIG_ARM_AMBA -+ dev->bus != &amba_bustype && -+#endif -+ dev->bus != &platform_bus_type) -+ return ret == -ENODEV ? 0 : ret; -+ - dma_addr = offset = 0; -- size = max(dev->coherent_dma_mask, dev->coherent_dma_mask + 1); - } else { - offset = PFN_DOWN(paddr - dma_addr); - -@@ -129,6 +129,22 @@ int of_dma_configure(struct device *dev, struct device_node *np) - dev_dbg(dev, "dma_pfn_offset(%#08lx)\n", offset); - } - -+ /* -+ * Set default coherent_dma_mask to 32 bit. Drivers are expected to -+ * setup the correct supported mask. -+ */ -+ if (!dev->coherent_dma_mask) -+ dev->coherent_dma_mask = DMA_BIT_MASK(32); -+ /* -+ * Set it to coherent_dma_mask by default if the architecture -+ * code has not set it. -+ */ -+ if (!dev->dma_mask) -+ dev->dma_mask = &dev->coherent_dma_mask; -+ -+ if (!size) -+ size = max(dev->coherent_dma_mask, dev->coherent_dma_mask + 1); -+ - dev->dma_pfn_offset = offset; - - /* --- -cgit v1.1 - diff --git a/arm-tegra-fix-gpu-iommu.patch b/arm-tegra-fix-gpu-iommu.patch deleted file mode 100644 index c775c88b4..000000000 --- a/arm-tegra-fix-gpu-iommu.patch +++ /dev/null @@ -1,39 +0,0 @@ -From patchwork Sun Jul 9 16:36:14 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: ARM: tegra: Register host1x node with iommu binding on tegra124 -From: Paul Kocialkowski <contact@paulk.fr> -X-Patchwork-Id: 9831825 -Message-Id: <20170709163614.6746-1-contact@paulk.fr> -To: linux-arm-kernel@lists.infradead.org, linux-tegra@vger.kernel.org, - linux-kernel@vger.kernel.org -Cc: Thierry Reding <thierry.reding@gmail.com>, - Stephen Warren <swarren@wwwdotorg.org>, - Mikko Perttunen <mperttunen@nvidia.com>, - Paul Kocialkowski <contact@paulk.fr>, - Jonathan Hunter <jonathanh@nvidia.com> -Date: Sun, 9 Jul 2017 19:36:14 +0300 - -This registers the host1x node with the SMMU (as HC swgroup) to allow -the host1x code to attach to it. It avoid failing the probe sequence, -which resulted in the tegra drm driver not probing and thus nothing -being displayed on-screen. - -Signed-off-by: Paul Kocialkowski <contact@paulk.fr> ---- - arch/arm/boot/dts/tegra124.dtsi | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/arch/arm/boot/dts/tegra124.dtsi b/arch/arm/boot/dts/tegra124.dtsi -index 187a36c6d0fc..b3b89befffeb 100644 ---- a/arch/arm/boot/dts/tegra124.dtsi -+++ b/arch/arm/boot/dts/tegra124.dtsi -@@ -85,6 +85,7 @@ - clocks = <&tegra_car TEGRA124_CLK_HOST1X>; - resets = <&tegra_car 28>; - reset-names = "host1x"; -+ iommus = <&mc TEGRA_SWGROUP_HC>; - - #address-cells = <2>; - #size-cells = <2>; diff --git a/arm64-Revert-allwinner-a64-pine64-Use-dcdc1-regulato.patch b/arm64-Revert-allwinner-a64-pine64-Use-dcdc1-regulato.patch new file mode 100644 index 000000000..33f9271b7 --- /dev/null +++ b/arm64-Revert-allwinner-a64-pine64-Use-dcdc1-regulato.patch @@ -0,0 +1,41 @@ +From 90e388ca5d8bbee022f9ed5fc24137b31579fa6e Mon Sep 17 00:00:00 2001 +From: Peter Robinson <pbrobinson@gmail.com> +Date: Wed, 22 Nov 2017 15:52:36 +0000 +Subject: [PATCH] Revert "arm64: allwinner: a64: pine64: Use dcdc1 regulator + for mmc0" + +This reverts commit 3f241bfa60bdc9c4fde63fa6664a8ce00fd668c6. +--- + arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts +index d06e34b5d192..caf8b6fbe5e3 100644 +--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts ++++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts +@@ -61,6 +61,13 @@ + chosen { + stdout-path = "serial0:115200n8"; + }; ++ ++ reg_vcc3v3: vcc3v3 { ++ compatible = "regulator-fixed"; ++ regulator-name = "vcc3v3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ }; + }; + + &ehci0 { +@@ -84,7 +91,7 @@ + &mmc0 { + pinctrl-names = "default"; + pinctrl-0 = <&mmc0_pins>; +- vmmc-supply = <®_dcdc1>; ++ vmmc-supply = <®_vcc3v3>; + cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; + cd-inverted; + disable-wp; +-- +2.14.3 + diff --git a/arm64-aw64-devices.patch b/arm64-aw64-devices.patch deleted file mode 100644 index 94b1b2b04..000000000 --- a/arm64-aw64-devices.patch +++ /dev/null @@ -1,712 +0,0 @@ -From 4c0a84757b5a0365a5dde82e732972eda80a32b1 Mon Sep 17 00:00:00 2001 -From: Icenowy Zheng <icenowy@aosc.io> -Date: Thu, 18 May 2017 15:16:51 +0800 -Subject: arm64: allwinner: a64: add DTSI file for AXP803 PMIC - -As nearly all A64 boards are using AXP803 PMIC, add a DTSI file for it, -like the old DTSI files for AXP20x/22x, for the common parts of the -PMIC. - -Signed-off-by: Icenowy Zheng <icenowy@aosc.io> -Acked-by: Mark Brown <broonie@kernel.org> -Signed-off-by: Chen-Yu Tsai <wens@csie.org> ---- - arch/arm64/boot/dts/allwinner/axp803.dtsi | 150 ++++++++++++++++++++++++++++++ - 1 file changed, 150 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/axp803.dtsi - -diff --git a/arch/arm64/boot/dts/allwinner/axp803.dtsi b/arch/arm64/boot/dts/allwinner/axp803.dtsi -new file mode 100644 -index 0000000..ff8af52 ---- /dev/null -+++ b/arch/arm64/boot/dts/allwinner/axp803.dtsi -@@ -0,0 +1,150 @@ -+/* -+ * Copyright 2017 Icenowy Zheng <icenowy@aosc.xyz> -+ * -+ * This file is dual-licensed: you can use it either under the terms -+ * of the GPL or the X11 license, at your option. Note that this dual -+ * licensing only applies to this file, and not this project as a -+ * whole. -+ * -+ * a) This file is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of the -+ * License, or (at your option) any later version. -+ * -+ * This file is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * Or, alternatively, -+ * -+ * b) Permission is hereby granted, free of charge, to any person -+ * obtaining a copy of this software and associated documentation -+ * files (the "Software"), to deal in the Software without -+ * restriction, including without limitation the rights to use, -+ * copy, modify, merge, publish, distribute, sublicense, and/or -+ * sell copies of the Software, and to permit persons to whom the -+ * Software is furnished to do so, subject to the following -+ * conditions: -+ * -+ * The above copyright notice and this permission notice shall be -+ * included in all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -+ * OTHER DEALINGS IN THE SOFTWARE. -+ */ -+ -+/* -+ * AXP803 Integrated Power Management Chip -+ * http://files.pine64.org/doc/datasheet/pine64/AXP803_Datasheet_V1.0.pdf -+ */ -+ -+&axp803 { -+ interrupt-controller; -+ #interrupt-cells = <1>; -+ -+ regulators { -+ /* Default work frequency for buck regulators */ -+ x-powers,dcdc-freq = <3000>; -+ -+ reg_aldo1: aldo1 { -+ regulator-name = "aldo1"; -+ }; -+ -+ reg_aldo2: aldo2 { -+ regulator-name = "aldo2"; -+ }; -+ -+ reg_aldo3: aldo3 { -+ regulator-name = "aldo3"; -+ }; -+ -+ reg_dc1sw: dc1sw { -+ regulator-name = "dc1sw"; -+ }; -+ -+ reg_dcdc1: dcdc1 { -+ regulator-name = "dcdc1"; -+ }; -+ -+ reg_dcdc2: dcdc2 { -+ regulator-name = "dcdc2"; -+ }; -+ -+ reg_dcdc3: dcdc3 { -+ regulator-name = "dcdc3"; -+ }; -+ -+ reg_dcdc4: dcdc4 { -+ regulator-name = "dcdc4"; -+ }; -+ -+ reg_dcdc5: dcdc5 { -+ regulator-name = "dcdc5"; -+ }; -+ -+ reg_dcdc6: dcdc6 { -+ regulator-name = "dcdc6"; -+ }; -+ -+ reg_dldo1: dldo1 { -+ regulator-name = "dldo1"; -+ }; -+ -+ reg_dldo2: dldo2 { -+ regulator-name = "dldo2"; -+ }; -+ -+ reg_dldo3: dldo3 { -+ regulator-name = "dldo3"; -+ }; -+ -+ reg_dldo4: dldo4 { -+ regulator-name = "dldo4"; -+ }; -+ -+ reg_eldo1: eldo1 { -+ regulator-name = "eldo1"; -+ }; -+ -+ reg_eldo2: eldo2 { -+ regulator-name = "eldo2"; -+ }; -+ -+ reg_eldo3: eldo3 { -+ regulator-name = "eldo3"; -+ }; -+ -+ reg_fldo1: fldo1 { -+ regulator-name = "fldo1"; -+ }; -+ -+ reg_fldo2: fldo2 { -+ regulator-name = "fldo2"; -+ }; -+ -+ reg_ldo_io0: ldo-io0 { -+ regulator-name = "ldo-io0"; -+ status = "disabled"; -+ }; -+ -+ reg_ldo_io1: ldo-io1 { -+ regulator-name = "ldo-io1"; -+ status = "disabled"; -+ }; -+ -+ reg_rtc_ldo: rtc-ldo { -+ /* RTC_LDO is a fixed, always-on regulator */ -+ regulator-always-on; -+ regulator-min-microvolt = <3000000>; -+ regulator-max-microvolt = <3000000>; -+ regulator-name = "rtc-ldo"; -+ }; -+ }; -+}; --- -cgit v1.1 -From 535ca50858e2d8bf1618ace056cd96f0b3d01133 Mon Sep 17 00:00:00 2001 -From: Icenowy Zheng <icenowy@aosc.io> -Date: Tue, 6 Jun 2017 13:59:32 +0800 -Subject: arm64: allwinner: a64: add NMI (R_INTC) controller on A64 - -Allwinner A64 SoC features a R_INTC controller, which controls the NMI -line, and this interrupt line is usually connected to the AXP PMIC. - -Add support for it. - -Signed-off-by: Icenowy Zheng <icenowy@aosc.io> -[wens@csie.org: Add fallback sun6i-a31-r-intc compatible] -Signed-off-by: Chen-Yu Tsai <wens@csie.org> -Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com> ---- - arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -index 9d00622..78c7c9d 100644 ---- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi -@@ -487,6 +487,15 @@ - <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>; - }; - -+ r_intc: interrupt-controller@1f00c00 { -+ compatible = "allwinner,sun50i-a64-r-intc", -+ "allwinner,sun6i-a31-r-intc"; -+ interrupt-controller; -+ #interrupt-cells = <2>; -+ reg = <0x01f00c00 0x400>; -+ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; -+ }; -+ - r_ccu: clock@1f01400 { - compatible = "allwinner,sun50i-a64-r-ccu"; - reg = <0x01f01400 0x100>; --- -cgit v1.1 -From bf397214530ee5c873dac7b12126b250afd3831f Mon Sep 17 00:00:00 2001 -From: Jagan Teki <jagan@amarulasolutions.com> -Date: Mon, 14 Aug 2017 16:06:53 +0530 -Subject: arm64: allwinner: a64: Add initial NanoPi A64 support - -NanoPi A64 is a new board of high performance with low cost -designed by FriendlyElec., using the Allwinner A64 SOC. - -Nanopi A64 features -- Allwinner A64, 64-bit Quad-core Cortex-A53@648MHz to 1.152GHz, DVFS -- 1GB DDR3 RAM -- MicroSD -- Gigabit Ethernet (RTL8211E) -- Wi-Fi 802.11b/g/n -- IR receiver -- Audio In/Out -- Video In/Out -- Serial Debug Port -- microUSB 5V 2A DC power-supply - -Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> -Signed-off-by: Chen-Yu Tsai <wens@csie.org> ---- - arch/arm64/boot/dts/allwinner/Makefile | 1 + - .../boot/dts/allwinner/sun50i-a64-nanopi-a64.dts | 207 +++++++++++++++++++++ - 2 files changed, 208 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts - -diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile -index 108f12c..c997b5c 100644 ---- a/arch/arm64/boot/dts/allwinner/Makefile -+++ b/arch/arm64/boot/dts/allwinner/Makefile -@@ -1,4 +1,5 @@ - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-bananapi-m64.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts -new file mode 100644 -index 0000000..2beef9e ---- /dev/null -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts -@@ -0,0 +1,207 @@ -+/* -+ * Copyright (C) 2017 Jagan Teki <jteki@openedev.com> -+ * -+ * This file is dual-licensed: you can use it either under the terms -+ * of the GPL or the X11 license, at your option. Note that this dual -+ * licensing only applies to this file, and not this project as a -+ * whole. -+ * -+ * a) This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of the -+ * License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * Or, alternatively, -+ * -+ * b) Permission is hereby granted, free of charge, to any person -+ * obtaining a copy of this software and associated documentation -+ * files (the "Software"), to deal in the Software without -+ * restriction, including without limitation the rights to use, -+ * copy, modify, merge, publish, distribute, sublicense, and/or -+ * sell copies of the Software, and to permit persons to whom the -+ * Software is furnished to do so, subject to the following -+ * conditions: -+ * -+ * The above copyright notice and this permission notice shall be -+ * included in all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -+ * OTHER DEALINGS IN THE SOFTWARE. -+ */ -+ -+/dts-v1/; -+ -+#include "sun50i-a64.dtsi" -+ -+#include <dt-bindings/gpio/gpio.h> -+ -+/ { -+ model = "FriendlyARM NanoPi A64"; -+ compatible = "friendlyarm,nanopi-a64", "allwinner,sun50i-a64"; -+ -+ aliases { -+ serial0 = &uart0; -+ }; -+ -+ chosen { -+ stdout-path = "serial0:115200n8"; -+ }; -+}; -+ -+&ehci0 { -+ status = "okay"; -+}; -+ -+&ehci1 { -+ status = "okay"; -+}; -+ -+/* i2c1 connected with gpio headers like pine64, bananapi */ -+&i2c1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&i2c1_pins>; -+ status = "disabled"; -+}; -+ -+&i2c1_pins { -+ bias-pull-up; -+}; -+ -+&mmc0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&mmc0_pins>; -+ vmmc-supply = <®_dcdc1>; -+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; -+ cd-inverted; -+ disable-wp; -+ bus-width = <4>; -+ status = "okay"; -+}; -+ -+&ohci0 { -+ status = "okay"; -+}; -+ -+&ohci1 { -+ status = "okay"; -+}; -+ -+&r_rsb { -+ status = "okay"; -+ -+ axp803: pmic@3a3 { -+ compatible = "x-powers,axp803"; -+ reg = <0x3a3>; -+ interrupt-parent = <&r_intc>; -+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>; -+ }; -+}; -+ -+#include "axp803.dtsi" -+ -+®_aldo2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-pl"; -+}; -+ -+®_aldo3 { -+ regulator-always-on; -+ regulator-min-microvolt = <3000000>; -+ regulator-max-microvolt = <3000000>; -+ regulator-name = "vcc-pll-avcc"; -+}; -+ -+®_dcdc1 { -+ regulator-always-on; -+ regulator-min-microvolt = <3000000>; -+ regulator-max-microvolt = <3000000>; -+ regulator-name = "vcc-3v"; -+}; -+ -+®_dcdc2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1040000>; -+ regulator-max-microvolt = <1300000>; -+ regulator-name = "vdd-cpux"; -+}; -+ -+/* DCDC3 is polyphased with DCDC2 */ -+ -+®_dcdc5 { -+ regulator-always-on; -+ regulator-min-microvolt = <1500000>; -+ regulator-max-microvolt = <1500000>; -+ regulator-name = "vcc-dram"; -+}; -+ -+®_dcdc6 { -+ regulator-always-on; -+ regulator-min-microvolt = <1100000>; -+ regulator-max-microvolt = <1100000>; -+ regulator-name = "vdd-sys"; -+}; -+ -+®_dldo1 { -+ regulator-always-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-hdmi-dsi"; -+}; -+ -+®_dldo4 { -+ regulator-always-on; -+ regulator-min-microvolt = <3000000>; -+ regulator-max-microvolt = <3000000>; -+ regulator-name = "vcc-pg-wifi-io"; -+}; -+ -+®_eldo1 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "cpvdd"; -+}; -+ -+®_fldo1 { -+ regulator-min-microvolt = <1200000>; -+ regulator-max-microvolt = <1200000>; -+ regulator-name = "vcc-1v2-hsic"; -+}; -+ -+/* -+ * The A64 chip cannot work without this regulator off, although -+ * it seems to be only driving the AR100 core. -+ * Maybe we don't still know well about CPUs domain. -+ */ -+®_fldo2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1100000>; -+ regulator-max-microvolt = <1100000>; -+ regulator-name = "vdd-cpus"; -+}; -+ -+®_rtc_ldo { -+ regulator-name = "vcc-rtc"; -+}; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_pins_a>; -+ status = "okay"; -+}; -+ -+&usbphy { -+ status = "okay"; -+}; --- -cgit v1.1 -From 4969efb28b4301b09aba621f30cf81c582c018a8 Mon Sep 17 00:00:00 2001 -From: Jagan Teki <jagan@amarulasolutions.com> -Date: Mon, 14 Aug 2017 16:16:04 +0530 -Subject: arm64: allwinner: a64: Add A64-OLinuXino initial support - -OLimex A64-OLinuXino is an open-source hardware board -using the Allwinner A64 SOC. - -OLimex A64-OLinuXino has -- A64 Quad-core Cortex-A53 64bit -- 1GB or 2GB RAM DDR3L @ 672Mhz -- microSD slot and 4/8/16GB eMMC -- Debug TTL UART -- HDMI -- LCD -- IR receiver -- 5V DC power supply - -Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> -Signed-off-by: Chen-Yu Tsai <wens@csie.org> ---- - arch/arm64/boot/dts/allwinner/Makefile | 1 + - .../boot/dts/allwinner/sun50i-a64-olinuxino.dts | 199 +++++++++++++++++++++ - 2 files changed, 200 insertions(+) - create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts - -diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile -index c997b5c..19c3fbd 100644 ---- a/arch/arm64/boot/dts/allwinner/Makefile -+++ b/arch/arm64/boot/dts/allwinner/Makefile -@@ -1,5 +1,6 @@ - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-bananapi-m64.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts -new file mode 100644 -index 0000000..338e7861 ---- /dev/null -+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts -@@ -0,0 +1,199 @@ -+/* -+ * Copyright (C) 2017 Jagan Teki <jteki@openedev.com> -+ * -+ * This file is dual-licensed: you can use it either under the terms -+ * of the GPL or the X11 license, at your option. Note that this dual -+ * licensing only applies to this file, and not this project as a -+ * whole. -+ * -+ * a) This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of the -+ * License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * Or, alternatively, -+ * -+ * b) Permission is hereby granted, free of charge, to any person -+ * obtaining a copy of this software and associated documentation -+ * files (the "Software"), to deal in the Software without -+ * restriction, including without limitation the rights to use, -+ * copy, modify, merge, publish, distribute, sublicense, and/or -+ * sell copies of the Software, and to permit persons to whom the -+ * Software is furnished to do so, subject to the following -+ * conditions: -+ * -+ * The above copyright notice and this permission notice shall be -+ * included in all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -+ * OTHER DEALINGS IN THE SOFTWARE. -+ */ -+ -+/dts-v1/; -+ -+#include "sun50i-a64.dtsi" -+ -+#include <dt-bindings/gpio/gpio.h> -+ -+/ { -+ model = "Olimex A64-Olinuxino"; -+ compatible = "olimex,a64-olinuxino", "allwinner,sun50i-a64"; -+ -+ aliases { -+ serial0 = &uart0; -+ }; -+ -+ chosen { -+ stdout-path = "serial0:115200n8"; -+ }; -+}; -+ -+&mmc0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&mmc0_pins>; -+ vmmc-supply = <®_dcdc1>; -+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; -+ cd-inverted; -+ disable-wp; -+ bus-width = <4>; -+ status = "okay"; -+}; -+ -+&r_rsb { -+ status = "okay"; -+ -+ axp803: pmic@3a3 { -+ compatible = "x-powers,axp803"; -+ reg = <0x3a3>; -+ interrupt-parent = <&r_intc>; -+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>; -+ }; -+}; -+ -+#include "axp803.dtsi" -+ -+®_aldo1 { -+ regulator-always-on; -+ regulator-min-microvolt = <2800000>; -+ regulator-max-microvolt = <2800000>; -+ regulator-name = "vcc-pe"; -+}; -+ -+®_aldo2 { -+ regulator-always-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-pl"; -+}; -+ -+®_aldo3 { -+ regulator-always-on; -+ regulator-min-microvolt = <3000000>; -+ regulator-max-microvolt = <3000000>; -+ regulator-name = "vcc-pll-avcc"; -+}; -+ -+®_dcdc1 { -+ regulator-always-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-3v3"; -+}; -+ -+®_dcdc2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1040000>; -+ regulator-max-microvolt = <1300000>; -+ regulator-name = "vdd-cpux"; -+}; -+ -+/* DCDC3 is polyphased with DCDC2 */ -+ -+®_dcdc5 { -+ regulator-always-on; -+ regulator-min-microvolt = <1500000>; -+ regulator-max-microvolt = <1500000>; -+ regulator-name = "vcc-ddr3"; -+}; -+ -+®_dcdc6 { -+ regulator-always-on; -+ regulator-min-microvolt = <1100000>; -+ regulator-max-microvolt = <1100000>; -+ regulator-name = "vdd-sys"; -+}; -+ -+®_dldo1 { -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-hdmi"; -+}; -+ -+®_dldo2 { -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-mipi"; -+}; -+ -+®_dldo3 { -+ regulator-min-microvolt = <2800000>; -+ regulator-max-microvolt = <2800000>; -+ regulator-name = "vcc-avdd-csi"; -+}; -+ -+®_dldo4 { -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc-wifi-io"; -+}; -+ -+®_eldo1 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "cpvdd"; -+}; -+ -+®_eldo2 { -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-name = "vcc-dvdd-csi"; -+}; -+ -+®_fldo1 { -+ regulator-min-microvolt = <1200000>; -+ regulator-max-microvolt = <1200000>; -+ regulator-name = "vcc-1v2-hsic"; -+}; -+ -+/* -+ * The A64 chip cannot work without this regulator off, although -+ * it seems to be only driving the AR100 core. -+ * Maybe we don't still know well about CPUs domain. -+ */ -+®_fldo2 { -+ regulator-always-on; -+ regulator-min-microvolt = <1100000>; -+ regulator-max-microvolt = <1100000>; -+ regulator-name = "vdd-cpus"; -+}; -+ -+®_rtc_ldo { -+ regulator-name = "vcc-rtc"; -+}; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_pins_a>; -+ status = "okay"; -+}; --- -cgit v1.1 diff --git a/arm64-cavium-fixes.patch b/arm64-cavium-fixes.patch deleted file mode 100644 index a898bb779..000000000 --- a/arm64-cavium-fixes.patch +++ /dev/null @@ -1,455 +0,0 @@ -From c03847b4a603846903ee72a5e1baab03e0591423 Mon Sep 17 00:00:00 2001 -From: Ashok Kumar Sekar <asekar@redhat.com> -Date: Fri, 23 Sep 2016 04:16:19 -0700 -Subject: [PATCH 1/8] PCI: Vulcan: AHCI PCI bar fix for Broadcom Vulcan early - silicon - -PCI BAR 5 is not setup correctly for the on-board AHCI -controller on Broadcom's Vulcan processor. Added a quirk to fix BAR 5 -by using BAR 4's resources which are populated correctly but NOT used -by the AHCI controller actually. - -Signed-off-by: Ashok Kumar Sekar <asekar@redhat.com> -Signed-off-by: Jayachandran C <jchandra@broadcom.com> -Signed-off-by: Robert Richter <rrichter@cavium.com> ---- - drivers/pci/quirks.c | 24 ++++++++++++++++++++++++ - 1 file changed, 24 insertions(+) - -diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c -index dc624fb34e72..94b7bdf63b19 100644 ---- a/drivers/pci/quirks.c -+++ b/drivers/pci/quirks.c -@@ -3994,6 +3994,30 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9084, - quirk_bridge_cavm_thrx2_pcie_root); - - /* -+ * PCI BAR 5 is not setup correctly for the on-board AHCI controller -+ * on Broadcom's Vulcan processor. Added a quirk to fix BAR 5 by -+ * using BAR 4's resources which are populated correctly and NOT -+ * actually used by the AHCI controller. -+ */ -+static void quirk_fix_vulcan_ahci_bars(struct pci_dev *dev) -+{ -+ struct resource *r = &dev->resource[4]; -+ -+ if (!(r->flags & IORESOURCE_MEM) || (r->start == 0)) -+ return; -+ -+ /* Set BAR5 resource to BAR4 */ -+ dev->resource[5] = *r; -+ -+ /* Update BAR5 in pci config space */ -+ pci_write_config_dword(dev, PCI_BASE_ADDRESS_5, r->start); -+ -+ /* Clear BAR4's resource */ -+ memset(r, 0, sizeof(*r)); -+} -+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9027, quirk_fix_vulcan_ahci_bars); -+ -+/* - * Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero) - * class code. Fix it. - */ --- -2.11.0 - -From c84892e4b6b671fda7e499a0bb0787bd026de015 Mon Sep 17 00:00:00 2001 -From: Jayachandran C <jnair@caviumnetworks.com> -Date: Fri, 10 Mar 2017 10:04:52 +0000 -Subject: [PATCH 2/8] ahci: thunderx2: Fix for errata that affects stop engine - -Apply workaround for this errata: - Synopsis: Resetting PxCMD.ST may hang the SATA device - - Description: An internal ping-pong buffer state is not reset - correctly for an PxCMD.ST=0 command for a SATA channel. This - may cause the SATA interface to hang when a PxCMD.ST=0 command - is received. - - Workaround: A SATA_BIU_CORE_ENABLE.sw_init_bsi must be asserted - by the driver whenever the PxCMD.ST needs to be de-asserted. This - will reset both the ports. So, it may not always work in a 2 - channel SATA system. - - Resolution: Fix in B0. - -Add the code to ahci_stop_engine() to do this. It is not easy to -stop the other "port" since it is associated with a different AHCI -interface. Please note that with this fix, SATA reset does not -hang any more, but it can cause failures on the other interface -if that is in active use. - -Unfortunately, we have nothing other the the CPU ID to check if the -SATA block has this issue. - -Signed-off-by: Jayachandran C <jnair@caviumnetworks.com> -[added check to restict to pci devs on the soc only] -Signed-off-by: Robert Richter <rrichter@cavium.com> ---- - drivers/ata/libahci.c | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) - -diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c -index 3e286d86ab42..9116bba1b07d 100644 ---- a/drivers/ata/libahci.c -+++ b/drivers/ata/libahci.c -@@ -669,6 +669,23 @@ int ahci_stop_engine(struct ata_port *ap) - tmp &= ~PORT_CMD_START; - writel(tmp, port_mmio + PORT_CMD); - -+#ifdef CONFIG_ARM64 -+ /* Rev Ax of Cavium CN99XX needs a hack for port stop */ -+ if (dev_is_pci(ap->host->dev) && -+ to_pci_dev(ap->host->dev)->vendor == 0x14e4 && -+ to_pci_dev(ap->host->dev)->device == 0x9027 && -+ MIDR_IS_CPU_MODEL_RANGE(read_cpuid_id(), -+ MIDR_CPU_MODEL(ARM_CPU_IMP_BRCM, BRCM_CPU_PART_VULCAN), -+ MIDR_CPU_VAR_REV(0, 0), -+ MIDR_CPU_VAR_REV(0, MIDR_REVISION_MASK))) { -+ tmp = readl(hpriv->mmio + 0x8000); -+ writel(tmp | (1 << 26), hpriv->mmio + 0x8000); -+ udelay(1); -+ writel(tmp & ~(1 << 26), hpriv->mmio + 0x8000); -+ dev_warn(ap->host->dev, "CN99XX stop engine fix applied!\n"); -+ } -+#endif -+ - /* wait for engine to stop. This could be as long as 500 msec */ - tmp = ata_wait_register(ap, port_mmio + PORT_CMD, - PORT_CMD_LIST_ON, PORT_CMD_LIST_ON, 1, 500); --- -2.11.0 - -From 98a39621952f6a13c5198e79f1c080ea6fc1d092 Mon Sep 17 00:00:00 2001 -From: Jayachandran C <jnair@caviumnetworks.com> -Date: Sun, 22 Feb 1998 18:42:42 -0800 -Subject: [PATCH 3/8] ahci: thunderx2: stop engine fix update - -The current reset fix fails during continuous reboot test. The failure -happens when both the on-board SATA slots are used and when one of the -controllers are reset. - -The latest ThunderX2 firmware (3.1) enables hardware error interrupts and -when the reset fix fails, we get a hang with the print: -[ 14.839308] sd 1:0:0:0: [sdb] 468862128 512-byte logical blocks: (240 GB/224 GiB) -[ 14.846796] sd 1:0:0:0: [sdb] 4096-byte physical blocks -[ 14.852036] sd 1:0:0:0: [sdb] Write Protect is off -[ 14.856843] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA -[ 14.866022] ata2.00: Enabling discard_zeroes_data - - *** NBU BAR Error 0x1e25c *** - AddrLo 0x1d80180 AddrHi 0x0 - -To fix this issue, update the SATA reset fix to increase the delays between register writes. - -Signed-off-by: Jayachandran C <jnair@caviumnetworks.com> -Signed-off-by: Robert Richter <rrichter@cavium.com> ---- - drivers/ata/libahci.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c -index 9116bba1b07d..1d3e614bad2b 100644 ---- a/drivers/ata/libahci.c -+++ b/drivers/ata/libahci.c -@@ -679,10 +679,11 @@ int ahci_stop_engine(struct ata_port *ap) - MIDR_CPU_VAR_REV(0, 0), - MIDR_CPU_VAR_REV(0, MIDR_REVISION_MASK))) { - tmp = readl(hpriv->mmio + 0x8000); -+ udelay(100); - writel(tmp | (1 << 26), hpriv->mmio + 0x8000); -- udelay(1); -+ udelay(100); - writel(tmp & ~(1 << 26), hpriv->mmio + 0x8000); -- dev_warn(ap->host->dev, "CN99XX stop engine fix applied!\n"); -+ dev_warn(ap->host->dev, "CN99XX SATA reset workaround applied\n"); - } - #endif - --- -2.11.0 - -From 33c107d2a2b570cd5246262108ad07cc102e9fcd Mon Sep 17 00:00:00 2001 -From: Robert Richter <rrichter@cavium.com> -Date: Thu, 16 Mar 2017 18:01:59 +0100 -Subject: [PATCH 4/8] iommu/arm-smmu, ACPI: Enable Cavium SMMU-v2 - -In next IORT spec release there will be a definition of a Cavium -specific model. Until then, enable the Cavium SMMU using cpu id -registers. All versions of Cavium's SMMUv2 implementation must be -enabled. - -Signed-off-by: Robert Richter <rrichter@cavium.com> ---- - drivers/iommu/arm-smmu.c | 22 +++++++++++++++++++++- - 1 file changed, 21 insertions(+), 1 deletion(-) - -diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c -index d42cad5a3d52..37aee96ccc0e 100644 ---- a/drivers/iommu/arm-smmu.c -+++ b/drivers/iommu/arm-smmu.c -@@ -53,6 +53,8 @@ - - #include <linux/amba/bus.h> - -+#include <asm/cputype.h> -+ - #include "io-pgtable.h" - #include "arm-smmu-regs.h" - -@@ -1871,6 +1873,24 @@ static const struct of_device_id arm_smmu_of_match[] = { - MODULE_DEVICE_TABLE(of, arm_smmu_of_match); - - #ifdef CONFIG_ACPI -+ -+static int acpi_smmu_enable_cavium(struct arm_smmu_device *smmu, int ret) -+{ -+ u32 cpu_model; -+ -+ if (!IS_ENABLED(CONFIG_ARM64)) -+ return ret; -+ -+ cpu_model = read_cpuid_id() & MIDR_CPU_MODEL_MASK; -+ if (cpu_model != MIDR_THUNDERX) -+ return ret; -+ -+ smmu->version = ARM_SMMU_V2; -+ smmu->model = CAVIUM_SMMUV2; -+ -+ return 0; -+} -+ - static int acpi_smmu_get_data(u32 model, struct arm_smmu_device *smmu) - { - int ret = 0; -@@ -1901,7 +1921,7 @@ static int acpi_smmu_get_data(u32 model, struct arm_smmu_device *smmu) - ret = -ENODEV; - } - -- return ret; -+ return acpi_smmu_enable_cavium(smmu, ret); - } - - static int arm_smmu_device_acpi_probe(struct platform_device *pdev, --- -2.11.0 - -From 5523edb06c95d7ac9e81d94366e71d929c08ebd4 Mon Sep 17 00:00:00 2001 -From: Robert Richter <rrichter@cavium.com> -Date: Wed, 12 Apr 2017 15:06:03 +0200 -Subject: [PATCH 5/8] iommu: Print a message with the default domain type - created - -There are several ways the bypass mode can be enabled. With commit - - fccb4e3b8ab0 iommu: Allow default domain type to be set on the kernel command line - -there is the option to switch into bypass mode. And, depending on -devicetree options, bypass mode can be also enabled. This makes it -hard to determine if direct mapping is enabled. Print message with the -default domain type case. - -Signed-off-by: Robert Richter <rrichter@cavium.com> ---- - drivers/iommu/iommu.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c -index 3f6ea160afed..7aaafaca6baf 100644 ---- a/drivers/iommu/iommu.c -+++ b/drivers/iommu/iommu.c -@@ -599,7 +599,9 @@ int iommu_group_add_device(struct iommu_group *group, struct device *dev) - - trace_add_device_to_group(group->id, dev); - -- pr_info("Adding device %s to group %d\n", dev_name(dev), group->id); -+ pr_info("Adding device %s to group %d, default domain type %d\n", -+ dev_name(dev), group->id, -+ group->default_domain ? group->default_domain->type : -1); - - return 0; - --- -2.11.0 - -From 71e0ad5ab606077c24a96d69f4bfed58d7ef16c7 Mon Sep 17 00:00:00 2001 -From: Robert Richter <rrichter@cavium.com> -Date: Thu, 4 May 2017 17:48:48 +0200 -Subject: [PATCH 6/8] iommu, aarch64: Set bypass mode per default - -We see a performance degradation if smmu is enabled in non-bypass mode. -This is a problem in the kernel's implememntation. Until that is solved, -enable smmu in bypass mode per default. - -We have tested that SMMU passthrough mode doesn't effect VFIO on both -CN88xx and CN99xx and haven't found any issues. - -Signed-off-by: Robert Richter <rrichter@cavium.com> ---- - drivers/iommu/iommu.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c -index 7aaafaca6baf..24de0b934221 100644 ---- a/drivers/iommu/iommu.c -+++ b/drivers/iommu/iommu.c -@@ -36,7 +36,12 @@ - - static struct kset *iommu_group_kset; - static DEFINE_IDA(iommu_group_ida); -+ -+#ifdef CONFIG_ARM64 -+static unsigned int iommu_def_domain_type = IOMMU_DOMAIN_IDENTITY; -+#else - static unsigned int iommu_def_domain_type = IOMMU_DOMAIN_DMA; -+#endif - - struct iommu_callback_data { - const struct iommu_ops *ops; --- -2.11.0 - -From 27f103963f926d6a7a8adaad1ee227fd3b51f591 Mon Sep 17 00:00:00 2001 -From: Robert Richter <rrichter@cavium.com> -Date: Wed, 12 Apr 2017 10:31:15 +0200 -Subject: [PATCH 7/8] iommu/arm-smmu, ACPI: Enable Cavium SMMU-v3 - -In next IORT spec release there will be a definition of a Cavium -specific model. Until then, enable the Cavium SMMU using cpu id -registers. Early silicon versions (A1) of Cavium's CN99xx SMMUv3 -implementation must be enabled. For later silicon versions (B0) the -iort change will be in place. - -Signed-off-by: Robert Richter <rrichter@cavium.com> ---- - drivers/acpi/arm64/iort.c | 16 ++++++++++++++-- - drivers/iommu/arm-smmu-v3.c | 19 +++++++++++++++++++ - 2 files changed, 33 insertions(+), 2 deletions(-) - -diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c -index a3215ee671c1..b603af92eec2 100644 ---- a/drivers/acpi/arm64/iort.c -+++ b/drivers/acpi/arm64/iort.c -@@ -26,6 +26,8 @@ - #include <linux/platform_device.h> - #include <linux/slab.h> - -+#include <asm/cputype.h> -+ - #define IORT_TYPE_MASK(type) (1 << (type)) - #define IORT_MSI_TYPE (1 << ACPI_IORT_NODE_ITS_GROUP) - #define IORT_IOMMU_TYPE ((1 << ACPI_IORT_NODE_SMMU) | \ -@@ -824,13 +826,22 @@ static int __init arm_smmu_v3_count_resources(struct acpi_iort_node *node) - return num_res; - } - -+static bool is_cavium_cn99xx_smmu_v3(void) -+{ -+ u32 cpu_model = read_cpuid_id() & MIDR_CPU_MODEL_MASK; -+ -+ return cpu_model == MIDR_CPU_MODEL(ARM_CPU_IMP_BRCM, -+ BRCM_CPU_PART_VULCAN); -+} -+ - static bool arm_smmu_v3_is_combined_irq(struct acpi_iort_smmu_v3 *smmu) - { - /* - * Cavium ThunderX2 implementation doesn't not support unique - * irq line. Use single irq line for all the SMMUv3 interrupts. - */ -- if (smmu->model != ACPI_IORT_SMMU_V3_CAVIUM_CN99XX) -+ if (smmu->model != ACPI_IORT_SMMU_V3_CAVIUM_CN99XX -+ && !is_cavium_cn99xx_smmu_v3()) - return false; - - /* -@@ -848,7 +859,8 @@ static unsigned long arm_smmu_v3_resource_size(struct acpi_iort_smmu_v3 *smmu) - * Override the size, for Cavium ThunderX2 implementation - * which doesn't support the page 1 SMMU register space. - */ -- if (smmu->model == ACPI_IORT_SMMU_V3_CAVIUM_CN99XX) -+ if (smmu->model == ACPI_IORT_SMMU_V3_CAVIUM_CN99XX -+ || is_cavium_cn99xx_smmu_v3()) - return SZ_64K; - - return SZ_128K; -diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c -index 568c400eeaed..d147cb5c7309 100644 ---- a/drivers/iommu/arm-smmu-v3.c -+++ b/drivers/iommu/arm-smmu-v3.c -@@ -39,6 +39,8 @@ - - #include <linux/amba/bus.h> - -+#include <asm/cputype.h> -+ - #include "io-pgtable.h" - - /* MMIO registers */ -@@ -2659,6 +2661,21 @@ static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu) - } - - #ifdef CONFIG_ACPI -+ -+static void acpi_smmu_enable_cavium(struct arm_smmu_device *smmu) -+{ -+ u32 cpu_model; -+ -+ if (!IS_ENABLED(CONFIG_ARM64)) -+ return; -+ -+ cpu_model = read_cpuid_id() & MIDR_CPU_MODEL_MASK; -+ if (cpu_model != MIDR_CPU_MODEL(ARM_CPU_IMP_BRCM, BRCM_CPU_PART_VULCAN)) -+ return; -+ -+ smmu->options |= ARM_SMMU_OPT_PAGE0_REGS_ONLY; -+} -+ - static void acpi_smmu_get_options(u32 model, struct arm_smmu_device *smmu) - { - switch (model) { -@@ -2670,6 +2687,8 @@ static void acpi_smmu_get_options(u32 model, struct arm_smmu_device *smmu) - break; - } - -+ acpi_smmu_enable_cavium(smmu); -+ - dev_notice(smmu->dev, "option mask 0x%x\n", smmu->options); - } - --- -2.11.0 - -From ff677cc625b52b93351dd73d7881251067f0e976 Mon Sep 17 00:00:00 2001 -From: Radha Mohan Chintakuntla <rchintakuntla@cavium.com> -Date: Wed, 20 Aug 2014 15:10:58 -0700 -Subject: [PATCH 8/8] arm64: gicv3: its: Increase FORCE_MAX_ZONEORDER for - Cavium ThunderX - -In case of ARCH_THUNDER, there is a need to allocate the GICv3 ITS table -which is bigger than the allowed max order. So we are forcing it only in -case of 4KB page size. - -Signed-off-by: Radha Mohan Chintakuntla <rchintakuntla@cavium.com> -[rric: use ARM64_4K_PAGES since we have now ARM64_16K_PAGES, change order] -Signed-off-by: Robert Richter <rrichter@cavium.com> ---- - arch/arm64/Kconfig | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index 2c3e2d693d76..023867378f45 100644 ---- a/arch/arm64/Kconfig -+++ b/arch/arm64/Kconfig -@@ -784,6 +784,7 @@ config FORCE_MAX_ZONEORDER - default "14" if (ARM64_64K_PAGES && TRANSPARENT_HUGEPAGE) - default "13" if (ARCH_THUNDER && !ARM64_64K_PAGES) - default "12" if (ARM64_16K_PAGES && TRANSPARENT_HUGEPAGE) -+ default "13" if (ARM64_4K_PAGES && ARCH_THUNDER) - default "11" - help - The kernel memory allocator divides physically contiguous memory --- -2.11.0 - diff --git a/arm64-socionext-96b-enablement.patch b/arm64-socionext-96b-enablement.patch index 8eb99ea42..0a7df3a19 100644 --- a/arm64-socionext-96b-enablement.patch +++ b/arm64-socionext-96b-enablement.patch @@ -108,6 +108,158 @@ index fd4b7f6..14e2419 100644 -- cgit v1.1 +From 33d983b5bb2929ae242606925e708092b1dfdd8f Mon Sep 17 00:00:00 2001 +From: Ard Biesheuvel <ard.biesheuvel@linaro.org> +Date: Sat, 2 Sep 2017 11:01:22 +0100 +Subject: drivers/irqchip: gicv3: add workaround for Synquacer pre-ITS + +In their infinite wisdom, the Socionext engineers have decided +that ITS device IDs should not be hardwired, but it should be +left up to the software to assign them, by allowing it to +redirect MSI doorbell writes via a separate hardware block +that issues the doorbell write with a device ID that is +derived from the memory address. This completely breaks any +kind of isolation, or virtualization in general, for that +matter, but add support for it nonetheless. + +Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> +--- + arch/arm64/Kconfig | 8 +++++++ + drivers/irqchip/irq-gic-v3-its.c | 48 +++++++++++++++++++++++++++++++++++----- + 2 files changed, 51 insertions(+), 5 deletions(-) + +diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig +index 0df64a6..c4361df 100644 +--- a/arch/arm64/Kconfig ++++ b/arch/arm64/Kconfig +@@ -539,6 +539,14 @@ config QCOM_QDF2400_ERRATUM_0065 + + If unsure, say Y. + ++config SOCIONEXT_SYNQUACER_PREITS ++ bool "Socionext Synquacer: Workaround for GICv3 pre-ITS" ++ default y ++ help ++ Socionext Synquacer SoCs implement a separate h/w block to generate ++ MSI doorbell writes with non-zero values for the device ID. ++ ++ If unsure, say Y. + endmenu + + +diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c +index e8d8934..0d372f1 100644 +--- a/drivers/irqchip/irq-gic-v3-its.c ++++ b/drivers/irqchip/irq-gic-v3-its.c +@@ -46,6 +46,7 @@ + #define ITS_FLAGS_CMDQ_NEEDS_FLUSHING (1ULL << 0) + #define ITS_FLAGS_WORKAROUND_CAVIUM_22375 (1ULL << 1) + #define ITS_FLAGS_WORKAROUND_CAVIUM_23144 (1ULL << 2) ++#define ITS_FLAGS_WORKAROUND_SOCIONEXT_PREITS (1ULL << 3) + + #define RDIST_FLAGS_PROPBASE_NEEDS_FLUSHING (1 << 0) + +@@ -99,6 +100,10 @@ struct its_node { + struct its_collection *collections; + struct list_head its_device_list; + u64 flags; ++#ifdef CONFIG_SOCIONEXT_SYNQUACER_PREITS ++ u64 pre_its_base; ++ u64 pre_its_size; ++#endif + u32 ite_size; + u32 device_ids; + int numa_node; +@@ -1102,13 +1107,29 @@ static void its_irq_compose_msi_msg(struct irq_data *d, struct msi_msg *msg) + u64 addr; + + its = its_dev->its; +- addr = its->phys_base + GITS_TRANSLATER; ++ ++#ifdef CONFIG_SOCIONEXT_SYNQUACER_PREITS ++ if (its->flags & ITS_FLAGS_WORKAROUND_SOCIONEXT_PREITS) ++ ++ /* ++ * The Socionext Synquacer SoC has a so-called 'pre-ITS', ++ * which maps 32-bit writes into a separate window of size ++ * '4 << device_id_bits' onto writes to GITS_TRANSLATER with ++ * device ID taken from bits [device_id_bits + 1:2] of the ++ * window offset. ++ */ ++ addr = its->pre_its_base + (its_dev->device_id << 2); ++ else ++#endif ++ addr = its->phys_base + GITS_TRANSLATER; + + msg->address_lo = lower_32_bits(addr); + msg->address_hi = upper_32_bits(addr); + msg->data = its_get_event_id(d); + +- iommu_dma_map_msi_msg(d->irq, msg); ++ if (!IS_ENABLED(CONFIG_SOCIONEXT_SYNQUACER_PREITS) || ++ !(its->flags & ITS_FLAGS_WORKAROUND_SOCIONEXT_PREITS)) ++ iommu_dma_map_msi_msg(d->irq, msg); + } + + static int its_irq_set_irqchip_state(struct irq_data *d, +@@ -1666,6 +1687,11 @@ static int its_alloc_tables(struct its_node *its) + ids = 0x14; /* 20 bits, 8MB */ + } + ++#ifdef CONFIG_SOCIONEXT_SYNQUACER_PREITS ++ if (its->flags & ITS_FLAGS_WORKAROUND_SOCIONEXT_PREITS) ++ ids = ilog2(its->pre_its_size) - 2; ++#endif ++ + its->device_ids = ids; + + for (i = 0; i < GITS_BASER_NR_REGS; i++) { +@@ -2788,11 +2814,21 @@ static const struct gic_quirk its_quirks[] = { + } + }; + +-static void its_enable_quirks(struct its_node *its) ++static void its_enable_quirks(struct its_node *its, ++ struct fwnode_handle *handle) + { + u32 iidr = readl_relaxed(its->base + GITS_IIDR); + + gic_enable_quirks(iidr, its_quirks, its); ++ ++#ifdef CONFIG_SOCIONEXT_SYNQUACER_PREITS ++ if (!fwnode_property_read_u64_array(handle, ++ "socionext,synquacer-pre-its", ++ &its->pre_its_base, 2)) { ++ its->flags |= ITS_FLAGS_WORKAROUND_SOCIONEXT_PREITS; ++ pr_info("ITS: enabling workaround for Socionext Synquacer pre-ITS\n"); ++ } ++#endif + } + + static int its_init_domain(struct fwnode_handle *handle, struct its_node *its) +@@ -2812,7 +2848,9 @@ static int its_init_domain(struct fwnode_handle *handle, struct its_node *its) + + inner_domain->parent = its_parent; + irq_domain_update_bus_token(inner_domain, DOMAIN_BUS_NEXUS); +- inner_domain->flags |= IRQ_DOMAIN_FLAG_MSI_REMAP; ++ ++ if (!(its->flags & ITS_FLAGS_WORKAROUND_SOCIONEXT_PREITS)) ++ inner_domain->flags |= IRQ_DOMAIN_FLAG_MSI_REMAP; + info->ops = &its_msi_domain_ops; + info->data = its; + inner_domain->host_data = info; +@@ -2966,7 +3004,7 @@ static int __init its_probe_one(struct resource *res, + } + its->cmd_write = its->cmd_base; + +- its_enable_quirks(its); ++ its_enable_quirks(its, handle); + + err = its_alloc_tables(its); + if (err) +-- +cgit v1.1 + From 26e7bb47b0fb03a01be1e391a08c7375b45335a2 Mon Sep 17 00:00:00 2001 From: Ard Biesheuvel <ard.biesheuvel@linaro.org> Date: Mon, 21 Aug 2017 20:29:05 +0100 @@ -173,6 +325,7 @@ index c61be97..7d5a23e 100644 --- a/drivers/pci/dwc/Makefile +++ b/drivers/pci/dwc/Makefile @@ -1,5 +1,6 @@ + # SPDX-License-Identifier: GPL-2.0 obj-$(CONFIG_PCIE_DW) += pcie-designware.o obj-$(CONFIG_PCIE_DW_HOST) += pcie-designware-host.o +obj-$(CONFIG_PCIE_DW_HOST_ECAM) += pcie-designware-ecam.o @@ -2896,3 +3049,51 @@ index 0000000..4695969 -- cgit v1.1 +From d2fc584f8237746a84e6ec8690d8884f148fc449 Mon Sep 17 00:00:00 2001 +From: Peter Robinson <pbrobinson@gmail.com> +Date: Tue, 10 Oct 2017 11:35:51 +0100 +Subject: [PATCH] add interrupt.h, sort alphabetically + +Signed-off-by: Peter Robinson <pbrobinson@gmail.com> +--- + drivers/net/ethernet/socionext/netsec/netsec_platform.c | 17 +++++++++-------- + 1 file changed, 9 insertions(+), 8 deletions(-) + +diff --git a/drivers/net/ethernet/socionext/netsec/netsec_platform.c b/drivers/net/ethernet/socionext/netsec/netsec_platform.c +index 624f6a7093f6..79072bae917d 100644 +--- a/drivers/net/ethernet/socionext/netsec/netsec_platform.c ++++ b/drivers/net/ethernet/socionext/netsec/netsec_platform.c +@@ -14,21 +14,22 @@ + */ + + #include <linux/acpi.h> +-#include <linux/device.h> +-#include <linux/ctype.h> +-#include <linux/netdevice.h> +-#include <linux/types.h> + #include <linux/bitops.h> ++#include <linux/clk.h> ++#include <linux/ctype.h> ++#include <linux/device.h> + #include <linux/dma-mapping.h> ++#include <linux/io.h> ++#include <linux/interrupt.h> + #include <linux/module.h> +-#include <linux/sizes.h> +-#include <linux/platform_device.h> +-#include <linux/clk.h> ++#include <linux/netdevice.h> + #include <linux/of.h> + #include <linux/of_device.h> + #include <linux/of_net.h> +-#include <linux/io.h> ++#include <linux/platform_device.h> + #include <linux/pm_runtime.h> ++#include <linux/sizes.h> ++#include <linux/types.h> + + #include "netsec.h" + +-- +2.14.2 + diff --git a/arm64-xgene-acpi-fix.patch b/arm64-xgene-acpi-fix.patch deleted file mode 100644 index e0df833c0..000000000 --- a/arm64-xgene-acpi-fix.patch +++ /dev/null @@ -1,38 +0,0 @@ -From bdb9458a3382ba745a66be5526d3899103c76eda Mon Sep 17 00:00:00 2001 -From: Loc Ho <lho@apm.com> -Date: Fri, 21 Jul 2017 11:24:37 -0700 -Subject: ACPI: APEI: Enable APEI multiple GHES source to share a single - external IRQ - -X-Gene platforms describe multiple GHES error sources with the same -hardware error notification type (external interrupt) and interrupt -number. - -Change the GHES interrupt request to support sharing the same IRQ. - -This change includs contributions from Tuan Phan <tphan@apm.com>. - -Signed-off-by: Loc Ho <lho@apm.com> -Acked-by: Borislav Petkov <bp@suse.de> -Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> ---- - drivers/acpi/apei/ghes.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c -index d661d45..eed09fc 100644 ---- a/drivers/acpi/apei/ghes.c -+++ b/drivers/acpi/apei/ghes.c -@@ -1157,7 +1157,8 @@ static int ghes_probe(struct platform_device *ghes_dev) - generic->header.source_id); - goto err_edac_unreg; - } -- rc = request_irq(ghes->irq, ghes_irq_func, 0, "GHES IRQ", ghes); -+ rc = request_irq(ghes->irq, ghes_irq_func, IRQF_SHARED, -+ "GHES IRQ", ghes); - if (rc) { - pr_err(GHES_PFX "Failed to register IRQ for generic hardware error source: %d\n", - generic->header.source_id); --- -cgit v1.1 - diff --git a/baseconfig/CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ b/baseconfig/CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ new file mode 100644 index 000000000..40a287f0f --- /dev/null +++ b/baseconfig/CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ @@ -0,0 +1 @@ +CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y diff --git a/baseconfig/CONFIG_ALTERA_MSGDMA b/baseconfig/CONFIG_ALTERA_MSGDMA new file mode 100644 index 000000000..7a1edd837 --- /dev/null +++ b/baseconfig/CONFIG_ALTERA_MSGDMA @@ -0,0 +1 @@ +CONFIG_ALTERA_MSGDMA=m diff --git a/baseconfig/CONFIG_ATH10K_USB b/baseconfig/CONFIG_ATH10K_USB new file mode 100644 index 000000000..29021503d --- /dev/null +++ b/baseconfig/CONFIG_ATH10K_USB @@ -0,0 +1 @@ +CONFIG_ATH10K_USB=m diff --git a/baseconfig/CONFIG_BATTERY_MAX1721X b/baseconfig/CONFIG_BATTERY_MAX1721X new file mode 100644 index 000000000..98c04567c --- /dev/null +++ b/baseconfig/CONFIG_BATTERY_MAX1721X @@ -0,0 +1 @@ +# CONFIG_BATTERY_MAX1721X is not set diff --git a/baseconfig/CONFIG_BLK_CPQ_CISS_DA b/baseconfig/CONFIG_BLK_CPQ_CISS_DA deleted file mode 100644 index be7870097..000000000 --- a/baseconfig/CONFIG_BLK_CPQ_CISS_DA +++ /dev/null @@ -1 +0,0 @@ -CONFIG_BLK_CPQ_CISS_DA=m diff --git a/baseconfig/CONFIG_BNXT_FLOWER_OFFLOAD b/baseconfig/CONFIG_BNXT_FLOWER_OFFLOAD new file mode 100644 index 000000000..170bbf312 --- /dev/null +++ b/baseconfig/CONFIG_BNXT_FLOWER_OFFLOAD @@ -0,0 +1 @@ +CONFIG_BNXT_FLOWER_OFFLOAD=y diff --git a/baseconfig/CONFIG_BPF_STREAM_PARSER b/baseconfig/CONFIG_BPF_STREAM_PARSER new file mode 100644 index 000000000..7cf783506 --- /dev/null +++ b/baseconfig/CONFIG_BPF_STREAM_PARSER @@ -0,0 +1 @@ +CONFIG_BPF_STREAM_PARSER=y diff --git a/baseconfig/CONFIG_CCS811 b/baseconfig/CONFIG_CCS811 new file mode 100644 index 000000000..931f14e2a --- /dev/null +++ b/baseconfig/CONFIG_CCS811 @@ -0,0 +1 @@ +# CONFIG_CCS811 is not set diff --git a/baseconfig/CONFIG_CEC_PIN b/baseconfig/CONFIG_CEC_PIN new file mode 100644 index 000000000..395ddfbf2 --- /dev/null +++ b/baseconfig/CONFIG_CEC_PIN @@ -0,0 +1 @@ +CONFIG_CEC_PIN=y diff --git a/baseconfig/CONFIG_CISS_SCSI_TAPE b/baseconfig/CONFIG_CISS_SCSI_TAPE deleted file mode 100644 index 2170cc840..000000000 --- a/baseconfig/CONFIG_CISS_SCSI_TAPE +++ /dev/null @@ -1 +0,0 @@ -CONFIG_CISS_SCSI_TAPE=y diff --git a/baseconfig/CONFIG_CLK_HSDK b/baseconfig/CONFIG_CLK_HSDK new file mode 100644 index 000000000..e1788bbc5 --- /dev/null +++ b/baseconfig/CONFIG_CLK_HSDK @@ -0,0 +1 @@ +# CONFIG_CLK_HSDK is not set diff --git a/baseconfig/CONFIG_CLOCK_THERMAL b/baseconfig/CONFIG_CLOCK_THERMAL new file mode 100644 index 000000000..72ca05f2c --- /dev/null +++ b/baseconfig/CONFIG_CLOCK_THERMAL @@ -0,0 +1 @@ +# CONFIG_CLOCK_THERMAL is not set diff --git a/baseconfig/CONFIG_CRYPTO_DEV_SP_CCP b/baseconfig/CONFIG_CRYPTO_DEV_SP_CCP new file mode 100644 index 000000000..c494dcc87 --- /dev/null +++ b/baseconfig/CONFIG_CRYPTO_DEV_SP_CCP @@ -0,0 +1 @@ +# CONFIG_CRYPTO_DEV_SP_CCP is not set diff --git a/baseconfig/CONFIG_DEVFREQ_THERMAL b/baseconfig/CONFIG_DEVFREQ_THERMAL new file mode 100644 index 000000000..5b90f9082 --- /dev/null +++ b/baseconfig/CONFIG_DEVFREQ_THERMAL @@ -0,0 +1 @@ +# CONFIG_DEVFREQ_THERMAL is not set diff --git a/baseconfig/CONFIG_DP83867_PHY b/baseconfig/CONFIG_DP83867_PHY index 5ba3d57bd..2bb3289c3 100644 --- a/baseconfig/CONFIG_DP83867_PHY +++ b/baseconfig/CONFIG_DP83867_PHY @@ -1 +1 @@ -CONFIG_DP83867_PHY=m +# CONFIG_DP83867_PHY is not set diff --git a/baseconfig/CONFIG_DVB_DDBRIDGE_MSIENABLE b/baseconfig/CONFIG_DVB_DDBRIDGE_MSIENABLE new file mode 100644 index 000000000..4f0814b60 --- /dev/null +++ b/baseconfig/CONFIG_DVB_DDBRIDGE_MSIENABLE @@ -0,0 +1 @@ +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set diff --git a/baseconfig/CONFIG_GPIO_BD9571MWV b/baseconfig/CONFIG_GPIO_BD9571MWV new file mode 100644 index 000000000..0cdd67b34 --- /dev/null +++ b/baseconfig/CONFIG_GPIO_BD9571MWV @@ -0,0 +1 @@ +CONFIG_GPIO_BD9571MWV=m diff --git a/baseconfig/CONFIG_GPIO_TPS68470 b/baseconfig/CONFIG_GPIO_TPS68470 new file mode 100644 index 000000000..3176e956e --- /dev/null +++ b/baseconfig/CONFIG_GPIO_TPS68470 @@ -0,0 +1 @@ +CONFIG_GPIO_TPS68470=y diff --git a/baseconfig/CONFIG_INFINIBAND_EXP_USER_ACCESS b/baseconfig/CONFIG_INFINIBAND_EXP_USER_ACCESS new file mode 100644 index 000000000..478415c11 --- /dev/null +++ b/baseconfig/CONFIG_INFINIBAND_EXP_USER_ACCESS @@ -0,0 +1 @@ +# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set diff --git a/baseconfig/CONFIG_INPUT_PWM_VIBRA b/baseconfig/CONFIG_INPUT_PWM_VIBRA new file mode 100644 index 000000000..39a51b490 --- /dev/null +++ b/baseconfig/CONFIG_INPUT_PWM_VIBRA @@ -0,0 +1 @@ +# CONFIG_INPUT_PWM_VIBRA is not set diff --git a/baseconfig/CONFIG_INPUT_RK805_PWRKEY b/baseconfig/CONFIG_INPUT_RK805_PWRKEY new file mode 100644 index 000000000..4ce96f558 --- /dev/null +++ b/baseconfig/CONFIG_INPUT_RK805_PWRKEY @@ -0,0 +1 @@ +CONFIG_INPUT_RK805_PWRKEY=m diff --git a/baseconfig/CONFIG_IP_DCCP b/baseconfig/CONFIG_IP_DCCP index 26ba41376..6ecb43a3e 100644 --- a/baseconfig/CONFIG_IP_DCCP +++ b/baseconfig/CONFIG_IP_DCCP @@ -1 +1 @@ -CONFIG_IP_DCCP=m +# CONFIG_IP_DCCP is not set diff --git a/baseconfig/CONFIG_IR_GPIO_TX b/baseconfig/CONFIG_IR_GPIO_TX new file mode 100644 index 000000000..4b6b484bb --- /dev/null +++ b/baseconfig/CONFIG_IR_GPIO_TX @@ -0,0 +1 @@ +CONFIG_IR_GPIO_TX=m diff --git a/baseconfig/CONFIG_IR_PWM_TX b/baseconfig/CONFIG_IR_PWM_TX new file mode 100644 index 000000000..4dfd41870 --- /dev/null +++ b/baseconfig/CONFIG_IR_PWM_TX @@ -0,0 +1 @@ +CONFIG_IR_PWM_TX=m diff --git a/baseconfig/CONFIG_LEDS_AS3645A b/baseconfig/CONFIG_LEDS_AS3645A new file mode 100644 index 000000000..25d6f9f10 --- /dev/null +++ b/baseconfig/CONFIG_LEDS_AS3645A @@ -0,0 +1 @@ +CONFIG_LEDS_AS3645A=m diff --git a/baseconfig/CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT b/baseconfig/CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT new file mode 100644 index 000000000..336528547 --- /dev/null +++ b/baseconfig/CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT @@ -0,0 +1 @@ +# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set diff --git a/baseconfig/CONFIG_LTC2471 b/baseconfig/CONFIG_LTC2471 new file mode 100644 index 000000000..5d272ac29 --- /dev/null +++ b/baseconfig/CONFIG_LTC2471 @@ -0,0 +1 @@ +# CONFIG_LTC2471 is not set diff --git a/baseconfig/CONFIG_MDIO_I2C b/baseconfig/CONFIG_MDIO_I2C new file mode 100644 index 000000000..df7d9e025 --- /dev/null +++ b/baseconfig/CONFIG_MDIO_I2C @@ -0,0 +1 @@ +CONFIG_MDIO_I2C=m diff --git a/baseconfig/CONFIG_MFD_BD9571MWV b/baseconfig/CONFIG_MFD_BD9571MWV new file mode 100644 index 000000000..28d27a0e5 --- /dev/null +++ b/baseconfig/CONFIG_MFD_BD9571MWV @@ -0,0 +1 @@ +CONFIG_MFD_BD9571MWV=m diff --git a/baseconfig/CONFIG_MFD_TPS68470 b/baseconfig/CONFIG_MFD_TPS68470 new file mode 100644 index 000000000..10fd40465 --- /dev/null +++ b/baseconfig/CONFIG_MFD_TPS68470 @@ -0,0 +1 @@ +CONFIG_MFD_TPS68470=y diff --git a/baseconfig/CONFIG_MLX5_ESWITCH b/baseconfig/CONFIG_MLX5_ESWITCH new file mode 100644 index 000000000..8a69e0671 --- /dev/null +++ b/baseconfig/CONFIG_MLX5_ESWITCH @@ -0,0 +1 @@ +CONFIG_MLX5_ESWITCH=y diff --git a/baseconfig/CONFIG_MLX5_MPFS b/baseconfig/CONFIG_MLX5_MPFS new file mode 100644 index 000000000..6799ed484 --- /dev/null +++ b/baseconfig/CONFIG_MLX5_MPFS @@ -0,0 +1 @@ +CONFIG_MLX5_MPFS=y diff --git a/baseconfig/CONFIG_MMC_BLOCK_BOUNCE b/baseconfig/CONFIG_MMC_BLOCK_BOUNCE deleted file mode 100644 index 4470e8359..000000000 --- a/baseconfig/CONFIG_MMC_BLOCK_BOUNCE +++ /dev/null @@ -1 +0,0 @@ -CONFIG_MMC_BLOCK_BOUNCE=y diff --git a/baseconfig/CONFIG_NET_NSH b/baseconfig/CONFIG_NET_NSH new file mode 100644 index 000000000..2a9a24e04 --- /dev/null +++ b/baseconfig/CONFIG_NET_NSH @@ -0,0 +1 @@ +CONFIG_NET_NSH=m diff --git a/baseconfig/CONFIG_NET_VENDOR_HUAWEI b/baseconfig/CONFIG_NET_VENDOR_HUAWEI new file mode 100644 index 000000000..ae01b9160 --- /dev/null +++ b/baseconfig/CONFIG_NET_VENDOR_HUAWEI @@ -0,0 +1 @@ +# CONFIG_NET_VENDOR_HUAWEI is not set diff --git a/baseconfig/CONFIG_NFT_FIB_NETDEV b/baseconfig/CONFIG_NFT_FIB_NETDEV new file mode 100644 index 000000000..273bfeb6a --- /dev/null +++ b/baseconfig/CONFIG_NFT_FIB_NETDEV @@ -0,0 +1 @@ +CONFIG_NFT_FIB_NETDEV=m diff --git a/baseconfig/CONFIG_PHYLINK b/baseconfig/CONFIG_PHYLINK new file mode 100644 index 000000000..cc1e23e0b --- /dev/null +++ b/baseconfig/CONFIG_PHYLINK @@ -0,0 +1 @@ +CONFIG_PHYLINK=m diff --git a/baseconfig/CONFIG_PHY_MVEBU_CP110_COMPHY b/baseconfig/CONFIG_PHY_MVEBU_CP110_COMPHY new file mode 100644 index 000000000..8c104689f --- /dev/null +++ b/baseconfig/CONFIG_PHY_MVEBU_CP110_COMPHY @@ -0,0 +1 @@ +# CONFIG_PHY_MVEBU_CP110_COMPHY is not set diff --git a/baseconfig/CONFIG_PI433 b/baseconfig/CONFIG_PI433 new file mode 100644 index 000000000..b275e1e6a --- /dev/null +++ b/baseconfig/CONFIG_PI433 @@ -0,0 +1 @@ +# CONFIG_PI433 is not set diff --git a/baseconfig/CONFIG_PINCTRL_RK805 b/baseconfig/CONFIG_PINCTRL_RK805 new file mode 100644 index 000000000..47b4fd855 --- /dev/null +++ b/baseconfig/CONFIG_PINCTRL_RK805 @@ -0,0 +1 @@ +CONFIG_PINCTRL_RK805=m diff --git a/baseconfig/CONFIG_PINCTRL_SPRD b/baseconfig/CONFIG_PINCTRL_SPRD new file mode 100644 index 000000000..cffa73544 --- /dev/null +++ b/baseconfig/CONFIG_PINCTRL_SPRD @@ -0,0 +1 @@ +# CONFIG_PINCTRL_SPRD is not set diff --git a/baseconfig/CONFIG_PINCTRL_SPRD_SC9860 b/baseconfig/CONFIG_PINCTRL_SPRD_SC9860 new file mode 100644 index 000000000..f9b405f96 --- /dev/null +++ b/baseconfig/CONFIG_PINCTRL_SPRD_SC9860 @@ -0,0 +1 @@ +# CONFIG_PINCTRL_SPRD_SC9860 is not set diff --git a/baseconfig/CONFIG_PM_OPP b/baseconfig/CONFIG_PM_OPP index a77bd27f8..bbe2b56ba 100644 --- a/baseconfig/CONFIG_PM_OPP +++ b/baseconfig/CONFIG_PM_OPP @@ -1 +1 @@ -# CONFIG_PM_OPP is not set +CONFIG_PM_OPP=y diff --git a/baseconfig/CONFIG_QCOM_GLINK_SSR b/baseconfig/CONFIG_QCOM_GLINK_SSR new file mode 100644 index 000000000..1c67b32f7 --- /dev/null +++ b/baseconfig/CONFIG_QCOM_GLINK_SSR @@ -0,0 +1 @@ +# CONFIG_QCOM_GLINK_SSR is not set diff --git a/baseconfig/CONFIG_R8822BE b/baseconfig/CONFIG_R8822BE new file mode 100644 index 000000000..2f7c08787 --- /dev/null +++ b/baseconfig/CONFIG_R8822BE @@ -0,0 +1 @@ +CONFIG_R8822BE=m diff --git a/baseconfig/CONFIG_REGULATOR_BD9571MWV b/baseconfig/CONFIG_REGULATOR_BD9571MWV new file mode 100644 index 000000000..3b0acb786 --- /dev/null +++ b/baseconfig/CONFIG_REGULATOR_BD9571MWV @@ -0,0 +1 @@ +CONFIG_REGULATOR_BD9571MWV=m diff --git a/baseconfig/CONFIG_RESET_ATTACK_MITIGATION b/baseconfig/CONFIG_RESET_ATTACK_MITIGATION new file mode 100644 index 000000000..8202a7865 --- /dev/null +++ b/baseconfig/CONFIG_RESET_ATTACK_MITIGATION @@ -0,0 +1 @@ +CONFIG_RESET_ATTACK_MITIGATION=y diff --git a/baseconfig/CONFIG_RESET_HSDK_V1 b/baseconfig/CONFIG_RESET_HSDK_V1 new file mode 100644 index 000000000..4c2b97d79 --- /dev/null +++ b/baseconfig/CONFIG_RESET_HSDK_V1 @@ -0,0 +1 @@ +# CONFIG_RESET_HSDK_V1 is not set diff --git a/baseconfig/CONFIG_RMNET b/baseconfig/CONFIG_RMNET new file mode 100644 index 000000000..5e8c115b5 --- /dev/null +++ b/baseconfig/CONFIG_RMNET @@ -0,0 +1 @@ +# CONFIG_RMNET is not set diff --git a/baseconfig/CONFIG_ROCKCHIP_PHY b/baseconfig/CONFIG_ROCKCHIP_PHY new file mode 100644 index 000000000..4ca60873a --- /dev/null +++ b/baseconfig/CONFIG_ROCKCHIP_PHY @@ -0,0 +1 @@ +# CONFIG_ROCKCHIP_PHY is not set diff --git a/baseconfig/CONFIG_RPMSG_QCOM_GLINK_SMEM b/baseconfig/CONFIG_RPMSG_QCOM_GLINK_SMEM new file mode 100644 index 000000000..c2c0a0c78 --- /dev/null +++ b/baseconfig/CONFIG_RPMSG_QCOM_GLINK_SMEM @@ -0,0 +1 @@ +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set diff --git a/baseconfig/CONFIG_SENSORS_IBM_CFFPS b/baseconfig/CONFIG_SENSORS_IBM_CFFPS new file mode 100644 index 000000000..a217d973e --- /dev/null +++ b/baseconfig/CONFIG_SENSORS_IBM_CFFPS @@ -0,0 +1 @@ +# CONFIG_SENSORS_IBM_CFFPS is not set diff --git a/baseconfig/CONFIG_SENSORS_TPS53679 b/baseconfig/CONFIG_SENSORS_TPS53679 new file mode 100644 index 000000000..461a703df --- /dev/null +++ b/baseconfig/CONFIG_SENSORS_TPS53679 @@ -0,0 +1 @@ +CONFIG_SENSORS_TPS53679=m diff --git a/baseconfig/CONFIG_SERIO_GPIO_PS2 b/baseconfig/CONFIG_SERIO_GPIO_PS2 new file mode 100644 index 000000000..22c1adbfb --- /dev/null +++ b/baseconfig/CONFIG_SERIO_GPIO_PS2 @@ -0,0 +1 @@ +# CONFIG_SERIO_GPIO_PS2 is not set diff --git a/baseconfig/CONFIG_SFP b/baseconfig/CONFIG_SFP new file mode 100644 index 000000000..db57db12e --- /dev/null +++ b/baseconfig/CONFIG_SFP @@ -0,0 +1 @@ +CONFIG_SFP=m diff --git a/baseconfig/CONFIG_SLAB_FREELIST_HARDENED b/baseconfig/CONFIG_SLAB_FREELIST_HARDENED new file mode 100644 index 000000000..52602d279 --- /dev/null +++ b/baseconfig/CONFIG_SLAB_FREELIST_HARDENED @@ -0,0 +1 @@ +CONFIG_SLAB_FREELIST_HARDENED=y diff --git a/baseconfig/CONFIG_SND_BCD2000 b/baseconfig/CONFIG_SND_BCD2000 index b56c9162f..0a60c490b 100644 --- a/baseconfig/CONFIG_SND_BCD2000 +++ b/baseconfig/CONFIG_SND_BCD2000 @@ -1 +1 @@ -CONFIG_SND_BCD2000=m +# CONFIG_SND_BCD2000 is not set diff --git a/baseconfig/CONFIG_SND_HDA_POWER_SAVE_DEFAULT b/baseconfig/CONFIG_SND_HDA_POWER_SAVE_DEFAULT index ce02ec981..ba018972d 100644 --- a/baseconfig/CONFIG_SND_HDA_POWER_SAVE_DEFAULT +++ b/baseconfig/CONFIG_SND_HDA_POWER_SAVE_DEFAULT @@ -1 +1 @@ -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 diff --git a/baseconfig/CONFIG_SND_SOC_CS43130 b/baseconfig/CONFIG_SND_SOC_CS43130 new file mode 100644 index 000000000..3fad16f6d --- /dev/null +++ b/baseconfig/CONFIG_SND_SOC_CS43130 @@ -0,0 +1 @@ +CONFIG_SND_SOC_CS43130=m diff --git a/baseconfig/CONFIG_SND_SOC_WM8524 b/baseconfig/CONFIG_SND_SOC_WM8524 new file mode 100644 index 000000000..1eb33d7e5 --- /dev/null +++ b/baseconfig/CONFIG_SND_SOC_WM8524 @@ -0,0 +1 @@ +CONFIG_SND_SOC_WM8524=m diff --git a/baseconfig/CONFIG_SQUASHFS_ZSTD b/baseconfig/CONFIG_SQUASHFS_ZSTD new file mode 100644 index 000000000..023fb21e0 --- /dev/null +++ b/baseconfig/CONFIG_SQUASHFS_ZSTD @@ -0,0 +1 @@ +CONFIG_SQUASHFS_ZSTD=y diff --git a/baseconfig/CONFIG_STRING_SELFTEST b/baseconfig/CONFIG_STRING_SELFTEST new file mode 100644 index 000000000..dbff6d7fa --- /dev/null +++ b/baseconfig/CONFIG_STRING_SELFTEST @@ -0,0 +1 @@ +# CONFIG_STRING_SELFTEST is not set diff --git a/baseconfig/CONFIG_W1_SLAVE_DS2805 b/baseconfig/CONFIG_W1_SLAVE_DS2805 new file mode 100644 index 000000000..eddd3bbb3 --- /dev/null +++ b/baseconfig/CONFIG_W1_SLAVE_DS2805 @@ -0,0 +1 @@ +CONFIG_W1_SLAVE_DS2805=m diff --git a/baseconfig/CONFIG_WIL6210_DEBUGFS b/baseconfig/CONFIG_WIL6210_DEBUGFS new file mode 100644 index 000000000..f0f5fe7cf --- /dev/null +++ b/baseconfig/CONFIG_WIL6210_DEBUGFS @@ -0,0 +1 @@ +CONFIG_WIL6210_DEBUGFS=y diff --git a/baseconfig/CONFIG_ZRAM_WRITEBACK b/baseconfig/CONFIG_ZRAM_WRITEBACK new file mode 100644 index 000000000..9a566b71c --- /dev/null +++ b/baseconfig/CONFIG_ZRAM_WRITEBACK @@ -0,0 +1 @@ +# CONFIG_ZRAM_WRITEBACK is not set diff --git a/baseconfig/arm/CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG b/baseconfig/arm/CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG new file mode 100644 index 000000000..62fd0b85a --- /dev/null +++ b/baseconfig/arm/CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG @@ -0,0 +1 @@ +CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y diff --git a/baseconfig/arm/CONFIG_CRYPTO_SHA256_ARM64 b/baseconfig/arm/CONFIG_CRYPTO_SHA256_ARM64 index ba32f8501..3aa7dacbf 100644 --- a/baseconfig/arm/CONFIG_CRYPTO_SHA256_ARM64 +++ b/baseconfig/arm/CONFIG_CRYPTO_SHA256_ARM64 @@ -1 +1 @@ -CONFIG_CRYPTO_SHA256_ARM64=m +CONFIG_CRYPTO_SHA256_ARM64=y diff --git a/baseconfig/arm/CONFIG_DRM_DW_HDMI_CEC b/baseconfig/arm/CONFIG_DRM_DW_HDMI_CEC new file mode 100644 index 000000000..a3e178eae --- /dev/null +++ b/baseconfig/arm/CONFIG_DRM_DW_HDMI_CEC @@ -0,0 +1 @@ +CONFIG_DRM_DW_HDMI_CEC=m diff --git a/baseconfig/arm/CONFIG_DRM_VC4_HDMI_CEC b/baseconfig/arm/CONFIG_DRM_VC4_HDMI_CEC new file mode 100644 index 000000000..da0132c1f --- /dev/null +++ b/baseconfig/arm/CONFIG_DRM_VC4_HDMI_CEC @@ -0,0 +1 @@ +CONFIG_DRM_VC4_HDMI_CEC=y diff --git a/baseconfig/arm/CONFIG_EXTCON_USBC_CROS_EC b/baseconfig/arm/CONFIG_EXTCON_USBC_CROS_EC new file mode 100644 index 000000000..831bc6ea7 --- /dev/null +++ b/baseconfig/arm/CONFIG_EXTCON_USBC_CROS_EC @@ -0,0 +1 @@ +CONFIG_EXTCON_USBC_CROS_EC=m diff --git a/baseconfig/arm/CONFIG_HW_RANDOM_IMX_RNGC b/baseconfig/arm/CONFIG_HW_RANDOM_IMX_RNGC new file mode 100644 index 000000000..e7b39a2c7 --- /dev/null +++ b/baseconfig/arm/CONFIG_HW_RANDOM_IMX_RNGC @@ -0,0 +1 @@ +CONFIG_HW_RANDOM_IMX_RNGC=m diff --git a/baseconfig/arm/CONFIG_I2C_DESIGNWARE_CORE b/baseconfig/arm/CONFIG_I2C_DESIGNWARE_CORE index 661ffb01a..f9cdc633b 100644 --- a/baseconfig/arm/CONFIG_I2C_DESIGNWARE_CORE +++ b/baseconfig/arm/CONFIG_I2C_DESIGNWARE_CORE @@ -1 +1 @@ -CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_DESIGNWARE_CORE=y diff --git a/baseconfig/arm/CONFIG_I2C_DESIGNWARE_PLATFORM b/baseconfig/arm/CONFIG_I2C_DESIGNWARE_PLATFORM index cec2f8633..3d50a3e8a 100644 --- a/baseconfig/arm/CONFIG_I2C_DESIGNWARE_PLATFORM +++ b/baseconfig/arm/CONFIG_I2C_DESIGNWARE_PLATFORM @@ -1 +1 @@ -CONFIG_I2C_DESIGNWARE_PLATFORM=m +CONFIG_I2C_DESIGNWARE_PLATFORM=y diff --git a/baseconfig/arm/CONFIG_MESON_GX_SOCINFO b/baseconfig/arm/CONFIG_MESON_GX_SOCINFO new file mode 100644 index 000000000..ce5ba6f4a --- /dev/null +++ b/baseconfig/arm/CONFIG_MESON_GX_SOCINFO @@ -0,0 +1 @@ +CONFIG_MESON_GX_SOCINFO=y diff --git a/baseconfig/arm/armv7/CONFIG_MTD_NAND_PXA3xx b/baseconfig/arm/CONFIG_MTD_NAND_PXA3xx index 584b57ea1..584b57ea1 100644 --- a/baseconfig/arm/armv7/CONFIG_MTD_NAND_PXA3xx +++ b/baseconfig/arm/CONFIG_MTD_NAND_PXA3xx diff --git a/baseconfig/arm/CONFIG_ROCKCHIP_PHY b/baseconfig/arm/CONFIG_ROCKCHIP_PHY new file mode 100644 index 000000000..e49faf8f9 --- /dev/null +++ b/baseconfig/arm/CONFIG_ROCKCHIP_PHY @@ -0,0 +1 @@ +CONFIG_ROCKCHIP_PHY=m diff --git a/baseconfig/arm/armv7/armv7/CONFIG_SND_SOC_TEGRA20_AC97 b/baseconfig/arm/CONFIG_SND_SOC_TEGRA20_AC97 index fa8e0e012..fa8e0e012 100644 --- a/baseconfig/arm/armv7/armv7/CONFIG_SND_SOC_TEGRA20_AC97 +++ b/baseconfig/arm/CONFIG_SND_SOC_TEGRA20_AC97 diff --git a/baseconfig/arm/armv7/armv7/CONFIG_SND_SOC_TEGRA20_DAS b/baseconfig/arm/CONFIG_SND_SOC_TEGRA20_DAS index 82205dc43..82205dc43 100644 --- a/baseconfig/arm/armv7/armv7/CONFIG_SND_SOC_TEGRA20_DAS +++ b/baseconfig/arm/CONFIG_SND_SOC_TEGRA20_DAS diff --git a/baseconfig/arm/armv7/CONFIG_SND_SOC_TEGRA20_I2S b/baseconfig/arm/CONFIG_SND_SOC_TEGRA20_I2S index abfe22877..abfe22877 100644 --- a/baseconfig/arm/armv7/CONFIG_SND_SOC_TEGRA20_I2S +++ b/baseconfig/arm/CONFIG_SND_SOC_TEGRA20_I2S diff --git a/baseconfig/arm/armv7/armv7/CONFIG_SND_SOC_TEGRA20_SPDIF b/baseconfig/arm/CONFIG_SND_SOC_TEGRA20_SPDIF index 0f05cfffa..0f05cfffa 100644 --- a/baseconfig/arm/armv7/armv7/CONFIG_SND_SOC_TEGRA20_SPDIF +++ b/baseconfig/arm/CONFIG_SND_SOC_TEGRA20_SPDIF diff --git a/baseconfig/arm/armv7/CONFIG_SND_SOC_TEGRA30_AHUB b/baseconfig/arm/CONFIG_SND_SOC_TEGRA30_AHUB index d5632de51..d5632de51 100644 --- a/baseconfig/arm/armv7/CONFIG_SND_SOC_TEGRA30_AHUB +++ b/baseconfig/arm/CONFIG_SND_SOC_TEGRA30_AHUB diff --git a/baseconfig/arm/armv7/CONFIG_SND_SOC_TEGRA30_I2S b/baseconfig/arm/CONFIG_SND_SOC_TEGRA30_I2S index c7fabc77b..c7fabc77b 100644 --- a/baseconfig/arm/armv7/CONFIG_SND_SOC_TEGRA30_I2S +++ b/baseconfig/arm/CONFIG_SND_SOC_TEGRA30_I2S diff --git a/baseconfig/arm/CONFIG_TINYDRM_REPAPER b/baseconfig/arm/CONFIG_TINYDRM_REPAPER new file mode 100644 index 000000000..c4d2874fa --- /dev/null +++ b/baseconfig/arm/CONFIG_TINYDRM_REPAPER @@ -0,0 +1 @@ +# CONFIG_TINYDRM_REPAPER is not set diff --git a/baseconfig/arm/CONFIG_TINYDRM_ST7586 b/baseconfig/arm/CONFIG_TINYDRM_ST7586 new file mode 100644 index 000000000..2b9e29f63 --- /dev/null +++ b/baseconfig/arm/CONFIG_TINYDRM_ST7586 @@ -0,0 +1 @@ +# CONFIG_TINYDRM_ST7586 is not set diff --git a/baseconfig/arm/CONFIG_VIDEO_MESON_AO_CEC b/baseconfig/arm/CONFIG_VIDEO_MESON_AO_CEC new file mode 100644 index 000000000..499a44076 --- /dev/null +++ b/baseconfig/arm/CONFIG_VIDEO_MESON_AO_CEC @@ -0,0 +1 @@ +CONFIG_VIDEO_MESON_AO_CEC=m diff --git a/baseconfig/arm/arm64/CONFIG_ARM64_PMEM b/baseconfig/arm/arm64/CONFIG_ARM64_PMEM new file mode 100644 index 000000000..9325600d1 --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_ARM64_PMEM @@ -0,0 +1 @@ +# CONFIG_ARM64_PMEM is not set diff --git a/baseconfig/arm/arm64/CONFIG_CRYPTO_AES_ARM64 b/baseconfig/arm/arm64/CONFIG_CRYPTO_AES_ARM64 index 113c72b8c..dd0ae2c1d 100644 --- a/baseconfig/arm/arm64/CONFIG_CRYPTO_AES_ARM64 +++ b/baseconfig/arm/arm64/CONFIG_CRYPTO_AES_ARM64 @@ -1 +1 @@ -CONFIG_CRYPTO_AES_ARM64=m +CONFIG_CRYPTO_AES_ARM64=y diff --git a/baseconfig/arm/arm64/CONFIG_GPIO_THUNDERX b/baseconfig/arm/arm64/CONFIG_GPIO_THUNDERX new file mode 100644 index 000000000..6895cc045 --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_GPIO_THUNDERX @@ -0,0 +1 @@ +CONFIG_GPIO_THUNDERX=m diff --git a/baseconfig/arm/arm64/CONFIG_MMC_QCOM_DML b/baseconfig/arm/arm64/CONFIG_MMC_QCOM_DML index 059d0d4f2..48facf367 100644 --- a/baseconfig/arm/arm64/CONFIG_MMC_QCOM_DML +++ b/baseconfig/arm/arm64/CONFIG_MMC_QCOM_DML @@ -1 +1 @@ -CONFIG_MMC_QCOM_DML=m +CONFIG_MMC_QCOM_DML=y diff --git a/baseconfig/arm/arm64/CONFIG_PHY_MVEBU_CP110_COMPHY b/baseconfig/arm/arm64/CONFIG_PHY_MVEBU_CP110_COMPHY new file mode 100644 index 000000000..1902b0c1f --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_PHY_MVEBU_CP110_COMPHY @@ -0,0 +1 @@ +CONFIG_PHY_MVEBU_CP110_COMPHY=m diff --git a/baseconfig/arm/arm64/CONFIG_USB_CONFIGFS_F_LB_SS b/baseconfig/arm/arm64/CONFIG_USB_CONFIGFS_F_LB_SS new file mode 100644 index 000000000..213edb5a1 --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_USB_CONFIGFS_F_LB_SS @@ -0,0 +1 @@ +# CONFIG_USB_CONFIGFS_F_LB_SS is not set diff --git a/baseconfig/arm/arm64/CONFIG_VIDEO_QCOM_CAMSS b/baseconfig/arm/arm64/CONFIG_VIDEO_QCOM_CAMSS new file mode 100644 index 000000000..5e2512c4c --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_VIDEO_QCOM_CAMSS @@ -0,0 +1 @@ +CONFIG_VIDEO_QCOM_CAMSS=m diff --git a/baseconfig/arm/arm64/CONFIG_VMAP_STACK b/baseconfig/arm/arm64/CONFIG_VMAP_STACK new file mode 100644 index 000000000..8bd986875 --- /dev/null +++ b/baseconfig/arm/arm64/CONFIG_VMAP_STACK @@ -0,0 +1 @@ +CONFIG_VMAP_STACK=y diff --git a/baseconfig/arm/CONFIG_DRM_SUN4I_BACKEND b/baseconfig/arm/armv7/CONFIG_DRM_SUN4I_BACKEND index c1d1d2121..c1d1d2121 100644 --- a/baseconfig/arm/CONFIG_DRM_SUN4I_BACKEND +++ b/baseconfig/arm/armv7/CONFIG_DRM_SUN4I_BACKEND diff --git a/baseconfig/arm/armv7/CONFIG_DRM_SUN4I_HDMI_CEC b/baseconfig/arm/armv7/CONFIG_DRM_SUN4I_HDMI_CEC new file mode 100644 index 000000000..8ba73409c --- /dev/null +++ b/baseconfig/arm/armv7/CONFIG_DRM_SUN4I_HDMI_CEC @@ -0,0 +1 @@ +# CONFIG_DRM_SUN4I_HDMI_CEC is not set diff --git a/baseconfig/arm/armv7/CONFIG_MMC_QCOM_DML b/baseconfig/arm/armv7/CONFIG_MMC_QCOM_DML deleted file mode 100644 index 059d0d4f2..000000000 --- a/baseconfig/arm/armv7/CONFIG_MMC_QCOM_DML +++ /dev/null @@ -1 +0,0 @@ -CONFIG_MMC_QCOM_DML=m diff --git a/baseconfig/arm/armv7/CONFIG_PWM_TIECAP b/baseconfig/arm/armv7/CONFIG_PWM_TIECAP new file mode 100644 index 000000000..84f1e9b57 --- /dev/null +++ b/baseconfig/arm/armv7/CONFIG_PWM_TIECAP @@ -0,0 +1 @@ +CONFIG_PWM_TIECAP=m diff --git a/baseconfig/arm/armv7/CONFIG_RTC_DRV_ARMADA38X b/baseconfig/arm/armv7/CONFIG_RTC_DRV_ARMADA38X deleted file mode 100644 index 7dcdafcbb..000000000 --- a/baseconfig/arm/armv7/CONFIG_RTC_DRV_ARMADA38X +++ /dev/null @@ -1 +0,0 @@ -CONFIG_RTC_DRV_ARMADA38X=m diff --git a/baseconfig/arm/armv7/CONFIG_SUN4I_A10_CCU b/baseconfig/arm/armv7/CONFIG_SUN4I_A10_CCU new file mode 100644 index 000000000..3b2ba681a --- /dev/null +++ b/baseconfig/arm/armv7/CONFIG_SUN4I_A10_CCU @@ -0,0 +1 @@ +CONFIG_SUN4I_A10_CCU=y diff --git a/baseconfig/arm/armv7/CONFIG_SUN8I_R40_CCU b/baseconfig/arm/armv7/CONFIG_SUN8I_R40_CCU new file mode 100644 index 000000000..149900927 --- /dev/null +++ b/baseconfig/arm/armv7/CONFIG_SUN8I_R40_CCU @@ -0,0 +1 @@ +CONFIG_SUN8I_R40_CCU=y diff --git a/baseconfig/arm/armv7/armv7/CONFIG_BATTERY_BQ27XXX_HDQ b/baseconfig/arm/armv7/armv7/CONFIG_BATTERY_BQ27XXX_HDQ new file mode 100644 index 000000000..2be078588 --- /dev/null +++ b/baseconfig/arm/armv7/armv7/CONFIG_BATTERY_BQ27XXX_HDQ @@ -0,0 +1 @@ +CONFIG_BATTERY_BQ27XXX_HDQ=m diff --git a/baseconfig/arm/armv7/armv7/CONFIG_IMX_REMOTEPROC b/baseconfig/arm/armv7/armv7/CONFIG_IMX_REMOTEPROC new file mode 100644 index 000000000..53983d8af --- /dev/null +++ b/baseconfig/arm/armv7/armv7/CONFIG_IMX_REMOTEPROC @@ -0,0 +1 @@ +CONFIG_IMX_REMOTEPROC=m diff --git a/baseconfig/arm/armv7/armv7/CONFIG_MMC_QCOM_DML b/baseconfig/arm/armv7/armv7/CONFIG_MMC_QCOM_DML index 059d0d4f2..48facf367 100644 --- a/baseconfig/arm/armv7/armv7/CONFIG_MMC_QCOM_DML +++ b/baseconfig/arm/armv7/armv7/CONFIG_MMC_QCOM_DML @@ -1 +1 @@ -CONFIG_MMC_QCOM_DML=m +CONFIG_MMC_QCOM_DML=y diff --git a/baseconfig/arm/armv7/armv7/CONFIG_VIDEO_QCOM_CAMSS b/baseconfig/arm/armv7/armv7/CONFIG_VIDEO_QCOM_CAMSS new file mode 100644 index 000000000..5e2512c4c --- /dev/null +++ b/baseconfig/arm/armv7/armv7/CONFIG_VIDEO_QCOM_CAMSS @@ -0,0 +1 @@ +CONFIG_VIDEO_QCOM_CAMSS=m diff --git a/baseconfig/arm/armv7/lpae/CONFIG_SND_SOC_TEGRA20_DAS b/baseconfig/arm/armv7/lpae/CONFIG_SND_SOC_TEGRA20_DAS deleted file mode 100644 index 71a38a48c..000000000 --- a/baseconfig/arm/armv7/lpae/CONFIG_SND_SOC_TEGRA20_DAS +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_SND_SOC_TEGRA20_DAS is not set diff --git a/baseconfig/powerpc/CONFIG_PPC_MEMTRACE b/baseconfig/powerpc/CONFIG_PPC_MEMTRACE new file mode 100644 index 000000000..c783714d8 --- /dev/null +++ b/baseconfig/powerpc/CONFIG_PPC_MEMTRACE @@ -0,0 +1 @@ +# CONFIG_PPC_MEMTRACE is not set diff --git a/baseconfig/powerpc/CONFIG_PPC_VAS b/baseconfig/powerpc/CONFIG_PPC_VAS new file mode 100644 index 000000000..ec767da00 --- /dev/null +++ b/baseconfig/powerpc/CONFIG_PPC_VAS @@ -0,0 +1 @@ +CONFIG_PPC_VAS=y diff --git a/baseconfig/powerpc/CONFIG_SENSORS_IBM_CFFPS b/baseconfig/powerpc/CONFIG_SENSORS_IBM_CFFPS new file mode 100644 index 000000000..31f260384 --- /dev/null +++ b/baseconfig/powerpc/CONFIG_SENSORS_IBM_CFFPS @@ -0,0 +1 @@ +CONFIG_SENSORS_IBM_CFFPS=m diff --git a/baseconfig/s390x/CONFIG_BLK_CPQ_CISS_DA b/baseconfig/s390x/CONFIG_BLK_CPQ_CISS_DA deleted file mode 100644 index 2e6c723ac..000000000 --- a/baseconfig/s390x/CONFIG_BLK_CPQ_CISS_DA +++ /dev/null @@ -1 +0,0 @@ -# CONFIG_BLK_CPQ_CISS_DA is not set diff --git a/baseconfig/s390x/CONFIG_CMA b/baseconfig/s390x/CONFIG_CMA new file mode 100644 index 000000000..309c9e771 --- /dev/null +++ b/baseconfig/s390x/CONFIG_CMA @@ -0,0 +1 @@ +CONFIG_CMA=y diff --git a/baseconfig/s390x/CONFIG_CMA_AREAS b/baseconfig/s390x/CONFIG_CMA_AREAS new file mode 100644 index 000000000..5474a48e9 --- /dev/null +++ b/baseconfig/s390x/CONFIG_CMA_AREAS @@ -0,0 +1 @@ +CONFIG_CMA_AREAS=7 diff --git a/baseconfig/s390x/CONFIG_CMA_DEBUG b/baseconfig/s390x/CONFIG_CMA_DEBUG new file mode 100644 index 000000000..64ff80c56 --- /dev/null +++ b/baseconfig/s390x/CONFIG_CMA_DEBUG @@ -0,0 +1 @@ +# CONFIG_CMA_DEBUG is not set diff --git a/baseconfig/s390x/CONFIG_CMA_DEBUGFS b/baseconfig/s390x/CONFIG_CMA_DEBUGFS new file mode 100644 index 000000000..fba89903a --- /dev/null +++ b/baseconfig/s390x/CONFIG_CMA_DEBUGFS @@ -0,0 +1 @@ +# CONFIG_CMA_DEBUGFS is not set diff --git a/baseconfig/s390x/CONFIG_MFD_BD9571MWV b/baseconfig/s390x/CONFIG_MFD_BD9571MWV new file mode 100644 index 000000000..d321ad3c6 --- /dev/null +++ b/baseconfig/s390x/CONFIG_MFD_BD9571MWV @@ -0,0 +1 @@ +# CONFIG_MFD_BD9571MWV is not set diff --git a/baseconfig/s390x/CONFIG_MFD_RTSX_USB b/baseconfig/s390x/CONFIG_MFD_RTSX_USB new file mode 100644 index 000000000..b6efa65e7 --- /dev/null +++ b/baseconfig/s390x/CONFIG_MFD_RTSX_USB @@ -0,0 +1 @@ +# CONFIG_MFD_RTSX_USB is not set diff --git a/baseconfig/s390x/CONFIG_MFD_TPS68470 b/baseconfig/s390x/CONFIG_MFD_TPS68470 new file mode 100644 index 000000000..e82f415aa --- /dev/null +++ b/baseconfig/s390x/CONFIG_MFD_TPS68470 @@ -0,0 +1 @@ +# CONFIG_MFD_TPS68470 is not set diff --git a/baseconfig/s390x/CONFIG_MFD_VIPERBOARD b/baseconfig/s390x/CONFIG_MFD_VIPERBOARD new file mode 100644 index 000000000..1d4d00579 --- /dev/null +++ b/baseconfig/s390x/CONFIG_MFD_VIPERBOARD @@ -0,0 +1 @@ +# CONFIG_MFD_VIPERBOARD is not set diff --git a/baseconfig/s390x/CONFIG_VMCP_CMA_SIZE b/baseconfig/s390x/CONFIG_VMCP_CMA_SIZE new file mode 100644 index 000000000..aee0667ac --- /dev/null +++ b/baseconfig/s390x/CONFIG_VMCP_CMA_SIZE @@ -0,0 +1 @@ +CONFIG_VMCP_CMA_SIZE=4 diff --git a/baseconfig/x86/CONFIG_CONFIG_PINCTRL_LEWISBURG b/baseconfig/x86/CONFIG_CONFIG_PINCTRL_LEWISBURG new file mode 100644 index 000000000..c2c51192e --- /dev/null +++ b/baseconfig/x86/CONFIG_CONFIG_PINCTRL_LEWISBURG @@ -0,0 +1 @@ +CONFIG_PINCTRL_LEWISBURG=m diff --git a/baseconfig/x86/CONFIG_HYPERV_VSOCKETS b/baseconfig/x86/CONFIG_HYPERV_VSOCKETS new file mode 100644 index 000000000..bd21cd675 --- /dev/null +++ b/baseconfig/x86/CONFIG_HYPERV_VSOCKETS @@ -0,0 +1 @@ +CONFIG_HYPERV_VSOCKETS=m diff --git a/baseconfig/x86/CONFIG_INTEL_RDT b/baseconfig/x86/CONFIG_INTEL_RDT new file mode 100644 index 000000000..0dcef9a32 --- /dev/null +++ b/baseconfig/x86/CONFIG_INTEL_RDT @@ -0,0 +1 @@ +CONFIG_INTEL_RDT=y diff --git a/baseconfig/x86/CONFIG_MAXSMP b/baseconfig/x86/CONFIG_MAXSMP index 8d0fa581d..d0d71de53 100644 --- a/baseconfig/x86/CONFIG_MAXSMP +++ b/baseconfig/x86/CONFIG_MAXSMP @@ -1 +1 @@ -CONFIG_MAXSMP=y +# CONFIG_MAXSMP is not set diff --git a/baseconfig/x86/CONFIG_PINCTRL_DENVERTON b/baseconfig/x86/CONFIG_PINCTRL_DENVERTON new file mode 100644 index 000000000..ec6b4e8e1 --- /dev/null +++ b/baseconfig/x86/CONFIG_PINCTRL_DENVERTON @@ -0,0 +1 @@ +CONFIG_PINCTRL_DENVERTON=m diff --git a/baseconfig/x86/CONFIG_XEN_PVCALLS_BACKEND b/baseconfig/x86/CONFIG_XEN_PVCALLS_BACKEND new file mode 100644 index 000000000..3a5b2c46d --- /dev/null +++ b/baseconfig/x86/CONFIG_XEN_PVCALLS_BACKEND @@ -0,0 +1 @@ +# CONFIG_XEN_PVCALLS_BACKEND is not set diff --git a/baseconfig/x86/x86_64/CONFIG_AMD_MEM_ENCRYPT b/baseconfig/x86/x86_64/CONFIG_AMD_MEM_ENCRYPT new file mode 100644 index 000000000..f9eacfabc --- /dev/null +++ b/baseconfig/x86/x86_64/CONFIG_AMD_MEM_ENCRYPT @@ -0,0 +1 @@ +CONFIG_AMD_MEM_ENCRYPT=y diff --git a/baseconfig/x86/x86_64/CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT b/baseconfig/x86/x86_64/CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT new file mode 100644 index 000000000..e41f0cf8f --- /dev/null +++ b/baseconfig/x86/x86_64/CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT @@ -0,0 +1 @@ +# CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT is not set diff --git a/baseconfig/x86/x86_64/CONFIG_DEVICE_PRIVATE b/baseconfig/x86/x86_64/CONFIG_DEVICE_PRIVATE new file mode 100644 index 000000000..ef0a4ad5b --- /dev/null +++ b/baseconfig/x86/x86_64/CONFIG_DEVICE_PRIVATE @@ -0,0 +1 @@ +CONFIG_DEVICE_PRIVATE=y diff --git a/baseconfig/x86/x86_64/CONFIG_DEVICE_PUBLIC b/baseconfig/x86/x86_64/CONFIG_DEVICE_PUBLIC new file mode 100644 index 000000000..c790e941b --- /dev/null +++ b/baseconfig/x86/x86_64/CONFIG_DEVICE_PUBLIC @@ -0,0 +1 @@ +CONFIG_DEVICE_PUBLIC=y diff --git a/baseconfig/x86/x86_64/CONFIG_HMM_MIRROR b/baseconfig/x86/x86_64/CONFIG_HMM_MIRROR new file mode 100644 index 000000000..11dfee6c1 --- /dev/null +++ b/baseconfig/x86/x86_64/CONFIG_HMM_MIRROR @@ -0,0 +1 @@ +CONFIG_HMM_MIRROR=y diff --git a/baseconfig/x86/x86_64/CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT b/baseconfig/x86/x86_64/CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT new file mode 100644 index 000000000..4a06cfcc2 --- /dev/null +++ b/baseconfig/x86/x86_64/CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT @@ -0,0 +1 @@ +CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT=y diff --git a/baseconfig/x86/x86_64/CONFIG_NR_CPUS b/baseconfig/x86/x86_64/CONFIG_NR_CPUS index 441191641..27d187f4d 100644 --- a/baseconfig/x86/x86_64/CONFIG_NR_CPUS +++ b/baseconfig/x86/x86_64/CONFIG_NR_CPUS @@ -1 +1 @@ -CONFIG_NR_CPUS=8192 +CONFIG_NR_CPUS=1024 diff --git a/baseconfig/x86/x86_64/CONFIG_X86_5LEVEL b/baseconfig/x86/x86_64/CONFIG_X86_5LEVEL new file mode 100644 index 000000000..db301f396 --- /dev/null +++ b/baseconfig/x86/x86_64/CONFIG_X86_5LEVEL @@ -0,0 +1 @@ +# CONFIG_X86_5LEVEL is not set diff --git a/bcm2837-bluetooth-support.patch b/bcm2837-bluetooth-support.patch index bdba4aa28..c272c1efe 100644 --- a/bcm2837-bluetooth-support.patch +++ b/bcm2837-bluetooth-support.patch @@ -1,597 +1,3 @@ -From 98dc77d57169f51d100f8b0cb3e4d1e0911ef7a4 Mon Sep 17 00:00:00 2001 -From: Loic Poulain <loic.poulain@gmail.com> -Date: Tue, 4 Jul 2017 12:57:56 +0200 -Subject: Bluetooth: hci_bcm: Make bcm_request_irq fail if no IRQ resource - -In case of no IRQ resource associated to the bcm_device, requesting -IRQ should return an error in order to not enable low power mgmt. - -Signed-off-by: Loic Poulain <loic.poulain@gmail.com> -Reported-by: Ian Molton <ian@mnementh.co.uk> -Signed-off-by: Marcel Holtmann <marcel@holtmann.org> ---- - drivers/bluetooth/hci_bcm.c | 30 ++++++++++++++++-------------- - 1 file changed, 16 insertions(+), 14 deletions(-) - -diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c -index 6a662d0..6b42372 100644 ---- a/drivers/bluetooth/hci_bcm.c -+++ b/drivers/bluetooth/hci_bcm.c -@@ -176,7 +176,7 @@ static irqreturn_t bcm_host_wake(int irq, void *data) - static int bcm_request_irq(struct bcm_data *bcm) - { - struct bcm_device *bdev = bcm->dev; -- int err = 0; -+ int err; - - /* If this is not a platform device, do not enable PM functionalities */ - mutex_lock(&bcm_device_lock); -@@ -185,21 +185,23 @@ static int bcm_request_irq(struct bcm_data *bcm) - goto unlock; - } - -- if (bdev->irq > 0) { -- err = devm_request_irq(&bdev->pdev->dev, bdev->irq, -- bcm_host_wake, IRQF_TRIGGER_RISING, -- "host_wake", bdev); -- if (err) -- goto unlock; -+ if (bdev->irq <= 0) { -+ err = -EOPNOTSUPP; -+ goto unlock; -+ } - -- device_init_wakeup(&bdev->pdev->dev, true); -+ err = devm_request_irq(&bdev->pdev->dev, bdev->irq, bcm_host_wake, -+ IRQF_TRIGGER_RISING, "host_wake", bdev); -+ if (err) -+ goto unlock; - -- pm_runtime_set_autosuspend_delay(&bdev->pdev->dev, -- BCM_AUTOSUSPEND_DELAY); -- pm_runtime_use_autosuspend(&bdev->pdev->dev); -- pm_runtime_set_active(&bdev->pdev->dev); -- pm_runtime_enable(&bdev->pdev->dev); -- } -+ device_init_wakeup(&bdev->pdev->dev, true); -+ -+ pm_runtime_set_autosuspend_delay(&bdev->pdev->dev, -+ BCM_AUTOSUSPEND_DELAY); -+ pm_runtime_use_autosuspend(&bdev->pdev->dev); -+ pm_runtime_set_active(&bdev->pdev->dev); -+ pm_runtime_enable(&bdev->pdev->dev); - - unlock: - mutex_unlock(&bcm_device_lock); --- -cgit v1.1 - -From 74183a1c50a3c61e62d2e585107ea3c0b942a3ff Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann <marcel@holtmann.org> -Date: Wed, 16 Aug 2017 09:53:30 +0200 -Subject: Bluetooth: hci_bcm: Use operation speed of 4Mbps only for ACPI - devices - -Not all Broadcom controller support the 4Mbps operational speed on UART -devices. This is because the UART clock setting changes might not be -supported. - - < HCI Command: Broadcom Write UART Clock Setting (0x3f|0x0045) plen 1 - 01 . - > HCI Event: Command Complete (0x0e) plen 4 - Broadcom Write UART Clock Setting (0x3f|0x0045) ncmd 1 - Status: Unknown HCI Command (0x01) - -To support any operational speed higher than 3Mbps, support for this -command is required. With that respect it is better to not enforce any -operational speed by default. Only when its support is known, then allow -for higher operational speed. - -This patch assigns the 4Mbps opertional speed only for devices -discovered through ACPI and leave all others at the default 115200. - -Signed-off-by: Marcel Holtmann <marcel@holtmann.org> -Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> ---- - drivers/bluetooth/hci_bcm.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c -index 6b42372..1eb286a 100644 ---- a/drivers/bluetooth/hci_bcm.c -+++ b/drivers/bluetooth/hci_bcm.c -@@ -59,6 +59,7 @@ struct bcm_device { - bool clk_enabled; - - u32 init_speed; -+ u32 oper_speed; - int irq; - u8 irq_polarity; - -@@ -303,6 +304,7 @@ static int bcm_open(struct hci_uart *hu) - if (hu->tty->dev->parent == dev->pdev->dev.parent) { - bcm->dev = dev; - hu->init_speed = dev->init_speed; -+ hu->oper_speed = dev->oper_speed; - #ifdef CONFIG_PM - dev->hu = hu; - #endif -@@ -699,8 +701,10 @@ static int bcm_resource(struct acpi_resource *ares, void *data) - - case ACPI_RESOURCE_TYPE_SERIAL_BUS: - sb = &ares->data.uart_serial_bus; -- if (sb->type == ACPI_RESOURCE_SERIAL_TYPE_UART) -+ if (sb->type == ACPI_RESOURCE_SERIAL_TYPE_UART) { - dev->init_speed = sb->default_baud_rate; -+ dev->oper_speed = 4000000; -+ } - break; - - default: -@@ -853,7 +857,6 @@ static const struct hci_uart_proto bcm_proto = { - .name = "Broadcom", - .manufacturer = 15, - .init_speed = 115200, -- .oper_speed = 4000000, - .open = bcm_open, - .close = bcm_close, - .flush = bcm_flush, --- -cgit v1.1 - -From 33cd149e767be9afbab9fcd3d5165a2de62313c8 Mon Sep 17 00:00:00 2001 -From: Loic Poulain <loic.poulain@gmail.com> -Date: Thu, 17 Aug 2017 19:59:51 +0200 -Subject: Bluetooth: hci_bcm: Add serdev support - -Add basic support for Broadcom serial slave devices. -Probe the serial device, retrieve its maximum speed and -register a new hci uart device. - -Tested/compatible with bcm43438 (RPi3). - -Signed-off-by: Loic Poulain <loic.poulain@gmail.com> -Signed-off-by: Marcel Holtmann <marcel@holtmann.org> ---- - drivers/bluetooth/Kconfig | 1 + - drivers/bluetooth/hci_bcm.c | 85 +++++++++++++++++++++++++++++++++++++++++++-- - 2 files changed, 84 insertions(+), 2 deletions(-) - -diff --git a/drivers/bluetooth/Kconfig b/drivers/bluetooth/Kconfig -index 3a6ead6..fae5a74 100644 ---- a/drivers/bluetooth/Kconfig -+++ b/drivers/bluetooth/Kconfig -@@ -168,6 +168,7 @@ config BT_HCIUART_INTEL - config BT_HCIUART_BCM - bool "Broadcom protocol support" - depends on BT_HCIUART -+ depends on BT_HCIUART_SERDEV - select BT_HCIUART_H4 - select BT_BCM - help -diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c -index 1eb286a..34882f1 100644 ---- a/drivers/bluetooth/hci_bcm.c -+++ b/drivers/bluetooth/hci_bcm.c -@@ -27,6 +27,8 @@ - #include <linux/firmware.h> - #include <linux/module.h> - #include <linux/acpi.h> -+#include <linux/of.h> -+#include <linux/property.h> - #include <linux/platform_device.h> - #include <linux/clk.h> - #include <linux/gpio/consumer.h> -@@ -34,6 +36,7 @@ - #include <linux/interrupt.h> - #include <linux/dmi.h> - #include <linux/pm_runtime.h> -+#include <linux/serdev.h> - - #include <net/bluetooth/bluetooth.h> - #include <net/bluetooth/hci_core.h> -@@ -46,6 +49,7 @@ - - #define BCM_AUTOSUSPEND_DELAY 5000 /* default autosleep delay */ - -+/* platform device driver resources */ - struct bcm_device { - struct list_head list; - -@@ -69,6 +73,12 @@ struct bcm_device { - #endif - }; - -+/* serdev driver resources */ -+struct bcm_serdev { -+ struct hci_uart hu; -+}; -+ -+/* generic bcm uart resources */ - struct bcm_data { - struct sk_buff *rx_skb; - struct sk_buff_head txq; -@@ -80,6 +90,14 @@ struct bcm_data { - static DEFINE_MUTEX(bcm_device_lock); - static LIST_HEAD(bcm_device_list); - -+static inline void host_set_baudrate(struct hci_uart *hu, unsigned int speed) -+{ -+ if (hu->serdev) -+ serdev_device_set_baudrate(hu->serdev, speed); -+ else -+ hci_uart_set_baudrate(hu, speed); -+} -+ - static int bcm_set_baudrate(struct hci_uart *hu, unsigned int speed) - { - struct hci_dev *hdev = hu->hdev; -@@ -290,6 +308,14 @@ static int bcm_open(struct hci_uart *hu) - - hu->priv = bcm; - -+ /* If this is a serdev defined device, then only use -+ * serdev open primitive and skip the rest. -+ */ -+ if (hu->serdev) { -+ serdev_device_open(hu->serdev); -+ goto out; -+ } -+ - if (!hu->tty->dev) - goto out; - -@@ -325,6 +351,12 @@ static int bcm_close(struct hci_uart *hu) - - bt_dev_dbg(hu->hdev, "hu %p", hu); - -+ /* If this is a serdev defined device, only use serdev -+ * close primitive and then continue as usual. -+ */ -+ if (hu->serdev) -+ serdev_device_close(hu->serdev); -+ - /* Protect bcm->dev against removal of the device or driver */ - mutex_lock(&bcm_device_lock); - if (bcm_device_exists(bdev)) { -@@ -400,7 +432,7 @@ static int bcm_setup(struct hci_uart *hu) - speed = 0; - - if (speed) -- hci_uart_set_baudrate(hu, speed); -+ host_set_baudrate(hu, speed); - - /* Operational speed if any */ - if (hu->oper_speed) -@@ -413,7 +445,7 @@ static int bcm_setup(struct hci_uart *hu) - if (speed) { - err = bcm_set_baudrate(hu, speed); - if (!err) -- hci_uart_set_baudrate(hu, speed); -+ host_set_baudrate(hu, speed); - } - - finalize: -@@ -906,9 +938,57 @@ static struct platform_driver bcm_driver = { - }, - }; - -+static int bcm_serdev_probe(struct serdev_device *serdev) -+{ -+ struct bcm_serdev *bcmdev; -+ u32 speed; -+ int err; -+ -+ bcmdev = devm_kzalloc(&serdev->dev, sizeof(*bcmdev), GFP_KERNEL); -+ if (!bcmdev) -+ return -ENOMEM; -+ -+ bcmdev->hu.serdev = serdev; -+ serdev_device_set_drvdata(serdev, bcmdev); -+ -+ err = device_property_read_u32(&serdev->dev, "max-speed", &speed); -+ if (!err) -+ bcmdev->hu.oper_speed = speed; -+ -+ return hci_uart_register_device(&bcmdev->hu, &bcm_proto); -+} -+ -+static void bcm_serdev_remove(struct serdev_device *serdev) -+{ -+ struct bcm_serdev *bcmdev = serdev_device_get_drvdata(serdev); -+ -+ hci_uart_unregister_device(&bcmdev->hu); -+} -+ -+#ifdef CONFIG_OF -+static const struct of_device_id bcm_bluetooth_of_match[] = { -+ { .compatible = "brcm,bcm43438-bt" }, -+ { }, -+}; -+MODULE_DEVICE_TABLE(of, bcm_bluetooth_of_match); -+#endif -+ -+static struct serdev_device_driver bcm_serdev_driver = { -+ .probe = bcm_serdev_probe, -+ .remove = bcm_serdev_remove, -+ .driver = { -+ .name = "hci_uart_bcm", -+ .of_match_table = of_match_ptr(bcm_bluetooth_of_match), -+ }, -+}; -+ - int __init bcm_init(void) - { -+ /* For now, we need to keep both platform device -+ * driver (ACPI generated) and serdev driver (DT). -+ */ - platform_driver_register(&bcm_driver); -+ serdev_device_driver_register(&bcm_serdev_driver); - - return hci_uart_register_proto(&bcm_proto); - } -@@ -916,6 +996,7 @@ int __init bcm_init(void) - int __exit bcm_deinit(void) - { - platform_driver_unregister(&bcm_driver); -+ serdev_device_driver_unregister(&bcm_serdev_driver); - - return hci_uart_unregister_proto(&bcm_proto); - } --- -cgit v1.1 - -From 01d5e44ace8a20fc51e0d530f98acb3c365345a5 Mon Sep 17 00:00:00 2001 -From: Marcel Holtmann <marcel@holtmann.org> -Date: Thu, 17 Aug 2017 21:41:09 +0200 -Subject: Bluetooth: hci_bcm: Handle empty packet after firmware loading - -The Broadcom controller on the Raspberry Pi3 sends an empty packet with -packet type 0x00 after launching the firmware. This will cause logging -of errors. - - Bluetooth: hci0: Frame reassembly failed (-84) - -Since this seems to be an intented behaviour of the controller, handle -it gracefully by parsing that empty packet with packet type 0x00 and -then just simply report it as diagnostic packet. - -With that change no errors are logging and the packet itself is actually -recorded in the Bluetooth monitor traces. - - < HCI Command: Broadcom Launch RAM (0x3f|0x004e) plen 4 - Address: 0xffffffff - > HCI Event: Command Complete (0x0e) plen 4 - Broadcom Launch RAM (0x3f|0x004e) ncmd 1 - Status: Success (0x00) - = Vendor Diagnostic (len 0) - < HCI Command: Broadcom Update UART Baud Rate (0x3f|0x0018) plen 6 - 00 00 00 10 0e 00 ...... - > HCI Event: Command Complete (0x0e) plen 4 - Broadcom Update UART Baud Rate (0x3f|0x0018) ncmd 1 - Status: Success (0x00) - < HCI Command: Reset (0x03|0x0003) plen 0 - > HCI Event: Command Complete (0x0e) plen 4 - Reset (0x03|0x0003) ncmd 1 - Status: Success (0x00) - -Signed-off-by: Marcel Holtmann <marcel@holtmann.org> -Signed-off-by: Johan Hedberg <johan.hedberg@intel.com> ---- - drivers/bluetooth/hci_bcm.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c -index 34882f1..e254011 100644 ---- a/drivers/bluetooth/hci_bcm.c -+++ b/drivers/bluetooth/hci_bcm.c -@@ -44,6 +44,9 @@ - #include "btbcm.h" - #include "hci_uart.h" - -+#define BCM_NULL_PKT 0x00 -+#define BCM_NULL_SIZE 0 -+ - #define BCM_LM_DIAG_PKT 0x07 - #define BCM_LM_DIAG_SIZE 63 - -@@ -468,11 +471,19 @@ finalize: - .lsize = 0, \ - .maxlen = BCM_LM_DIAG_SIZE - -+#define BCM_RECV_NULL \ -+ .type = BCM_NULL_PKT, \ -+ .hlen = BCM_NULL_SIZE, \ -+ .loff = 0, \ -+ .lsize = 0, \ -+ .maxlen = BCM_NULL_SIZE -+ - static const struct h4_recv_pkt bcm_recv_pkts[] = { - { H4_RECV_ACL, .recv = hci_recv_frame }, - { H4_RECV_SCO, .recv = hci_recv_frame }, - { H4_RECV_EVENT, .recv = hci_recv_frame }, - { BCM_RECV_LM_DIAG, .recv = hci_recv_diag }, -+ { BCM_RECV_NULL, .recv = hci_recv_diag }, - }; - - static int bcm_recv(struct hci_uart *hu, const void *data, int count) --- -cgit v1.1 - -From c34dc3bfa7642fda423208579015d615f7becfa0 Mon Sep 17 00:00:00 2001 -From: Ian Molton <ian@mnementh.co.uk> -Date: Sat, 8 Jul 2017 17:37:41 +0100 -Subject: Bluetooth: hci_serdev: Introduce hci_uart_unregister_device() - -Several drivers have the same (and incorrect) code in their -_remove() handler. - -Coalesce this into a shared function. - -Signed-off-by: Ian Molton <ian@mnementh.co.uk> -Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> -Signed-off-by: Marcel Holtmann <marcel@holtmann.org> ---- - drivers/bluetooth/hci_serdev.c | 13 +++++++++++++ - drivers/bluetooth/hci_uart.h | 1 + - 2 files changed, 14 insertions(+) - -diff --git a/drivers/bluetooth/hci_serdev.c b/drivers/bluetooth/hci_serdev.c -index aea9301..b725ac4 100644 ---- a/drivers/bluetooth/hci_serdev.c -+++ b/drivers/bluetooth/hci_serdev.c -@@ -354,3 +354,16 @@ err_alloc: - return err; - } - EXPORT_SYMBOL_GPL(hci_uart_register_device); -+ -+void hci_uart_unregister_device(struct hci_uart *hu) -+{ -+ struct hci_dev *hdev = hu->hdev; -+ -+ hci_unregister_dev(hdev); -+ hci_free_dev(hdev); -+ -+ cancel_work_sync(&hu->write_work); -+ -+ hu->proto->close(hu); -+} -+EXPORT_SYMBOL_GPL(hci_uart_unregister_device); -diff --git a/drivers/bluetooth/hci_uart.h b/drivers/bluetooth/hci_uart.h -index c6e9e1c..d9cd95d 100644 ---- a/drivers/bluetooth/hci_uart.h -+++ b/drivers/bluetooth/hci_uart.h -@@ -112,6 +112,7 @@ struct hci_uart { - int hci_uart_register_proto(const struct hci_uart_proto *p); - int hci_uart_unregister_proto(const struct hci_uart_proto *p); - int hci_uart_register_device(struct hci_uart *hu, const struct hci_uart_proto *p); -+void hci_uart_unregister_device(struct hci_uart *hu); - - int hci_uart_tx_wakeup(struct hci_uart *hu); - int hci_uart_init_ready(struct hci_uart *hu); --- -cgit v1.1 - -From patchwork Thu Aug 17 17:59:48 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [v4,1/4] dt-bindings: net: bluetooth: Add broadcom-bluetooth -X-Patchwork-Submitter: Loic Poulain <loic.poulain@gmail.com> -X-Patchwork-Id: 802828 -Message-Id: <1502992791-10265-1-git-send-email-loic.poulain@gmail.com> -To: robh+dt@kernel.org, f.fainelli@gmail.com, rjui@broadcom.com, - marcel@holtmann.org, johan.hedberg@gmail.com, stefan.wahren@i2se.com -Cc: devicetree@vger.kernel.org, linux-bluetooth@vger.kernel.org, - linux-rpi-kernel@lists.infradead.org, Loic Poulain <loic.poulain@gmail.com> -Date: Thu, 17 Aug 2017 19:59:48 +0200 -From: Loic Poulain <loic.poulain@gmail.com> -List-Id: <devicetree.vger.kernel.org> - -Add binding document for serial bluetooth chips using -Broadcom protocol. - -Signed-off-by: Loic Poulain <loic.poulain@gmail.com> -Acked-by: Rob Herring <robh@kernel.org> -Acked-by: Rob Herring <robh@kernel.org> -Acked-by: Rob Herring <robh@kernel.org> ---- - v2: dt-bindings as separate patch - rebase on upcoming pi3 dts changes - v3: changes in bcm serdev drivers: - name refactoring and additional comments - Add generic host_set_baudrate method - Use agnostic device_property_read - v4: changes in doc and dts: - Add additional params to broadcom bt dt-bindings - Set the max baudrate to 2000000 instead of 921600 - use chosen/stdout-path instead of console= - remove useless earlyprintk - same changes in bcm283x.dtsi - - .../devicetree/bindings/net/broadcom-bluetooth.txt | 35 ++++++++++++++++++++++ - 1 file changed, 35 insertions(+) - create mode 100644 Documentation/devicetree/bindings/net/broadcom-bluetooth.txt - -diff --git a/Documentation/devicetree/bindings/net/broadcom-bluetooth.txt b/Documentation/devicetree/bindings/net/broadcom-bluetooth.txt -new file mode 100644 -index 0000000..4194ff7 ---- /dev/null -+++ b/Documentation/devicetree/bindings/net/broadcom-bluetooth.txt -@@ -0,0 +1,35 @@ -+Broadcom Bluetooth Chips -+--------------------- -+ -+This documents the binding structure and common properties for serial -+attached Broadcom devices. -+ -+Serial attached Broadcom devices shall be a child node of the host UART -+device the slave device is attached to. -+ -+Required properties: -+ -+ - compatible: should contain one of the following: -+ * "brcm,bcm43438-bt" -+ -+Optional properties: -+ -+ - max-speed: see Documentation/devicetree/bindings/serial/slave-device.txt -+ - shutdown-gpios: GPIO specifier, used to enable the BT module -+ - device-wakeup-gpios: GPIO specifier, used to wakeup the controller -+ - host-wakeup-gpios: GPIO specifier, used to wakeup the host processor -+ - clocks: clock specifier if external clock provided to the controller -+ - clock-names: should be "extclk" -+ -+ -+Example: -+ -+&uart2 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart2_pins>; -+ -+ bluetooth { -+ compatible = "brcm,bcm43438-bt"; -+ max-speed = <921600>; -+ }; -+}; -From a92507095467d77f4fd05f54ae8d299459c2c3a3 Mon Sep 17 00:00:00 2001 -From: Peter Robinson <pbrobinson@gmail.com> -Date: Sun, 10 Sep 2017 19:29:23 +0100 -Subject: [PATCH 1/2] ARM: dts: bcm283x: Use stdout-path instead of console - bootarg - -Add the serial port config to "chosen/stdout-path". -Create serial0/1 aliases referring to uart0 ant uart1 paths. -Remove unneeded earlyprintk. - -Signed-off-by: Loic Poulain <loic.poulain@xxxxxxxxx> -Signed-off-by: Peter Robinson <pbrobinson@gmail.com> ---- - arch/arm/boot/dts/bcm283x.dtsi | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi -index 431dcfc900c0..013431e3d7c3 100644 ---- a/arch/arm/boot/dts/bcm283x.dtsi -+++ b/arch/arm/boot/dts/bcm283x.dtsi -@@ -20,8 +20,13 @@ - #address-cells = <1>; - #size-cells = <1>; - -+ aliases { -+ serial0 = &uart0; -+ serial1 = &uart1; -+ }; -+ - chosen { -- bootargs = "earlyprintk console=ttyAMA0"; -+ stdout-path = "serial0:115200n8"; - }; - - thermal-zones { --- -2.13.5 - From 50252c318fe2fcfcbd0832fa835e7fd1fafd7d2d Mon Sep 17 00:00:00 2001 From: Peter Robinson <pbrobinson@gmail.com> Date: Sun, 10 Sep 2017 19:30:02 +0100 @@ -613,18 +19,6 @@ diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts b/arch/arm/boot/dts/bcm2837-r index 20725ca487f3..e4488cb3067e 100644 --- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts +++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts -@@ -8,6 +8,11 @@ - compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; - model = "Raspberry Pi 3 Model B"; - -+ chosen { -+ /* 8250 auxiliar UART instead of pl011 */ -+ stdout-path = "serial1:115200n8"; -+ }; -+ - memory { - reg = <0 0x40000000>; - }; @@ -24,6 +29,11 @@ pinctrl-names = "default"; pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>; diff --git a/bcm2837-move-dt.patch b/bcm2837-move-dt.patch deleted file mode 100644 index 018cf81d7..000000000 --- a/bcm2837-move-dt.patch +++ /dev/null @@ -1,516 +0,0 @@ -From 3bfe25fa9f8a56c5c877c7fd854d89238787c6d8 Mon Sep 17 00:00:00 2001 -From: Eric Anholt <eric@anholt.net> -Date: Wed, 26 Jul 2017 13:01:56 -0700 -Subject: ARM: dts: bcm283x: Move the BCM2837 DT contents from arm64 to arm. - -BCM2837 is somewhat unusual in that we build its DT on both arm32 and -arm64. Most devices are being run in arm32 mode. - -Having the body of the DT for 2837 separate from 2835/6 has been a -source of pain, as we often need to make changes that span both -directories simultaneously (for example, the thermal changes for 4.13, -or anything that changes the name of a node referenced by '&' from -board files). Other changes are made more complicated than they need -to be, such as the SDHOST enabling, because we have to split a single -logical change into a 283[56] half and a 2837 half. - -To fix this, make the stub board include file live in arm64 instead of -arm32, and keep all of BCM283x's contents in arm32. From here on, our -changes to DT contents can be submitted through a single tree. - -Signed-off-by: Eric Anholt <eric@anholt.net> -Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> ---- - arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 42 ++++++++++- - arch/arm/boot/dts/bcm2837.dtsi | 86 ++++++++++++++++++++++ - arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi | 1 - - arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts | 42 +---------- - arch/arm64/boot/dts/broadcom/bcm2837.dtsi | 86 ---------------------- - .../boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi | 1 - - .../boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi | 1 - - arch/arm64/boot/dts/broadcom/bcm283x.dtsi | 1 - - 8 files changed, 128 insertions(+), 132 deletions(-) - create mode 100644 arch/arm/boot/dts/bcm2837.dtsi - delete mode 120000 arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi - delete mode 100644 arch/arm64/boot/dts/broadcom/bcm2837.dtsi - delete mode 120000 arch/arm64/boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi - delete mode 120000 arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi - delete mode 120000 arch/arm64/boot/dts/broadcom/bcm283x.dtsi - -diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts -index c72a27d..972f14d 100644 ---- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts -+++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts -@@ -1 +1,41 @@ --#include "arm64/broadcom/bcm2837-rpi-3-b.dts" -+/dts-v1/; -+#include "bcm2837.dtsi" -+#include "bcm2835-rpi.dtsi" -+#include "bcm283x-rpi-smsc9514.dtsi" -+#include "bcm283x-rpi-usb-host.dtsi" -+ -+/ { -+ compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; -+ model = "Raspberry Pi 3 Model B"; -+ -+ memory { -+ reg = <0 0x40000000>; -+ }; -+ -+ leds { -+ act { -+ gpios = <&gpio 47 0>; -+ }; -+ }; -+}; -+ -+&uart1 { -+ status = "okay"; -+}; -+ -+/* SDHCI is used to control the SDIO for wireless */ -+&sdhci { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&emmc_gpio34>; -+ status = "okay"; -+ bus-width = <4>; -+ non-removable; -+}; -+ -+/* SDHOST is used to drive the SD card */ -+&sdhost { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&sdhost_gpio48>; -+ status = "okay"; -+ bus-width = <4>; -+}; -diff --git a/arch/arm/boot/dts/bcm2837.dtsi b/arch/arm/boot/dts/bcm2837.dtsi -new file mode 100644 -index 0000000..2d5de6f0 ---- /dev/null -+++ b/arch/arm/boot/dts/bcm2837.dtsi -@@ -0,0 +1,86 @@ -+#include "bcm283x.dtsi" -+ -+/ { -+ compatible = "brcm,bcm2837"; -+ -+ soc { -+ ranges = <0x7e000000 0x3f000000 0x1000000>, -+ <0x40000000 0x40000000 0x00001000>; -+ dma-ranges = <0xc0000000 0x00000000 0x3f000000>; -+ -+ local_intc: local_intc { -+ compatible = "brcm,bcm2836-l1-intc"; -+ reg = <0x40000000 0x100>; -+ interrupt-controller; -+ #interrupt-cells = <1>; -+ interrupt-parent = <&local_intc>; -+ }; -+ }; -+ -+ timer { -+ compatible = "arm,armv7-timer"; -+ interrupt-parent = <&local_intc>; -+ interrupts = <0>, // PHYS_SECURE_PPI -+ <1>, // PHYS_NONSECURE_PPI -+ <3>, // VIRT_PPI -+ <2>; // HYP_PPI -+ always-on; -+ }; -+ -+ cpus: cpus { -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ cpu0: cpu@0 { -+ device_type = "cpu"; -+ compatible = "arm,cortex-a53"; -+ reg = <0>; -+ enable-method = "spin-table"; -+ cpu-release-addr = <0x0 0x000000d8>; -+ }; -+ -+ cpu1: cpu@1 { -+ device_type = "cpu"; -+ compatible = "arm,cortex-a53"; -+ reg = <1>; -+ enable-method = "spin-table"; -+ cpu-release-addr = <0x0 0x000000e0>; -+ }; -+ -+ cpu2: cpu@2 { -+ device_type = "cpu"; -+ compatible = "arm,cortex-a53"; -+ reg = <2>; -+ enable-method = "spin-table"; -+ cpu-release-addr = <0x0 0x000000e8>; -+ }; -+ -+ cpu3: cpu@3 { -+ device_type = "cpu"; -+ compatible = "arm,cortex-a53"; -+ reg = <3>; -+ enable-method = "spin-table"; -+ cpu-release-addr = <0x0 0x000000f0>; -+ }; -+ }; -+}; -+ -+/* Make the BCM2835-style global interrupt controller be a child of the -+ * CPU-local interrupt controller. -+ */ -+&intc { -+ compatible = "brcm,bcm2836-armctrl-ic"; -+ reg = <0x7e00b200 0x200>; -+ interrupt-parent = <&local_intc>; -+ interrupts = <8>; -+}; -+ -+&cpu_thermal { -+ coefficients = <(-538) 412000>; -+}; -+ -+/* enable thermal sensor with the correct compatible property set */ -+&thermal { -+ compatible = "brcm,bcm2837-thermal"; -+ status = "okay"; -+}; -diff --git a/arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi b/arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi -deleted file mode 120000 -index 3937b77..0000000 ---- a/arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi -+++ /dev/null -@@ -1 +0,0 @@ --../../../../arm/boot/dts/bcm2835-rpi.dtsi -\ No newline at end of file -diff --git a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts -index 972f14d..699d340 100644 ---- a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts -+++ b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts -@@ -1,41 +1 @@ --/dts-v1/; --#include "bcm2837.dtsi" --#include "bcm2835-rpi.dtsi" --#include "bcm283x-rpi-smsc9514.dtsi" --#include "bcm283x-rpi-usb-host.dtsi" -- --/ { -- compatible = "raspberrypi,3-model-b", "brcm,bcm2837"; -- model = "Raspberry Pi 3 Model B"; -- -- memory { -- reg = <0 0x40000000>; -- }; -- -- leds { -- act { -- gpios = <&gpio 47 0>; -- }; -- }; --}; -- --&uart1 { -- status = "okay"; --}; -- --/* SDHCI is used to control the SDIO for wireless */ --&sdhci { -- pinctrl-names = "default"; -- pinctrl-0 = <&emmc_gpio34>; -- status = "okay"; -- bus-width = <4>; -- non-removable; --}; -- --/* SDHOST is used to drive the SD card */ --&sdhost { -- pinctrl-names = "default"; -- pinctrl-0 = <&sdhost_gpio48>; -- status = "okay"; -- bus-width = <4>; --}; -+#include "arm/bcm2837-rpi-3-b.dts" -diff --git a/arch/arm64/boot/dts/broadcom/bcm2837.dtsi b/arch/arm64/boot/dts/broadcom/bcm2837.dtsi -deleted file mode 100644 -index 2d5de6f0..0000000 ---- a/arch/arm64/boot/dts/broadcom/bcm2837.dtsi -+++ /dev/null -@@ -1,86 +0,0 @@ --#include "bcm283x.dtsi" -- --/ { -- compatible = "brcm,bcm2837"; -- -- soc { -- ranges = <0x7e000000 0x3f000000 0x1000000>, -- <0x40000000 0x40000000 0x00001000>; -- dma-ranges = <0xc0000000 0x00000000 0x3f000000>; -- -- local_intc: local_intc { -- compatible = "brcm,bcm2836-l1-intc"; -- reg = <0x40000000 0x100>; -- interrupt-controller; -- #interrupt-cells = <1>; -- interrupt-parent = <&local_intc>; -- }; -- }; -- -- timer { -- compatible = "arm,armv7-timer"; -- interrupt-parent = <&local_intc>; -- interrupts = <0>, // PHYS_SECURE_PPI -- <1>, // PHYS_NONSECURE_PPI -- <3>, // VIRT_PPI -- <2>; // HYP_PPI -- always-on; -- }; -- -- cpus: cpus { -- #address-cells = <1>; -- #size-cells = <0>; -- -- cpu0: cpu@0 { -- device_type = "cpu"; -- compatible = "arm,cortex-a53"; -- reg = <0>; -- enable-method = "spin-table"; -- cpu-release-addr = <0x0 0x000000d8>; -- }; -- -- cpu1: cpu@1 { -- device_type = "cpu"; -- compatible = "arm,cortex-a53"; -- reg = <1>; -- enable-method = "spin-table"; -- cpu-release-addr = <0x0 0x000000e0>; -- }; -- -- cpu2: cpu@2 { -- device_type = "cpu"; -- compatible = "arm,cortex-a53"; -- reg = <2>; -- enable-method = "spin-table"; -- cpu-release-addr = <0x0 0x000000e8>; -- }; -- -- cpu3: cpu@3 { -- device_type = "cpu"; -- compatible = "arm,cortex-a53"; -- reg = <3>; -- enable-method = "spin-table"; -- cpu-release-addr = <0x0 0x000000f0>; -- }; -- }; --}; -- --/* Make the BCM2835-style global interrupt controller be a child of the -- * CPU-local interrupt controller. -- */ --&intc { -- compatible = "brcm,bcm2836-armctrl-ic"; -- reg = <0x7e00b200 0x200>; -- interrupt-parent = <&local_intc>; -- interrupts = <8>; --}; -- --&cpu_thermal { -- coefficients = <(-538) 412000>; --}; -- --/* enable thermal sensor with the correct compatible property set */ --&thermal { -- compatible = "brcm,bcm2837-thermal"; -- status = "okay"; --}; -diff --git a/arch/arm64/boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi b/arch/arm64/boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi -deleted file mode 120000 -index dca7c05..0000000 ---- a/arch/arm64/boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi -+++ /dev/null -@@ -1 +0,0 @@ --../../../../arm/boot/dts/bcm283x-rpi-smsc9514.dtsi -\ No newline at end of file -diff --git a/arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi b/arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi -deleted file mode 120000 -index cbeebe3..0000000 ---- a/arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi -+++ /dev/null -@@ -1 +0,0 @@ --../../../../arm/boot/dts/bcm283x-rpi-usb-host.dtsi -\ No newline at end of file -diff --git a/arch/arm64/boot/dts/broadcom/bcm283x.dtsi b/arch/arm64/boot/dts/broadcom/bcm283x.dtsi -deleted file mode 120000 -index 5f54e4c..0000000 ---- a/arch/arm64/boot/dts/broadcom/bcm283x.dtsi -+++ /dev/null -@@ -1 +0,0 @@ --../../../../arm/boot/dts/bcm283x.dtsi -\ No newline at end of file --- -cgit v1.1 - -From 4188ea2aeb6dd8f99ab77662f463e41bc464a704 Mon Sep 17 00:00:00 2001 -From: Stefan Wahren <stefan.wahren@i2se.com> -Date: Sun, 30 Jul 2017 19:10:32 +0200 -Subject: ARM: bcm283x: Define UART pinmuxing on board level - -Until RPI 3 and Zero W the pl011 (uart0) was always on pin 14/15. So in -order to take care of them and other boards in the future, -we need to define UART pinmuxing on board level. - -This work based on Eric Anholt's patch "ARM: bcm2385: Don't force pl011 -onto pins 14/15." and Fabian Vogt's patch "ARM64: dts: bcm2837: assign -uart0 to BT and uart1 to pin headers". - -Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> -Reviewed-by: Eric Anholt <eric@anholt.net> -Signed-off-by: Eric Anholt <eric@anholt.net> ---- - arch/arm/boot/dts/bcm2835-rpi-a-plus.dts | 6 ++++++ - arch/arm/boot/dts/bcm2835-rpi-a.dts | 6 ++++++ - arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 6 ++++++ - arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts | 6 ++++++ - arch/arm/boot/dts/bcm2835-rpi-b.dts | 6 ++++++ - arch/arm/boot/dts/bcm2835-rpi-zero.dts | 6 ++++++ - arch/arm/boot/dts/bcm2835-rpi.dtsi | 2 +- - arch/arm/boot/dts/bcm2836-rpi-2-b.dts | 6 ++++++ - arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 10 ++++++++++ - 9 files changed, 53 insertions(+), 1 deletion(-) - -diff --git a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts -index d070454..9f86649 100644 ---- a/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts -+++ b/arch/arm/boot/dts/bcm2835-rpi-a-plus.dts -@@ -99,3 +99,9 @@ - &hdmi { - hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; - }; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_gpio14>; -+ status = "okay"; -+}; -diff --git a/arch/arm/boot/dts/bcm2835-rpi-a.dts b/arch/arm/boot/dts/bcm2835-rpi-a.dts -index 46d078e..4b1af06 100644 ---- a/arch/arm/boot/dts/bcm2835-rpi-a.dts -+++ b/arch/arm/boot/dts/bcm2835-rpi-a.dts -@@ -94,3 +94,9 @@ - &hdmi { - hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; - }; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_gpio14>; -+ status = "okay"; -+}; -diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts -index 432088e..a846f1e 100644 ---- a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts -+++ b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts -@@ -101,3 +101,9 @@ - &hdmi { - hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; - }; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_gpio14>; -+ status = "okay"; -+}; -diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts -index 4133bc2..e860964 100644 ---- a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts -+++ b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts -@@ -94,3 +94,9 @@ - &hdmi { - hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; - }; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_gpio14>; -+ status = "okay"; -+}; -diff --git a/arch/arm/boot/dts/bcm2835-rpi-b.dts b/arch/arm/boot/dts/bcm2835-rpi-b.dts -index 4d56fe3..5d77f3f 100644 ---- a/arch/arm/boot/dts/bcm2835-rpi-b.dts -+++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts -@@ -89,3 +89,9 @@ - &hdmi { - hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>; - }; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_gpio14>; -+ status = "okay"; -+}; -diff --git a/arch/arm/boot/dts/bcm2835-rpi-zero.dts b/arch/arm/boot/dts/bcm2835-rpi-zero.dts -index 79a20d5..7036240 100644 ---- a/arch/arm/boot/dts/bcm2835-rpi-zero.dts -+++ b/arch/arm/boot/dts/bcm2835-rpi-zero.dts -@@ -103,3 +103,9 @@ - &hdmi { - hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; - }; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_gpio14>; -+ status = "okay"; -+}; -diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi -index e55b362..e36c392 100644 ---- a/arch/arm/boot/dts/bcm2835-rpi.dtsi -+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi -@@ -39,7 +39,7 @@ - }; - - alt0: alt0 { -- brcm,pins = <4 5 7 8 9 10 11 14 15>; -+ brcm,pins = <4 5 7 8 9 10 11>; - brcm,function = <BCM2835_FSEL_ALT0>; - }; - }; -diff --git a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts -index bf19e8c..e8de414 100644 ---- a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts -+++ b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts -@@ -39,3 +39,9 @@ - &hdmi { - hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>; - }; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_gpio14>; -+ status = "okay"; -+}; -diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts -index 972f14d..20725ca 100644 ---- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts -+++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts -@@ -19,7 +19,17 @@ - }; - }; - -+/* uart0 communicates with the BT module */ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>; -+ status = "okay"; -+}; -+ -+/* uart1 is mapped to the pin header */ - &uart1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart1_gpio14>; - status = "okay"; - }; - --- -cgit v1.1 - diff --git a/bcm283x-vc4-fixes.patch b/bcm283x-vc4-fixes.patch deleted file mode 100644 index d17ff1873..000000000 --- a/bcm283x-vc4-fixes.patch +++ /dev/null @@ -1,1803 +0,0 @@ -From d74617cb4aebe5a4cb3eeda3070053ccfc36a0ae Mon Sep 17 00:00:00 2001 -From: Eric Anholt <eric@anholt.net> -Date: Tue, 25 Jul 2017 09:27:32 -0700 -Subject: [PATCH 1/6] drm/vc4: Demote user-accessible DRM_ERROR paths to - DRM_DEBUG. - -Userspace shouldn't be able to spam dmesg by passing bad arguments. -This has particularly become an issues since we started using a bad -argument to set_tiling to detect if set_tiling was supported. - -Signed-off-by: Eric Anholt <eric@anholt.net> -Fixes: 83753117f1de ("drm/vc4: Add get/set tiling ioctls.") -Link: https://patchwork.freedesktop.org/patch/msgid/20170725162733.28007-1-eric@anholt.net -Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com> ---- - drivers/gpu/drm/vc4/vc4_bo.c | 14 +++--- - drivers/gpu/drm/vc4/vc4_gem.c | 10 ++-- - drivers/gpu/drm/vc4/vc4_kms.c | 2 +- - drivers/gpu/drm/vc4/vc4_render_cl.c | 40 +++++++-------- - drivers/gpu/drm/vc4/vc4_validate.c | 78 +++++++++++++++--------------- - drivers/gpu/drm/vc4/vc4_validate_shaders.c | 72 +++++++++++++-------------- - 6 files changed, 108 insertions(+), 108 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c -index 487f96412d35..ede80199001d 100644 ---- a/drivers/gpu/drm/vc4/vc4_bo.c -+++ b/drivers/gpu/drm/vc4/vc4_bo.c -@@ -389,7 +389,7 @@ vc4_prime_export(struct drm_device *dev, struct drm_gem_object *obj, int flags) - struct vc4_bo *bo = to_vc4_bo(obj); - - if (bo->validated_shader) { -- DRM_ERROR("Attempting to export shader BO\n"); -+ DRM_DEBUG("Attempting to export shader BO\n"); - return ERR_PTR(-EINVAL); - } - -@@ -410,7 +410,7 @@ int vc4_mmap(struct file *filp, struct vm_area_struct *vma) - bo = to_vc4_bo(gem_obj); - - if (bo->validated_shader && (vma->vm_flags & VM_WRITE)) { -- DRM_ERROR("mmaping of shader BOs for writing not allowed.\n"); -+ DRM_DEBUG("mmaping of shader BOs for writing not allowed.\n"); - return -EINVAL; - } - -@@ -435,7 +435,7 @@ int vc4_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) - struct vc4_bo *bo = to_vc4_bo(obj); - - if (bo->validated_shader && (vma->vm_flags & VM_WRITE)) { -- DRM_ERROR("mmaping of shader BOs for writing not allowed.\n"); -+ DRM_DEBUG("mmaping of shader BOs for writing not allowed.\n"); - return -EINVAL; - } - -@@ -447,7 +447,7 @@ void *vc4_prime_vmap(struct drm_gem_object *obj) - struct vc4_bo *bo = to_vc4_bo(obj); - - if (bo->validated_shader) { -- DRM_ERROR("mmaping of shader BOs not allowed.\n"); -+ DRM_DEBUG("mmaping of shader BOs not allowed.\n"); - return ERR_PTR(-EINVAL); - } - -@@ -501,7 +501,7 @@ int vc4_mmap_bo_ioctl(struct drm_device *dev, void *data, - - gem_obj = drm_gem_object_lookup(file_priv, args->handle); - if (!gem_obj) { -- DRM_ERROR("Failed to look up GEM BO %d\n", args->handle); -+ DRM_DEBUG("Failed to look up GEM BO %d\n", args->handle); - return -EINVAL; - } - -@@ -605,7 +605,7 @@ int vc4_set_tiling_ioctl(struct drm_device *dev, void *data, - - gem_obj = drm_gem_object_lookup(file_priv, args->handle); - if (!gem_obj) { -- DRM_ERROR("Failed to look up GEM BO %d\n", args->handle); -+ DRM_DEBUG("Failed to look up GEM BO %d\n", args->handle); - return -ENOENT; - } - bo = to_vc4_bo(gem_obj); -@@ -636,7 +636,7 @@ int vc4_get_tiling_ioctl(struct drm_device *dev, void *data, - - gem_obj = drm_gem_object_lookup(file_priv, args->handle); - if (!gem_obj) { -- DRM_ERROR("Failed to look up GEM BO %d\n", args->handle); -+ DRM_DEBUG("Failed to look up GEM BO %d\n", args->handle); - return -ENOENT; - } - bo = to_vc4_bo(gem_obj); -diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c -index d5b821ad06af..a3e45e67f417 100644 ---- a/drivers/gpu/drm/vc4/vc4_gem.c -+++ b/drivers/gpu/drm/vc4/vc4_gem.c -@@ -659,7 +659,7 @@ vc4_cl_lookup_bos(struct drm_device *dev, - /* See comment on bo_index for why we have to check - * this. - */ -- DRM_ERROR("Rendering requires BOs to validate\n"); -+ DRM_DEBUG("Rendering requires BOs to validate\n"); - return -EINVAL; - } - -@@ -691,7 +691,7 @@ vc4_cl_lookup_bos(struct drm_device *dev, - struct drm_gem_object *bo = idr_find(&file_priv->object_idr, - handles[i]); - if (!bo) { -- DRM_ERROR("Failed to look up GEM BO %d: %d\n", -+ DRM_DEBUG("Failed to look up GEM BO %d: %d\n", - i, handles[i]); - ret = -EINVAL; - spin_unlock(&file_priv->table_lock); -@@ -729,7 +729,7 @@ vc4_get_bcl(struct drm_device *dev, struct vc4_exec_info *exec) - args->shader_rec_count >= (UINT_MAX / - sizeof(struct vc4_shader_state)) || - temp_size < exec_size) { -- DRM_ERROR("overflow in exec arguments\n"); -+ DRM_DEBUG("overflow in exec arguments\n"); - ret = -EINVAL; - goto fail; - } -@@ -974,7 +974,7 @@ vc4_wait_bo_ioctl(struct drm_device *dev, void *data, - - gem_obj = drm_gem_object_lookup(file_priv, args->handle); - if (!gem_obj) { -- DRM_ERROR("Failed to look up GEM BO %d\n", args->handle); -+ DRM_DEBUG("Failed to look up GEM BO %d\n", args->handle); - return -EINVAL; - } - bo = to_vc4_bo(gem_obj); -@@ -1009,7 +1009,7 @@ vc4_submit_cl_ioctl(struct drm_device *dev, void *data, - int ret = 0; - - if ((args->flags & ~VC4_SUBMIT_CL_USE_CLEAR_COLOR) != 0) { -- DRM_ERROR("Unknown flags: 0x%02x\n", args->flags); -+ DRM_DEBUG("Unknown flags: 0x%02x\n", args->flags); - return -EINVAL; - } - -diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c -index bc6ecdc6f104..b2c55eb09ca3 100644 ---- a/drivers/gpu/drm/vc4/vc4_kms.c -+++ b/drivers/gpu/drm/vc4/vc4_kms.c -@@ -204,7 +204,7 @@ static struct drm_framebuffer *vc4_fb_create(struct drm_device *dev, - gem_obj = drm_gem_object_lookup(file_priv, - mode_cmd->handles[0]); - if (!gem_obj) { -- DRM_ERROR("Failed to look up GEM BO %d\n", -+ DRM_DEBUG("Failed to look up GEM BO %d\n", - mode_cmd->handles[0]); - return ERR_PTR(-ENOENT); - } -diff --git a/drivers/gpu/drm/vc4/vc4_render_cl.c b/drivers/gpu/drm/vc4/vc4_render_cl.c -index 5dc19429d4ae..da3bfd53f0bd 100644 ---- a/drivers/gpu/drm/vc4/vc4_render_cl.c -+++ b/drivers/gpu/drm/vc4/vc4_render_cl.c -@@ -378,14 +378,14 @@ static int vc4_full_res_bounds_check(struct vc4_exec_info *exec, - u32 render_tiles_stride = DIV_ROUND_UP(exec->args->width, 32); - - if (surf->offset > obj->base.size) { -- DRM_ERROR("surface offset %d > BO size %zd\n", -+ DRM_DEBUG("surface offset %d > BO size %zd\n", - surf->offset, obj->base.size); - return -EINVAL; - } - - if ((obj->base.size - surf->offset) / VC4_TILE_BUFFER_SIZE < - render_tiles_stride * args->max_y_tile + args->max_x_tile) { -- DRM_ERROR("MSAA tile %d, %d out of bounds " -+ DRM_DEBUG("MSAA tile %d, %d out of bounds " - "(bo size %zd, offset %d).\n", - args->max_x_tile, args->max_y_tile, - obj->base.size, -@@ -401,7 +401,7 @@ static int vc4_rcl_msaa_surface_setup(struct vc4_exec_info *exec, - struct drm_vc4_submit_rcl_surface *surf) - { - if (surf->flags != 0 || surf->bits != 0) { -- DRM_ERROR("MSAA surface had nonzero flags/bits\n"); -+ DRM_DEBUG("MSAA surface had nonzero flags/bits\n"); - return -EINVAL; - } - -@@ -415,7 +415,7 @@ static int vc4_rcl_msaa_surface_setup(struct vc4_exec_info *exec, - exec->rcl_write_bo[exec->rcl_write_bo_count++] = *obj; - - if (surf->offset & 0xf) { -- DRM_ERROR("MSAA write must be 16b aligned.\n"); -+ DRM_DEBUG("MSAA write must be 16b aligned.\n"); - return -EINVAL; - } - -@@ -437,7 +437,7 @@ static int vc4_rcl_surface_setup(struct vc4_exec_info *exec, - int ret; - - if (surf->flags & ~VC4_SUBMIT_RCL_SURFACE_READ_IS_FULL_RES) { -- DRM_ERROR("Extra flags set\n"); -+ DRM_DEBUG("Extra flags set\n"); - return -EINVAL; - } - -@@ -453,12 +453,12 @@ static int vc4_rcl_surface_setup(struct vc4_exec_info *exec, - - if (surf->flags & VC4_SUBMIT_RCL_SURFACE_READ_IS_FULL_RES) { - if (surf == &exec->args->zs_write) { -- DRM_ERROR("general zs write may not be a full-res.\n"); -+ DRM_DEBUG("general zs write may not be a full-res.\n"); - return -EINVAL; - } - - if (surf->bits != 0) { -- DRM_ERROR("load/store general bits set with " -+ DRM_DEBUG("load/store general bits set with " - "full res load/store.\n"); - return -EINVAL; - } -@@ -473,19 +473,19 @@ static int vc4_rcl_surface_setup(struct vc4_exec_info *exec, - if (surf->bits & ~(VC4_LOADSTORE_TILE_BUFFER_TILING_MASK | - VC4_LOADSTORE_TILE_BUFFER_BUFFER_MASK | - VC4_LOADSTORE_TILE_BUFFER_FORMAT_MASK)) { -- DRM_ERROR("Unknown bits in load/store: 0x%04x\n", -+ DRM_DEBUG("Unknown bits in load/store: 0x%04x\n", - surf->bits); - return -EINVAL; - } - - if (tiling > VC4_TILING_FORMAT_LT) { -- DRM_ERROR("Bad tiling format\n"); -+ DRM_DEBUG("Bad tiling format\n"); - return -EINVAL; - } - - if (buffer == VC4_LOADSTORE_TILE_BUFFER_ZS) { - if (format != 0) { -- DRM_ERROR("No color format should be set for ZS\n"); -+ DRM_DEBUG("No color format should be set for ZS\n"); - return -EINVAL; - } - cpp = 4; -@@ -499,16 +499,16 @@ static int vc4_rcl_surface_setup(struct vc4_exec_info *exec, - cpp = 4; - break; - default: -- DRM_ERROR("Bad tile buffer format\n"); -+ DRM_DEBUG("Bad tile buffer format\n"); - return -EINVAL; - } - } else { -- DRM_ERROR("Bad load/store buffer %d.\n", buffer); -+ DRM_DEBUG("Bad load/store buffer %d.\n", buffer); - return -EINVAL; - } - - if (surf->offset & 0xf) { -- DRM_ERROR("load/store buffer must be 16b aligned.\n"); -+ DRM_DEBUG("load/store buffer must be 16b aligned.\n"); - return -EINVAL; - } - -@@ -533,7 +533,7 @@ vc4_rcl_render_config_surface_setup(struct vc4_exec_info *exec, - int cpp; - - if (surf->flags != 0) { -- DRM_ERROR("No flags supported on render config.\n"); -+ DRM_DEBUG("No flags supported on render config.\n"); - return -EINVAL; - } - -@@ -541,7 +541,7 @@ vc4_rcl_render_config_surface_setup(struct vc4_exec_info *exec, - VC4_RENDER_CONFIG_FORMAT_MASK | - VC4_RENDER_CONFIG_MS_MODE_4X | - VC4_RENDER_CONFIG_DECIMATE_MODE_4X)) { -- DRM_ERROR("Unknown bits in render config: 0x%04x\n", -+ DRM_DEBUG("Unknown bits in render config: 0x%04x\n", - surf->bits); - return -EINVAL; - } -@@ -556,7 +556,7 @@ vc4_rcl_render_config_surface_setup(struct vc4_exec_info *exec, - exec->rcl_write_bo[exec->rcl_write_bo_count++] = *obj; - - if (tiling > VC4_TILING_FORMAT_LT) { -- DRM_ERROR("Bad tiling format\n"); -+ DRM_DEBUG("Bad tiling format\n"); - return -EINVAL; - } - -@@ -569,7 +569,7 @@ vc4_rcl_render_config_surface_setup(struct vc4_exec_info *exec, - cpp = 4; - break; - default: -- DRM_ERROR("Bad tile buffer format\n"); -+ DRM_DEBUG("Bad tile buffer format\n"); - return -EINVAL; - } - -@@ -590,7 +590,7 @@ int vc4_get_rcl(struct drm_device *dev, struct vc4_exec_info *exec) - - if (args->min_x_tile > args->max_x_tile || - args->min_y_tile > args->max_y_tile) { -- DRM_ERROR("Bad render tile set (%d,%d)-(%d,%d)\n", -+ DRM_DEBUG("Bad render tile set (%d,%d)-(%d,%d)\n", - args->min_x_tile, args->min_y_tile, - args->max_x_tile, args->max_y_tile); - return -EINVAL; -@@ -599,7 +599,7 @@ int vc4_get_rcl(struct drm_device *dev, struct vc4_exec_info *exec) - if (has_bin && - (args->max_x_tile > exec->bin_tiles_x || - args->max_y_tile > exec->bin_tiles_y)) { -- DRM_ERROR("Render tiles (%d,%d) outside of bin config " -+ DRM_DEBUG("Render tiles (%d,%d) outside of bin config " - "(%d,%d)\n", - args->max_x_tile, args->max_y_tile, - exec->bin_tiles_x, exec->bin_tiles_y); -@@ -642,7 +642,7 @@ int vc4_get_rcl(struct drm_device *dev, struct vc4_exec_info *exec) - */ - if (!setup.color_write && !setup.zs_write && - !setup.msaa_color_write && !setup.msaa_zs_write) { -- DRM_ERROR("RCL requires color or Z/S write\n"); -+ DRM_DEBUG("RCL requires color or Z/S write\n"); - return -EINVAL; - } - -diff --git a/drivers/gpu/drm/vc4/vc4_validate.c b/drivers/gpu/drm/vc4/vc4_validate.c -index 814b512c6b9a..2db485abb186 100644 ---- a/drivers/gpu/drm/vc4/vc4_validate.c -+++ b/drivers/gpu/drm/vc4/vc4_validate.c -@@ -109,7 +109,7 @@ vc4_use_bo(struct vc4_exec_info *exec, uint32_t hindex) - struct vc4_bo *bo; - - if (hindex >= exec->bo_count) { -- DRM_ERROR("BO index %d greater than BO count %d\n", -+ DRM_DEBUG("BO index %d greater than BO count %d\n", - hindex, exec->bo_count); - return NULL; - } -@@ -117,7 +117,7 @@ vc4_use_bo(struct vc4_exec_info *exec, uint32_t hindex) - bo = to_vc4_bo(&obj->base); - - if (bo->validated_shader) { -- DRM_ERROR("Trying to use shader BO as something other than " -+ DRM_DEBUG("Trying to use shader BO as something other than " - "a shader\n"); - return NULL; - } -@@ -172,7 +172,7 @@ vc4_check_tex_size(struct vc4_exec_info *exec, struct drm_gem_cma_object *fbo, - * our math. - */ - if (width > 4096 || height > 4096) { -- DRM_ERROR("Surface dimensions (%d,%d) too large", -+ DRM_DEBUG("Surface dimensions (%d,%d) too large", - width, height); - return false; - } -@@ -191,7 +191,7 @@ vc4_check_tex_size(struct vc4_exec_info *exec, struct drm_gem_cma_object *fbo, - aligned_height = round_up(height, utile_h); - break; - default: -- DRM_ERROR("buffer tiling %d unsupported\n", tiling_format); -+ DRM_DEBUG("buffer tiling %d unsupported\n", tiling_format); - return false; - } - -@@ -200,7 +200,7 @@ vc4_check_tex_size(struct vc4_exec_info *exec, struct drm_gem_cma_object *fbo, - - if (size + offset < size || - size + offset > fbo->base.size) { -- DRM_ERROR("Overflow in %dx%d (%dx%d) fbo size (%d + %d > %zd)\n", -+ DRM_DEBUG("Overflow in %dx%d (%dx%d) fbo size (%d + %d > %zd)\n", - width, height, - aligned_width, aligned_height, - size, offset, fbo->base.size); -@@ -214,7 +214,7 @@ static int - validate_flush(VALIDATE_ARGS) - { - if (!validate_bin_pos(exec, untrusted, exec->args->bin_cl_size - 1)) { -- DRM_ERROR("Bin CL must end with VC4_PACKET_FLUSH\n"); -+ DRM_DEBUG("Bin CL must end with VC4_PACKET_FLUSH\n"); - return -EINVAL; - } - exec->found_flush = true; -@@ -226,13 +226,13 @@ static int - validate_start_tile_binning(VALIDATE_ARGS) - { - if (exec->found_start_tile_binning_packet) { -- DRM_ERROR("Duplicate VC4_PACKET_START_TILE_BINNING\n"); -+ DRM_DEBUG("Duplicate VC4_PACKET_START_TILE_BINNING\n"); - return -EINVAL; - } - exec->found_start_tile_binning_packet = true; - - if (!exec->found_tile_binning_mode_config_packet) { -- DRM_ERROR("missing VC4_PACKET_TILE_BINNING_MODE_CONFIG\n"); -+ DRM_DEBUG("missing VC4_PACKET_TILE_BINNING_MODE_CONFIG\n"); - return -EINVAL; - } - -@@ -243,7 +243,7 @@ static int - validate_increment_semaphore(VALIDATE_ARGS) - { - if (!validate_bin_pos(exec, untrusted, exec->args->bin_cl_size - 2)) { -- DRM_ERROR("Bin CL must end with " -+ DRM_DEBUG("Bin CL must end with " - "VC4_PACKET_INCREMENT_SEMAPHORE\n"); - return -EINVAL; - } -@@ -264,7 +264,7 @@ validate_indexed_prim_list(VALIDATE_ARGS) - - /* Check overflow condition */ - if (exec->shader_state_count == 0) { -- DRM_ERROR("shader state must precede primitives\n"); -+ DRM_DEBUG("shader state must precede primitives\n"); - return -EINVAL; - } - shader_state = &exec->shader_state[exec->shader_state_count - 1]; -@@ -281,7 +281,7 @@ validate_indexed_prim_list(VALIDATE_ARGS) - - if (offset > ib->base.size || - (ib->base.size - offset) / index_size < length) { -- DRM_ERROR("IB access overflow (%d + %d*%d > %zd)\n", -+ DRM_DEBUG("IB access overflow (%d + %d*%d > %zd)\n", - offset, length, index_size, ib->base.size); - return -EINVAL; - } -@@ -301,13 +301,13 @@ validate_gl_array_primitive(VALIDATE_ARGS) - - /* Check overflow condition */ - if (exec->shader_state_count == 0) { -- DRM_ERROR("shader state must precede primitives\n"); -+ DRM_DEBUG("shader state must precede primitives\n"); - return -EINVAL; - } - shader_state = &exec->shader_state[exec->shader_state_count - 1]; - - if (length + base_index < length) { -- DRM_ERROR("primitive vertex count overflow\n"); -+ DRM_DEBUG("primitive vertex count overflow\n"); - return -EINVAL; - } - max_index = length + base_index - 1; -@@ -324,7 +324,7 @@ validate_gl_shader_state(VALIDATE_ARGS) - uint32_t i = exec->shader_state_count++; - - if (i >= exec->shader_state_size) { -- DRM_ERROR("More requests for shader states than declared\n"); -+ DRM_DEBUG("More requests for shader states than declared\n"); - return -EINVAL; - } - -@@ -332,7 +332,7 @@ validate_gl_shader_state(VALIDATE_ARGS) - exec->shader_state[i].max_index = 0; - - if (exec->shader_state[i].addr & ~0xf) { -- DRM_ERROR("high bits set in GL shader rec reference\n"); -+ DRM_DEBUG("high bits set in GL shader rec reference\n"); - return -EINVAL; - } - -@@ -356,7 +356,7 @@ validate_tile_binning_config(VALIDATE_ARGS) - int bin_slot; - - if (exec->found_tile_binning_mode_config_packet) { -- DRM_ERROR("Duplicate VC4_PACKET_TILE_BINNING_MODE_CONFIG\n"); -+ DRM_DEBUG("Duplicate VC4_PACKET_TILE_BINNING_MODE_CONFIG\n"); - return -EINVAL; - } - exec->found_tile_binning_mode_config_packet = true; -@@ -368,14 +368,14 @@ validate_tile_binning_config(VALIDATE_ARGS) - - if (exec->bin_tiles_x == 0 || - exec->bin_tiles_y == 0) { -- DRM_ERROR("Tile binning config of %dx%d too small\n", -+ DRM_DEBUG("Tile binning config of %dx%d too small\n", - exec->bin_tiles_x, exec->bin_tiles_y); - return -EINVAL; - } - - if (flags & (VC4_BIN_CONFIG_DB_NON_MS | - VC4_BIN_CONFIG_TILE_BUFFER_64BIT)) { -- DRM_ERROR("unsupported binning config flags 0x%02x\n", flags); -+ DRM_DEBUG("unsupported binning config flags 0x%02x\n", flags); - return -EINVAL; - } - -@@ -493,20 +493,20 @@ vc4_validate_bin_cl(struct drm_device *dev, - const struct cmd_info *info; - - if (cmd >= ARRAY_SIZE(cmd_info)) { -- DRM_ERROR("0x%08x: packet %d out of bounds\n", -+ DRM_DEBUG("0x%08x: packet %d out of bounds\n", - src_offset, cmd); - return -EINVAL; - } - - info = &cmd_info[cmd]; - if (!info->name) { -- DRM_ERROR("0x%08x: packet %d invalid\n", -+ DRM_DEBUG("0x%08x: packet %d invalid\n", - src_offset, cmd); - return -EINVAL; - } - - if (src_offset + info->len > len) { -- DRM_ERROR("0x%08x: packet %d (%s) length 0x%08x " -+ DRM_DEBUG("0x%08x: packet %d (%s) length 0x%08x " - "exceeds bounds (0x%08x)\n", - src_offset, cmd, info->name, info->len, - src_offset + len); -@@ -519,7 +519,7 @@ vc4_validate_bin_cl(struct drm_device *dev, - if (info->func && info->func(exec, - dst_pkt + 1, - src_pkt + 1)) { -- DRM_ERROR("0x%08x: packet %d (%s) failed to validate\n", -+ DRM_DEBUG("0x%08x: packet %d (%s) failed to validate\n", - src_offset, cmd, info->name); - return -EINVAL; - } -@@ -537,7 +537,7 @@ vc4_validate_bin_cl(struct drm_device *dev, - exec->ct0ea = exec->ct0ca + dst_offset; - - if (!exec->found_start_tile_binning_packet) { -- DRM_ERROR("Bin CL missing VC4_PACKET_START_TILE_BINNING\n"); -+ DRM_DEBUG("Bin CL missing VC4_PACKET_START_TILE_BINNING\n"); - return -EINVAL; - } - -@@ -549,7 +549,7 @@ vc4_validate_bin_cl(struct drm_device *dev, - * semaphore increment. - */ - if (!exec->found_increment_semaphore_packet || !exec->found_flush) { -- DRM_ERROR("Bin CL missing VC4_PACKET_INCREMENT_SEMAPHORE + " -+ DRM_DEBUG("Bin CL missing VC4_PACKET_INCREMENT_SEMAPHORE + " - "VC4_PACKET_FLUSH\n"); - return -EINVAL; - } -@@ -588,11 +588,11 @@ reloc_tex(struct vc4_exec_info *exec, - uint32_t remaining_size = tex->base.size - p0; - - if (p0 > tex->base.size - 4) { -- DRM_ERROR("UBO offset greater than UBO size\n"); -+ DRM_DEBUG("UBO offset greater than UBO size\n"); - goto fail; - } - if (p1 > remaining_size - 4) { -- DRM_ERROR("UBO clamp would allow reads " -+ DRM_DEBUG("UBO clamp would allow reads " - "outside of UBO\n"); - goto fail; - } -@@ -612,14 +612,14 @@ reloc_tex(struct vc4_exec_info *exec, - if (VC4_GET_FIELD(p3, VC4_TEX_P2_PTYPE) == - VC4_TEX_P2_PTYPE_CUBE_MAP_STRIDE) { - if (cube_map_stride) { -- DRM_ERROR("Cube map stride set twice\n"); -+ DRM_DEBUG("Cube map stride set twice\n"); - goto fail; - } - - cube_map_stride = p3 & VC4_TEX_P2_CMST_MASK; - } - if (!cube_map_stride) { -- DRM_ERROR("Cube map stride not set\n"); -+ DRM_DEBUG("Cube map stride not set\n"); - goto fail; - } - } -@@ -660,7 +660,7 @@ reloc_tex(struct vc4_exec_info *exec, - case VC4_TEXTURE_TYPE_RGBA64: - case VC4_TEXTURE_TYPE_YUV422R: - default: -- DRM_ERROR("Texture format %d unsupported\n", type); -+ DRM_DEBUG("Texture format %d unsupported\n", type); - goto fail; - } - utile_w = utile_width(cpp); -@@ -713,7 +713,7 @@ reloc_tex(struct vc4_exec_info *exec, - level_size = aligned_width * cpp * aligned_height; - - if (offset < level_size) { -- DRM_ERROR("Level %d (%dx%d -> %dx%d) size %db " -+ DRM_DEBUG("Level %d (%dx%d -> %dx%d) size %db " - "overflowed buffer bounds (offset %d)\n", - i, level_width, level_height, - aligned_width, aligned_height, -@@ -764,7 +764,7 @@ validate_gl_shader_rec(struct drm_device *dev, - - nr_relocs = ARRAY_SIZE(shader_reloc_offsets) + nr_attributes; - if (nr_relocs * 4 > exec->shader_rec_size) { -- DRM_ERROR("overflowed shader recs reading %d handles " -+ DRM_DEBUG("overflowed shader recs reading %d handles " - "from %d bytes left\n", - nr_relocs, exec->shader_rec_size); - return -EINVAL; -@@ -774,7 +774,7 @@ validate_gl_shader_rec(struct drm_device *dev, - exec->shader_rec_size -= nr_relocs * 4; - - if (packet_size > exec->shader_rec_size) { -- DRM_ERROR("overflowed shader recs copying %db packet " -+ DRM_DEBUG("overflowed shader recs copying %db packet " - "from %d bytes left\n", - packet_size, exec->shader_rec_size); - return -EINVAL; -@@ -794,7 +794,7 @@ validate_gl_shader_rec(struct drm_device *dev, - - for (i = 0; i < shader_reloc_count; i++) { - if (src_handles[i] > exec->bo_count) { -- DRM_ERROR("Shader handle %d too big\n", src_handles[i]); -+ DRM_DEBUG("Shader handle %d too big\n", src_handles[i]); - return -EINVAL; - } - -@@ -810,13 +810,13 @@ validate_gl_shader_rec(struct drm_device *dev, - - if (((*(uint16_t *)pkt_u & VC4_SHADER_FLAG_FS_SINGLE_THREAD) == 0) != - to_vc4_bo(&bo[0]->base)->validated_shader->is_threaded) { -- DRM_ERROR("Thread mode of CL and FS do not match\n"); -+ DRM_DEBUG("Thread mode of CL and FS do not match\n"); - return -EINVAL; - } - - if (to_vc4_bo(&bo[1]->base)->validated_shader->is_threaded || - to_vc4_bo(&bo[2]->base)->validated_shader->is_threaded) { -- DRM_ERROR("cs and vs cannot be threaded\n"); -+ DRM_DEBUG("cs and vs cannot be threaded\n"); - return -EINVAL; - } - -@@ -831,7 +831,7 @@ validate_gl_shader_rec(struct drm_device *dev, - *(uint32_t *)(pkt_v + o) = bo[i]->paddr + src_offset; - - if (src_offset != 0) { -- DRM_ERROR("Shaders must be at offset 0 of " -+ DRM_DEBUG("Shaders must be at offset 0 of " - "the BO.\n"); - return -EINVAL; - } -@@ -842,7 +842,7 @@ validate_gl_shader_rec(struct drm_device *dev, - - if (validated_shader->uniforms_src_size > - exec->uniforms_size) { -- DRM_ERROR("Uniforms src buffer overflow\n"); -+ DRM_DEBUG("Uniforms src buffer overflow\n"); - return -EINVAL; - } - -@@ -900,7 +900,7 @@ validate_gl_shader_rec(struct drm_device *dev, - - if (vbo->base.size < offset || - vbo->base.size - offset < attr_size) { -- DRM_ERROR("BO offset overflow (%d + %d > %zu)\n", -+ DRM_DEBUG("BO offset overflow (%d + %d > %zu)\n", - offset, attr_size, vbo->base.size); - return -EINVAL; - } -@@ -909,7 +909,7 @@ validate_gl_shader_rec(struct drm_device *dev, - max_index = ((vbo->base.size - offset - attr_size) / - stride); - if (state->max_index > max_index) { -- DRM_ERROR("primitives use index %d out of " -+ DRM_DEBUG("primitives use index %d out of " - "supplied %d\n", - state->max_index, max_index); - return -EINVAL; -diff --git a/drivers/gpu/drm/vc4/vc4_validate_shaders.c b/drivers/gpu/drm/vc4/vc4_validate_shaders.c -index 0b2df5c6efb4..d3f15bf60900 100644 ---- a/drivers/gpu/drm/vc4/vc4_validate_shaders.c -+++ b/drivers/gpu/drm/vc4/vc4_validate_shaders.c -@@ -200,7 +200,7 @@ check_tmu_write(struct vc4_validated_shader_info *validated_shader, - uint32_t clamp_reg, clamp_offset; - - if (sig == QPU_SIG_SMALL_IMM) { -- DRM_ERROR("direct TMU read used small immediate\n"); -+ DRM_DEBUG("direct TMU read used small immediate\n"); - return false; - } - -@@ -209,7 +209,7 @@ check_tmu_write(struct vc4_validated_shader_info *validated_shader, - */ - if (is_mul || - QPU_GET_FIELD(inst, QPU_OP_ADD) != QPU_A_ADD) { -- DRM_ERROR("direct TMU load wasn't an add\n"); -+ DRM_DEBUG("direct TMU load wasn't an add\n"); - return false; - } - -@@ -220,13 +220,13 @@ check_tmu_write(struct vc4_validated_shader_info *validated_shader, - */ - clamp_reg = raddr_add_a_to_live_reg_index(inst); - if (clamp_reg == ~0) { -- DRM_ERROR("direct TMU load wasn't clamped\n"); -+ DRM_DEBUG("direct TMU load wasn't clamped\n"); - return false; - } - - clamp_offset = validation_state->live_min_clamp_offsets[clamp_reg]; - if (clamp_offset == ~0) { -- DRM_ERROR("direct TMU load wasn't clamped\n"); -+ DRM_DEBUG("direct TMU load wasn't clamped\n"); - return false; - } - -@@ -238,7 +238,7 @@ check_tmu_write(struct vc4_validated_shader_info *validated_shader, - - if (!(add_b == QPU_MUX_A && raddr_a == QPU_R_UNIF) && - !(add_b == QPU_MUX_B && raddr_b == QPU_R_UNIF)) { -- DRM_ERROR("direct TMU load didn't add to a uniform\n"); -+ DRM_DEBUG("direct TMU load didn't add to a uniform\n"); - return false; - } - -@@ -246,14 +246,14 @@ check_tmu_write(struct vc4_validated_shader_info *validated_shader, - } else { - if (raddr_a == QPU_R_UNIF || (sig != QPU_SIG_SMALL_IMM && - raddr_b == QPU_R_UNIF)) { -- DRM_ERROR("uniform read in the same instruction as " -+ DRM_DEBUG("uniform read in the same instruction as " - "texture setup.\n"); - return false; - } - } - - if (validation_state->tmu_write_count[tmu] >= 4) { -- DRM_ERROR("TMU%d got too many parameters before dispatch\n", -+ DRM_DEBUG("TMU%d got too many parameters before dispatch\n", - tmu); - return false; - } -@@ -265,7 +265,7 @@ check_tmu_write(struct vc4_validated_shader_info *validated_shader, - */ - if (!is_direct) { - if (validation_state->needs_uniform_address_update) { -- DRM_ERROR("Texturing with undefined uniform address\n"); -+ DRM_DEBUG("Texturing with undefined uniform address\n"); - return false; - } - -@@ -336,35 +336,35 @@ validate_uniform_address_write(struct vc4_validated_shader_info *validated_shade - case QPU_SIG_LOAD_TMU1: - break; - default: -- DRM_ERROR("uniforms address change must be " -+ DRM_DEBUG("uniforms address change must be " - "normal math\n"); - return false; - } - - if (is_mul || QPU_GET_FIELD(inst, QPU_OP_ADD) != QPU_A_ADD) { -- DRM_ERROR("Uniform address reset must be an ADD.\n"); -+ DRM_DEBUG("Uniform address reset must be an ADD.\n"); - return false; - } - - if (QPU_GET_FIELD(inst, QPU_COND_ADD) != QPU_COND_ALWAYS) { -- DRM_ERROR("Uniform address reset must be unconditional.\n"); -+ DRM_DEBUG("Uniform address reset must be unconditional.\n"); - return false; - } - - if (QPU_GET_FIELD(inst, QPU_PACK) != QPU_PACK_A_NOP && - !(inst & QPU_PM)) { -- DRM_ERROR("No packing allowed on uniforms reset\n"); -+ DRM_DEBUG("No packing allowed on uniforms reset\n"); - return false; - } - - if (add_lri == -1) { -- DRM_ERROR("First argument of uniform address write must be " -+ DRM_DEBUG("First argument of uniform address write must be " - "an immediate value.\n"); - return false; - } - - if (validation_state->live_immediates[add_lri] != expected_offset) { -- DRM_ERROR("Resetting uniforms with offset %db instead of %db\n", -+ DRM_DEBUG("Resetting uniforms with offset %db instead of %db\n", - validation_state->live_immediates[add_lri], - expected_offset); - return false; -@@ -372,7 +372,7 @@ validate_uniform_address_write(struct vc4_validated_shader_info *validated_shade - - if (!(add_b == QPU_MUX_A && raddr_a == QPU_R_UNIF) && - !(add_b == QPU_MUX_B && raddr_b == QPU_R_UNIF)) { -- DRM_ERROR("Second argument of uniform address write must be " -+ DRM_DEBUG("Second argument of uniform address write must be " - "a uniform.\n"); - return false; - } -@@ -417,7 +417,7 @@ check_reg_write(struct vc4_validated_shader_info *validated_shader, - switch (waddr) { - case QPU_W_UNIFORMS_ADDRESS: - if (is_b) { -- DRM_ERROR("relative uniforms address change " -+ DRM_DEBUG("relative uniforms address change " - "unsupported\n"); - return false; - } -@@ -452,11 +452,11 @@ check_reg_write(struct vc4_validated_shader_info *validated_shader, - /* XXX: I haven't thought about these, so don't support them - * for now. - */ -- DRM_ERROR("Unsupported waddr %d\n", waddr); -+ DRM_DEBUG("Unsupported waddr %d\n", waddr); - return false; - - case QPU_W_VPM_ADDR: -- DRM_ERROR("General VPM DMA unsupported\n"); -+ DRM_DEBUG("General VPM DMA unsupported\n"); - return false; - - case QPU_W_VPM: -@@ -559,7 +559,7 @@ check_instruction_writes(struct vc4_validated_shader_info *validated_shader, - bool ok; - - if (is_tmu_write(waddr_add) && is_tmu_write(waddr_mul)) { -- DRM_ERROR("ADD and MUL both set up textures\n"); -+ DRM_DEBUG("ADD and MUL both set up textures\n"); - return false; - } - -@@ -588,7 +588,7 @@ check_branch(uint64_t inst, - * there's no need for it. - */ - if (waddr_add != QPU_W_NOP || waddr_mul != QPU_W_NOP) { -- DRM_ERROR("branch instruction at %d wrote a register.\n", -+ DRM_DEBUG("branch instruction at %d wrote a register.\n", - validation_state->ip); - return false; - } -@@ -614,7 +614,7 @@ check_instruction_reads(struct vc4_validated_shader_info *validated_shader, - validated_shader->uniforms_size += 4; - - if (validation_state->needs_uniform_address_update) { -- DRM_ERROR("Uniform read with undefined uniform " -+ DRM_DEBUG("Uniform read with undefined uniform " - "address\n"); - return false; - } -@@ -660,19 +660,19 @@ vc4_validate_branches(struct vc4_shader_validation_state *validation_state) - continue; - - if (ip - last_branch < 4) { -- DRM_ERROR("Branch at %d during delay slots\n", ip); -+ DRM_DEBUG("Branch at %d during delay slots\n", ip); - return false; - } - last_branch = ip; - - if (inst & QPU_BRANCH_REG) { -- DRM_ERROR("branching from register relative " -+ DRM_DEBUG("branching from register relative " - "not supported\n"); - return false; - } - - if (!(inst & QPU_BRANCH_REL)) { -- DRM_ERROR("relative branching required\n"); -+ DRM_DEBUG("relative branching required\n"); - return false; - } - -@@ -682,13 +682,13 @@ vc4_validate_branches(struct vc4_shader_validation_state *validation_state) - * end of the shader object. - */ - if (branch_imm % sizeof(inst) != 0) { -- DRM_ERROR("branch target not aligned\n"); -+ DRM_DEBUG("branch target not aligned\n"); - return false; - } - - branch_target_ip = after_delay_ip + (branch_imm >> 3); - if (branch_target_ip >= validation_state->max_ip) { -- DRM_ERROR("Branch at %d outside of shader (ip %d/%d)\n", -+ DRM_DEBUG("Branch at %d outside of shader (ip %d/%d)\n", - ip, branch_target_ip, - validation_state->max_ip); - return false; -@@ -699,7 +699,7 @@ vc4_validate_branches(struct vc4_shader_validation_state *validation_state) - * the shader. - */ - if (after_delay_ip >= validation_state->max_ip) { -- DRM_ERROR("Branch at %d continues past shader end " -+ DRM_DEBUG("Branch at %d continues past shader end " - "(%d/%d)\n", - ip, after_delay_ip, validation_state->max_ip); - return false; -@@ -709,7 +709,7 @@ vc4_validate_branches(struct vc4_shader_validation_state *validation_state) - } - - if (max_branch_target > validation_state->max_ip - 3) { -- DRM_ERROR("Branch landed after QPU_SIG_PROG_END"); -+ DRM_DEBUG("Branch landed after QPU_SIG_PROG_END"); - return false; - } - -@@ -750,7 +750,7 @@ vc4_handle_branch_target(struct vc4_shader_validation_state *validation_state) - return true; - - if (texturing_in_progress(validation_state)) { -- DRM_ERROR("Branch target landed during TMU setup\n"); -+ DRM_DEBUG("Branch target landed during TMU setup\n"); - return false; - } - -@@ -837,7 +837,7 @@ vc4_validate_shader(struct drm_gem_cma_object *shader_obj) - case QPU_SIG_LAST_THREAD_SWITCH: - if (!check_instruction_writes(validated_shader, - &validation_state)) { -- DRM_ERROR("Bad write at ip %d\n", ip); -+ DRM_DEBUG("Bad write at ip %d\n", ip); - goto fail; - } - -@@ -855,7 +855,7 @@ vc4_validate_shader(struct drm_gem_cma_object *shader_obj) - validated_shader->is_threaded = true; - - if (ip < last_thread_switch_ip + 3) { -- DRM_ERROR("Thread switch too soon after " -+ DRM_DEBUG("Thread switch too soon after " - "last switch at ip %d\n", ip); - goto fail; - } -@@ -867,7 +867,7 @@ vc4_validate_shader(struct drm_gem_cma_object *shader_obj) - case QPU_SIG_LOAD_IMM: - if (!check_instruction_writes(validated_shader, - &validation_state)) { -- DRM_ERROR("Bad LOAD_IMM write at ip %d\n", ip); -+ DRM_DEBUG("Bad LOAD_IMM write at ip %d\n", ip); - goto fail; - } - break; -@@ -878,14 +878,14 @@ vc4_validate_shader(struct drm_gem_cma_object *shader_obj) - goto fail; - - if (ip < last_thread_switch_ip + 3) { -- DRM_ERROR("Branch in thread switch at ip %d", -+ DRM_DEBUG("Branch in thread switch at ip %d", - ip); - goto fail; - } - - break; - default: -- DRM_ERROR("Unsupported QPU signal %d at " -+ DRM_DEBUG("Unsupported QPU signal %d at " - "instruction %d\n", sig, ip); - goto fail; - } -@@ -898,7 +898,7 @@ vc4_validate_shader(struct drm_gem_cma_object *shader_obj) - } - - if (ip == validation_state.max_ip) { -- DRM_ERROR("shader failed to terminate before " -+ DRM_DEBUG("shader failed to terminate before " - "shader BO end at %zd\n", - shader_obj->base.size); - goto fail; -@@ -907,7 +907,7 @@ vc4_validate_shader(struct drm_gem_cma_object *shader_obj) - /* Might corrupt other thread */ - if (validated_shader->is_threaded && - validation_state.all_registers_used) { -- DRM_ERROR("Shader uses threading, but uses the upper " -+ DRM_DEBUG("Shader uses threading, but uses the upper " - "half of the registers, too\n"); - goto fail; - } --- -2.13.5 - -From 28b369f5abc790f56e668869d88f261ca7a27c55 Mon Sep 17 00:00:00 2001 -From: Eric Anholt <eric@anholt.net> -Date: Tue, 8 Aug 2017 13:56:05 -0700 -Subject: [PATCH 2/6] drm/vc4: Fix leak of HDMI EDID - -We don't keep a pointer to it around anywhere, so it's our job to free -it. - -Cc: Stefan Wahren <stefan.wahren@i2se.com> -Link: https://github.com/anholt/linux/issues/101 -Fixes: c8b75bca92cb ("drm/vc4: Add KMS support for Raspberry Pi.") -Signed-off-by: Eric Anholt <eric@anholt.net> -Link: https://patchwork.freedesktop.org/patch/msgid/20170808205605.4432-1-eric@anholt.net -Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> -Tested-by: Stefan Wahren <stefan.wahren@i2se.com> ---- - drivers/gpu/drm/vc4/vc4_hdmi.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c -index ed63d4e85762..f7803fd7f47c 100644 ---- a/drivers/gpu/drm/vc4/vc4_hdmi.c -+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c -@@ -260,6 +260,7 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector) - drm_mode_connector_update_edid_property(connector, edid); - ret = drm_add_edid_modes(connector, edid); - drm_edid_to_eld(connector, edid); -+ kfree(edid); - - return ret; - } --- -2.13.5 - -From 3b688b6d347f777a8e86165decc33198b063b8c0 Mon Sep 17 00:00:00 2001 -From: Eric Anholt <eric@anholt.net> -Date: Tue, 25 Jul 2017 11:27:16 -0700 -Subject: [PATCH 3/6] drm/vc4: Start using u64_to_user_ptr. - -Chris Wilson pointed out this little cleanup in a review of new code, -so let's fix up the code I was copying from. - -Signed-off-by: Eric Anholt <eric@anholt.net> -Link: https://patchwork.freedesktop.org/patch/msgid/20170725182718.31468-1-eric@anholt.net -Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> ---- - drivers/gpu/drm/vc4/vc4_gem.c | 11 +++++------ - 1 file changed, 5 insertions(+), 6 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c -index a3e45e67f417..8b551bc630c4 100644 ---- a/drivers/gpu/drm/vc4/vc4_gem.c -+++ b/drivers/gpu/drm/vc4/vc4_gem.c -@@ -119,7 +119,7 @@ vc4_get_hang_state_ioctl(struct drm_device *dev, void *data, - bo_state[i].size = vc4_bo->base.base.size; - } - -- if (copy_to_user((void __user *)(uintptr_t)get_state->bo, -+ if (copy_to_user(u64_to_user_ptr(get_state->bo), - bo_state, - state->bo_count * sizeof(*bo_state))) - ret = -EFAULT; -@@ -678,8 +678,7 @@ vc4_cl_lookup_bos(struct drm_device *dev, - goto fail; - } - -- if (copy_from_user(handles, -- (void __user *)(uintptr_t)args->bo_handles, -+ if (copy_from_user(handles, u64_to_user_ptr(args->bo_handles), - exec->bo_count * sizeof(uint32_t))) { - ret = -EFAULT; - DRM_ERROR("Failed to copy in GEM handles\n"); -@@ -755,21 +754,21 @@ vc4_get_bcl(struct drm_device *dev, struct vc4_exec_info *exec) - exec->shader_state_size = args->shader_rec_count; - - if (copy_from_user(bin, -- (void __user *)(uintptr_t)args->bin_cl, -+ u64_to_user_ptr(args->bin_cl), - args->bin_cl_size)) { - ret = -EFAULT; - goto fail; - } - - if (copy_from_user(exec->shader_rec_u, -- (void __user *)(uintptr_t)args->shader_rec, -+ u64_to_user_ptr(args->shader_rec), - args->shader_rec_size)) { - ret = -EFAULT; - goto fail; - } - - if (copy_from_user(exec->uniforms_u, -- (void __user *)(uintptr_t)args->uniforms, -+ u64_to_user_ptr(args->uniforms), - args->uniforms_size)) { - ret = -EFAULT; - goto fail; --- -2.13.5 - -From da81d76bce216c160d2924a52e362b160bbb6ca1 Mon Sep 17 00:00:00 2001 -From: Eric Anholt <eric@anholt.net> -Date: Tue, 25 Jul 2017 11:27:17 -0700 -Subject: [PATCH 4/6] drm/vc4: Add an ioctl for labeling GEM BOs for summary - stats - -This has proven immensely useful for debugging memory leaks and -overallocation (which is a rather serious concern on the platform, -given that we typically run at about 256MB of CMA out of up to 1GB -total memory, with framebuffers that are about 8MB ecah). - -The state of the art without this is to dump debug logs from every GL -application, guess as to kernel allocations based on bo_stats, and try -to merge that all together into a global picture of memory allocation -state. With this, you can add a couple of calls to the debug build of -the 3D driver and get a pretty detailed view of GPU memory usage from -/debug/dri/0/bo_stats (or when we debug print to dmesg on allocation -failure). - -The Mesa side currently labels at the gallium resource level (so you -see that a 1920x20 pixmap has been created, presumably for the window -system panel), but we could extend that to be even more useful with -glObjectLabel() names being sent all the way down to the kernel. - -(partial) example of sorted debugfs output with Mesa labeling all -resources: - - kernel BO cache: 16392kb BOs (3) - tiling shadow 1920x1080: 8160kb BOs (1) - resource 1920x1080@32/0: 8160kb BOs (1) -scanout resource 1920x1080@32/0: 8100kb BOs (1) - kernel: 8100kb BOs (1) - -v2: Use strndup_user(), use lockdep assertion instead of just a - comment, fix an array[-1] reference, extend comment about name - freeing. - -Signed-off-by: Eric Anholt <eric@anholt.net> -Link: https://patchwork.freedesktop.org/patch/msgid/20170725182718.31468-2-eric@anholt.net -Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> ---- - drivers/gpu/drm/vc4/vc4_bo.c | 258 ++++++++++++++++++++++++++++-------- - drivers/gpu/drm/vc4/vc4_drv.c | 8 +- - drivers/gpu/drm/vc4/vc4_drv.h | 39 +++++- - drivers/gpu/drm/vc4/vc4_gem.c | 2 +- - drivers/gpu/drm/vc4/vc4_render_cl.c | 2 +- - drivers/gpu/drm/vc4/vc4_v3d.c | 3 +- - include/uapi/drm/vc4_drm.h | 11 ++ - 7 files changed, 257 insertions(+), 66 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c -index ede80199001d..27c4a927311f 100644 ---- a/drivers/gpu/drm/vc4/vc4_bo.c -+++ b/drivers/gpu/drm/vc4/vc4_bo.c -@@ -24,21 +24,35 @@ - #include "vc4_drv.h" - #include "uapi/drm/vc4_drm.h" - -+static const char * const bo_type_names[] = { -+ "kernel", -+ "V3D", -+ "V3D shader", -+ "dumb", -+ "binner", -+ "RCL", -+ "BCL", -+ "kernel BO cache", -+}; -+ -+static bool is_user_label(int label) -+{ -+ return label >= VC4_BO_TYPE_COUNT; -+} -+ - static void vc4_bo_stats_dump(struct vc4_dev *vc4) - { -- DRM_INFO("num bos allocated: %d\n", -- vc4->bo_stats.num_allocated); -- DRM_INFO("size bos allocated: %dkb\n", -- vc4->bo_stats.size_allocated / 1024); -- DRM_INFO("num bos used: %d\n", -- vc4->bo_stats.num_allocated - vc4->bo_stats.num_cached); -- DRM_INFO("size bos used: %dkb\n", -- (vc4->bo_stats.size_allocated - -- vc4->bo_stats.size_cached) / 1024); -- DRM_INFO("num bos cached: %d\n", -- vc4->bo_stats.num_cached); -- DRM_INFO("size bos cached: %dkb\n", -- vc4->bo_stats.size_cached / 1024); -+ int i; -+ -+ for (i = 0; i < vc4->num_labels; i++) { -+ if (!vc4->bo_labels[i].num_allocated) -+ continue; -+ -+ DRM_INFO("%30s: %6dkb BOs (%d)\n", -+ vc4->bo_labels[i].name, -+ vc4->bo_labels[i].size_allocated / 1024, -+ vc4->bo_labels[i].num_allocated); -+ } - } - - #ifdef CONFIG_DEBUG_FS -@@ -47,30 +61,103 @@ int vc4_bo_stats_debugfs(struct seq_file *m, void *unused) - struct drm_info_node *node = (struct drm_info_node *)m->private; - struct drm_device *dev = node->minor->dev; - struct vc4_dev *vc4 = to_vc4_dev(dev); -- struct vc4_bo_stats stats; -+ int i; - -- /* Take a snapshot of the current stats with the lock held. */ - mutex_lock(&vc4->bo_lock); -- stats = vc4->bo_stats; -+ for (i = 0; i < vc4->num_labels; i++) { -+ if (!vc4->bo_labels[i].num_allocated) -+ continue; -+ -+ seq_printf(m, "%30s: %6dkb BOs (%d)\n", -+ vc4->bo_labels[i].name, -+ vc4->bo_labels[i].size_allocated / 1024, -+ vc4->bo_labels[i].num_allocated); -+ } - mutex_unlock(&vc4->bo_lock); - -- seq_printf(m, "num bos allocated: %d\n", -- stats.num_allocated); -- seq_printf(m, "size bos allocated: %dkb\n", -- stats.size_allocated / 1024); -- seq_printf(m, "num bos used: %d\n", -- stats.num_allocated - stats.num_cached); -- seq_printf(m, "size bos used: %dkb\n", -- (stats.size_allocated - stats.size_cached) / 1024); -- seq_printf(m, "num bos cached: %d\n", -- stats.num_cached); -- seq_printf(m, "size bos cached: %dkb\n", -- stats.size_cached / 1024); -- - return 0; - } - #endif - -+/* Takes ownership of *name and returns the appropriate slot for it in -+ * the bo_labels[] array, extending it as necessary. -+ * -+ * This is inefficient and could use a hash table instead of walking -+ * an array and strcmp()ing. However, the assumption is that user -+ * labeling will be infrequent (scanout buffers and other long-lived -+ * objects, or debug driver builds), so we can live with it for now. -+ */ -+static int vc4_get_user_label(struct vc4_dev *vc4, const char *name) -+{ -+ int i; -+ int free_slot = -1; -+ -+ for (i = 0; i < vc4->num_labels; i++) { -+ if (!vc4->bo_labels[i].name) { -+ free_slot = i; -+ } else if (strcmp(vc4->bo_labels[i].name, name) == 0) { -+ kfree(name); -+ return i; -+ } -+ } -+ -+ if (free_slot != -1) { -+ WARN_ON(vc4->bo_labels[free_slot].num_allocated != 0); -+ vc4->bo_labels[free_slot].name = name; -+ return free_slot; -+ } else { -+ u32 new_label_count = vc4->num_labels + 1; -+ struct vc4_label *new_labels = -+ krealloc(vc4->bo_labels, -+ new_label_count * sizeof(*new_labels), -+ GFP_KERNEL); -+ -+ if (!new_labels) { -+ kfree(name); -+ return -1; -+ } -+ -+ free_slot = vc4->num_labels; -+ vc4->bo_labels = new_labels; -+ vc4->num_labels = new_label_count; -+ -+ vc4->bo_labels[free_slot].name = name; -+ vc4->bo_labels[free_slot].num_allocated = 0; -+ vc4->bo_labels[free_slot].size_allocated = 0; -+ -+ return free_slot; -+ } -+} -+ -+static void vc4_bo_set_label(struct drm_gem_object *gem_obj, int label) -+{ -+ struct vc4_bo *bo = to_vc4_bo(gem_obj); -+ struct vc4_dev *vc4 = to_vc4_dev(gem_obj->dev); -+ -+ lockdep_assert_held(&vc4->bo_lock); -+ -+ if (label != -1) { -+ vc4->bo_labels[label].num_allocated++; -+ vc4->bo_labels[label].size_allocated += gem_obj->size; -+ } -+ -+ vc4->bo_labels[bo->label].num_allocated--; -+ vc4->bo_labels[bo->label].size_allocated -= gem_obj->size; -+ -+ if (vc4->bo_labels[bo->label].num_allocated == 0 && -+ is_user_label(bo->label)) { -+ /* Free user BO label slots on last unreference. -+ * Slots are just where we track the stats for a given -+ * name, and once a name is unused we can reuse that -+ * slot. -+ */ -+ kfree(vc4->bo_labels[bo->label].name); -+ vc4->bo_labels[bo->label].name = NULL; -+ } -+ -+ bo->label = label; -+} -+ - static uint32_t bo_page_index(size_t size) - { - return (size / PAGE_SIZE) - 1; -@@ -80,7 +167,8 @@ static uint32_t bo_page_index(size_t size) - static void vc4_bo_destroy(struct vc4_bo *bo) - { - struct drm_gem_object *obj = &bo->base.base; -- struct vc4_dev *vc4 = to_vc4_dev(obj->dev); -+ -+ vc4_bo_set_label(obj, -1); - - if (bo->validated_shader) { - kfree(bo->validated_shader->texture_samples); -@@ -88,9 +176,6 @@ static void vc4_bo_destroy(struct vc4_bo *bo) - bo->validated_shader = NULL; - } - -- vc4->bo_stats.num_allocated--; -- vc4->bo_stats.size_allocated -= obj->size; -- - reservation_object_fini(&bo->_resv); - - drm_gem_cma_free_object(obj); -@@ -99,12 +184,6 @@ static void vc4_bo_destroy(struct vc4_bo *bo) - /* Must be called with bo_lock held. */ - static void vc4_bo_remove_from_cache(struct vc4_bo *bo) - { -- struct drm_gem_object *obj = &bo->base.base; -- struct vc4_dev *vc4 = to_vc4_dev(obj->dev); -- -- vc4->bo_stats.num_cached--; -- vc4->bo_stats.size_cached -= obj->size; -- - list_del(&bo->unref_head); - list_del(&bo->size_head); - } -@@ -165,7 +244,8 @@ static void vc4_bo_cache_purge(struct drm_device *dev) - } - - static struct vc4_bo *vc4_bo_get_from_cache(struct drm_device *dev, -- uint32_t size) -+ uint32_t size, -+ enum vc4_kernel_bo_type type) - { - struct vc4_dev *vc4 = to_vc4_dev(dev); - uint32_t page_index = bo_page_index(size); -@@ -186,6 +266,8 @@ static struct vc4_bo *vc4_bo_get_from_cache(struct drm_device *dev, - kref_init(&bo->base.base.refcount); - - out: -+ if (bo) -+ vc4_bo_set_label(&bo->base.base, type); - mutex_unlock(&vc4->bo_lock); - return bo; - } -@@ -208,8 +290,9 @@ struct drm_gem_object *vc4_create_object(struct drm_device *dev, size_t size) - return ERR_PTR(-ENOMEM); - - mutex_lock(&vc4->bo_lock); -- vc4->bo_stats.num_allocated++; -- vc4->bo_stats.size_allocated += size; -+ bo->label = VC4_BO_TYPE_KERNEL; -+ vc4->bo_labels[VC4_BO_TYPE_KERNEL].num_allocated++; -+ vc4->bo_labels[VC4_BO_TYPE_KERNEL].size_allocated += size; - mutex_unlock(&vc4->bo_lock); - bo->resv = &bo->_resv; - reservation_object_init(bo->resv); -@@ -218,7 +301,7 @@ struct drm_gem_object *vc4_create_object(struct drm_device *dev, size_t size) - } - - struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t unaligned_size, -- bool allow_unzeroed) -+ bool allow_unzeroed, enum vc4_kernel_bo_type type) - { - size_t size = roundup(unaligned_size, PAGE_SIZE); - struct vc4_dev *vc4 = to_vc4_dev(dev); -@@ -229,7 +312,7 @@ struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t unaligned_size, - return ERR_PTR(-EINVAL); - - /* First, try to get a vc4_bo from the kernel BO cache. */ -- bo = vc4_bo_get_from_cache(dev, size); -+ bo = vc4_bo_get_from_cache(dev, size, type); - if (bo) { - if (!allow_unzeroed) - memset(bo->base.vaddr, 0, bo->base.base.size); -@@ -251,7 +334,13 @@ struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t unaligned_size, - return ERR_PTR(-ENOMEM); - } - } -- return to_vc4_bo(&cma_obj->base); -+ bo = to_vc4_bo(&cma_obj->base); -+ -+ mutex_lock(&vc4->bo_lock); -+ vc4_bo_set_label(&cma_obj->base, type); -+ mutex_unlock(&vc4->bo_lock); -+ -+ return bo; - } - - int vc4_dumb_create(struct drm_file *file_priv, -@@ -268,7 +357,7 @@ int vc4_dumb_create(struct drm_file *file_priv, - if (args->size < args->pitch * args->height) - args->size = args->pitch * args->height; - -- bo = vc4_bo_create(dev, args->size, false); -+ bo = vc4_bo_create(dev, args->size, false, VC4_BO_TYPE_DUMB); - if (IS_ERR(bo)) - return PTR_ERR(bo); - -@@ -348,8 +437,7 @@ void vc4_free_object(struct drm_gem_object *gem_bo) - list_add(&bo->size_head, cache_list); - list_add(&bo->unref_head, &vc4->bo_cache.time_list); - -- vc4->bo_stats.num_cached++; -- vc4->bo_stats.size_cached += gem_bo->size; -+ vc4_bo_set_label(&bo->base.base, VC4_BO_TYPE_KERNEL_CACHE); - - vc4_bo_cache_free_old(dev); - -@@ -483,7 +571,7 @@ int vc4_create_bo_ioctl(struct drm_device *dev, void *data, - * We can't allocate from the BO cache, because the BOs don't - * get zeroed, and that might leak data between users. - */ -- bo = vc4_bo_create(dev, args->size, false); -+ bo = vc4_bo_create(dev, args->size, false, VC4_BO_TYPE_V3D); - if (IS_ERR(bo)) - return PTR_ERR(bo); - -@@ -536,7 +624,7 @@ vc4_create_shader_bo_ioctl(struct drm_device *dev, void *data, - return -EINVAL; - } - -- bo = vc4_bo_create(dev, args->size, true); -+ bo = vc4_bo_create(dev, args->size, true, VC4_BO_TYPE_V3D_SHADER); - if (IS_ERR(bo)) - return PTR_ERR(bo); - -@@ -651,9 +739,24 @@ int vc4_get_tiling_ioctl(struct drm_device *dev, void *data, - return 0; - } - --void vc4_bo_cache_init(struct drm_device *dev) -+int vc4_bo_cache_init(struct drm_device *dev) - { - struct vc4_dev *vc4 = to_vc4_dev(dev); -+ int i; -+ -+ /* Create the initial set of BO labels that the kernel will -+ * use. This lets us avoid a bunch of string reallocation in -+ * the kernel's draw and BO allocation paths. -+ */ -+ vc4->bo_labels = kcalloc(VC4_BO_TYPE_COUNT, sizeof(*vc4->bo_labels), -+ GFP_KERNEL); -+ if (!vc4->bo_labels) -+ return -ENOMEM; -+ vc4->num_labels = VC4_BO_TYPE_COUNT; -+ -+ BUILD_BUG_ON(ARRAY_SIZE(bo_type_names) != VC4_BO_TYPE_COUNT); -+ for (i = 0; i < VC4_BO_TYPE_COUNT; i++) -+ vc4->bo_labels[i].name = bo_type_names[i]; - - mutex_init(&vc4->bo_lock); - -@@ -663,19 +766,66 @@ void vc4_bo_cache_init(struct drm_device *dev) - setup_timer(&vc4->bo_cache.time_timer, - vc4_bo_cache_time_timer, - (unsigned long)dev); -+ -+ return 0; - } - - void vc4_bo_cache_destroy(struct drm_device *dev) - { - struct vc4_dev *vc4 = to_vc4_dev(dev); -+ int i; - - del_timer(&vc4->bo_cache.time_timer); - cancel_work_sync(&vc4->bo_cache.time_work); - - vc4_bo_cache_purge(dev); - -- if (vc4->bo_stats.num_allocated) { -- DRM_ERROR("Destroying BO cache while BOs still allocated:\n"); -- vc4_bo_stats_dump(vc4); -+ for (i = 0; i < vc4->num_labels; i++) { -+ if (vc4->bo_labels[i].num_allocated) { -+ DRM_ERROR("Destroying BO cache with %d %s " -+ "BOs still allocated\n", -+ vc4->bo_labels[i].num_allocated, -+ vc4->bo_labels[i].name); -+ } -+ -+ if (is_user_label(i)) -+ kfree(vc4->bo_labels[i].name); - } -+ kfree(vc4->bo_labels); -+} -+ -+int vc4_label_bo_ioctl(struct drm_device *dev, void *data, -+ struct drm_file *file_priv) -+{ -+ struct vc4_dev *vc4 = to_vc4_dev(dev); -+ struct drm_vc4_label_bo *args = data; -+ char *name; -+ struct drm_gem_object *gem_obj; -+ int ret = 0, label; -+ -+ if (!args->len) -+ return -EINVAL; -+ -+ name = strndup_user(u64_to_user_ptr(args->name), args->len + 1); -+ if (IS_ERR(name)) -+ return PTR_ERR(name); -+ -+ gem_obj = drm_gem_object_lookup(file_priv, args->handle); -+ if (!gem_obj) { -+ DRM_ERROR("Failed to look up GEM BO %d\n", args->handle); -+ kfree(name); -+ return -ENOENT; -+ } -+ -+ mutex_lock(&vc4->bo_lock); -+ label = vc4_get_user_label(vc4, name); -+ if (label != -1) -+ vc4_bo_set_label(gem_obj, label); -+ else -+ ret = -ENOMEM; -+ mutex_unlock(&vc4->bo_lock); -+ -+ drm_gem_object_unreference_unlocked(gem_obj); -+ -+ return ret; - } -diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c -index c6b487c3d2b7..75c1f50a7b5d 100644 ---- a/drivers/gpu/drm/vc4/vc4_drv.c -+++ b/drivers/gpu/drm/vc4/vc4_drv.c -@@ -140,6 +140,7 @@ static const struct drm_ioctl_desc vc4_drm_ioctls[] = { - DRM_IOCTL_DEF_DRV(VC4_GET_PARAM, vc4_get_param_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(VC4_SET_TILING, vc4_set_tiling_ioctl, DRM_RENDER_ALLOW), - DRM_IOCTL_DEF_DRV(VC4_GET_TILING, vc4_get_tiling_ioctl, DRM_RENDER_ALLOW), -+ DRM_IOCTL_DEF_DRV(VC4_LABEL_BO, vc4_label_bo_ioctl, DRM_RENDER_ALLOW), - }; - - static struct drm_driver vc4_drm_driver = { -@@ -257,7 +258,9 @@ static int vc4_drm_bind(struct device *dev) - vc4->dev = drm; - drm->dev_private = vc4; - -- vc4_bo_cache_init(drm); -+ ret = vc4_bo_cache_init(drm); -+ if (ret) -+ goto dev_unref; - - drm_mode_config_init(drm); - -@@ -281,8 +284,9 @@ static int vc4_drm_bind(struct device *dev) - component_unbind_all(dev, drm); - gem_destroy: - vc4_gem_destroy(drm); -- drm_dev_unref(drm); - vc4_bo_cache_destroy(drm); -+dev_unref: -+ drm_dev_unref(drm); - return ret; - } - -diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h -index df22698d62ee..75d9957cb76d 100644 ---- a/drivers/gpu/drm/vc4/vc4_drv.h -+++ b/drivers/gpu/drm/vc4/vc4_drv.h -@@ -11,6 +11,24 @@ - #include <drm/drm_encoder.h> - #include <drm/drm_gem_cma_helper.h> - -+/* Don't forget to update vc4_bo.c: bo_type_names[] when adding to -+ * this. -+ */ -+enum vc4_kernel_bo_type { -+ /* Any kernel allocation (gem_create_object hook) before it -+ * gets another type set. -+ */ -+ VC4_BO_TYPE_KERNEL, -+ VC4_BO_TYPE_V3D, -+ VC4_BO_TYPE_V3D_SHADER, -+ VC4_BO_TYPE_DUMB, -+ VC4_BO_TYPE_BIN, -+ VC4_BO_TYPE_RCL, -+ VC4_BO_TYPE_BCL, -+ VC4_BO_TYPE_KERNEL_CACHE, -+ VC4_BO_TYPE_COUNT -+}; -+ - struct vc4_dev { - struct drm_device *dev; - -@@ -46,14 +64,14 @@ struct vc4_dev { - struct timer_list time_timer; - } bo_cache; - -- struct vc4_bo_stats { -+ u32 num_labels; -+ struct vc4_label { -+ const char *name; - u32 num_allocated; - u32 size_allocated; -- u32 num_cached; -- u32 size_cached; -- } bo_stats; -+ } *bo_labels; - -- /* Protects bo_cache and the BO stats. */ -+ /* Protects bo_cache and bo_labels. */ - struct mutex bo_lock; - - uint64_t dma_fence_context; -@@ -169,6 +187,11 @@ struct vc4_bo { - /* normally (resv == &_resv) except for imported bo's */ - struct reservation_object *resv; - struct reservation_object _resv; -+ -+ /* One of enum vc4_kernel_bo_type, or VC4_BO_TYPE_COUNT + i -+ * for user-allocated labels. -+ */ -+ int label; - }; - - static inline struct vc4_bo * -@@ -460,7 +483,7 @@ struct vc4_validated_shader_info { - struct drm_gem_object *vc4_create_object(struct drm_device *dev, size_t size); - void vc4_free_object(struct drm_gem_object *gem_obj); - struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t size, -- bool from_cache); -+ bool from_cache, enum vc4_kernel_bo_type type); - int vc4_dumb_create(struct drm_file *file_priv, - struct drm_device *dev, - struct drm_mode_create_dumb *args); -@@ -478,6 +501,8 @@ int vc4_get_tiling_ioctl(struct drm_device *dev, void *data, - struct drm_file *file_priv); - int vc4_get_hang_state_ioctl(struct drm_device *dev, void *data, - struct drm_file *file_priv); -+int vc4_label_bo_ioctl(struct drm_device *dev, void *data, -+ struct drm_file *file_priv); - int vc4_mmap(struct file *filp, struct vm_area_struct *vma); - struct reservation_object *vc4_prime_res_obj(struct drm_gem_object *obj); - int vc4_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma); -@@ -485,7 +510,7 @@ struct drm_gem_object *vc4_prime_import_sg_table(struct drm_device *dev, - struct dma_buf_attachment *attach, - struct sg_table *sgt); - void *vc4_prime_vmap(struct drm_gem_object *obj); --void vc4_bo_cache_init(struct drm_device *dev); -+int vc4_bo_cache_init(struct drm_device *dev); - void vc4_bo_cache_destroy(struct drm_device *dev); - int vc4_bo_stats_debugfs(struct seq_file *m, void *arg); - -diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c -index 8b551bc630c4..80f1953b4938 100644 ---- a/drivers/gpu/drm/vc4/vc4_gem.c -+++ b/drivers/gpu/drm/vc4/vc4_gem.c -@@ -774,7 +774,7 @@ vc4_get_bcl(struct drm_device *dev, struct vc4_exec_info *exec) - goto fail; - } - -- bo = vc4_bo_create(dev, exec_size, true); -+ bo = vc4_bo_create(dev, exec_size, true, VC4_BO_TYPE_BCL); - if (IS_ERR(bo)) { - DRM_ERROR("Couldn't allocate BO for binning\n"); - ret = PTR_ERR(bo); -diff --git a/drivers/gpu/drm/vc4/vc4_render_cl.c b/drivers/gpu/drm/vc4/vc4_render_cl.c -index da3bfd53f0bd..e0539731130b 100644 ---- a/drivers/gpu/drm/vc4/vc4_render_cl.c -+++ b/drivers/gpu/drm/vc4/vc4_render_cl.c -@@ -320,7 +320,7 @@ static int vc4_create_rcl_bo(struct drm_device *dev, struct vc4_exec_info *exec, - - size += xtiles * ytiles * loop_body_size; - -- setup->rcl = &vc4_bo_create(dev, size, true)->base; -+ setup->rcl = &vc4_bo_create(dev, size, true, VC4_BO_TYPE_RCL)->base; - if (IS_ERR(setup->rcl)) - return PTR_ERR(setup->rcl); - list_add_tail(&to_vc4_bo(&setup->rcl->base)->unref_head, -diff --git a/drivers/gpu/drm/vc4/vc4_v3d.c b/drivers/gpu/drm/vc4/vc4_v3d.c -index 8c723da71f66..622cd43840b8 100644 ---- a/drivers/gpu/drm/vc4/vc4_v3d.c -+++ b/drivers/gpu/drm/vc4/vc4_v3d.c -@@ -236,7 +236,8 @@ vc4_allocate_bin_bo(struct drm_device *drm) - INIT_LIST_HEAD(&list); - - while (true) { -- struct vc4_bo *bo = vc4_bo_create(drm, size, true); -+ struct vc4_bo *bo = vc4_bo_create(drm, size, true, -+ VC4_BO_TYPE_BIN); - - if (IS_ERR(bo)) { - ret = PTR_ERR(bo); -diff --git a/include/uapi/drm/vc4_drm.h b/include/uapi/drm/vc4_drm.h -index 6ac4c5c014cb..551628e571f9 100644 ---- a/include/uapi/drm/vc4_drm.h -+++ b/include/uapi/drm/vc4_drm.h -@@ -40,6 +40,7 @@ extern "C" { - #define DRM_VC4_GET_PARAM 0x07 - #define DRM_VC4_SET_TILING 0x08 - #define DRM_VC4_GET_TILING 0x09 -+#define DRM_VC4_LABEL_BO 0x0a - - #define DRM_IOCTL_VC4_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SUBMIT_CL, struct drm_vc4_submit_cl) - #define DRM_IOCTL_VC4_WAIT_SEQNO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_WAIT_SEQNO, struct drm_vc4_wait_seqno) -@@ -51,6 +52,7 @@ extern "C" { - #define DRM_IOCTL_VC4_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_PARAM, struct drm_vc4_get_param) - #define DRM_IOCTL_VC4_SET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SET_TILING, struct drm_vc4_set_tiling) - #define DRM_IOCTL_VC4_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_TILING, struct drm_vc4_get_tiling) -+#define DRM_IOCTL_VC4_LABEL_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_LABEL_BO, struct drm_vc4_label_bo) - - struct drm_vc4_submit_rcl_surface { - __u32 hindex; /* Handle index, or ~0 if not present. */ -@@ -311,6 +313,15 @@ struct drm_vc4_set_tiling { - __u64 modifier; - }; - -+/** -+ * struct drm_vc4_label_bo - Attach a name to a BO for debug purposes. -+ */ -+struct drm_vc4_label_bo { -+ __u32 handle; -+ __u32 len; -+ __u64 name; -+}; -+ - #if defined(__cplusplus) - } - #endif --- -2.13.5 - -From 34cbed8ed9441caa13017108dac189e09c35f9af Mon Sep 17 00:00:00 2001 -From: Eric Anholt <eric@anholt.net> -Date: Wed, 2 Aug 2017 13:32:40 -0700 -Subject: [PATCH 5/6] drm/vc4: Fix double destroy of the BO cache on teardown. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -It's also destroyed from the top level vc4_drv.c initialization, which -is where the cache was actually initialized from. - -This used to just involve duplicate del_timer() and cancel_work_sync() -being called, but it started causing kmalloc issues once we -double-freed the new BO label array. - -Fixes: 1908a876f909 ("drm/vc4: Add an ioctl for labeling GEM BOs for summary stats") -Signed-off-by: Eric Anholt <eric@anholt.net> -Link: https://patchwork.freedesktop.org/patch/msgid/20170802203242.12815-1-eric@anholt.net -Tested-by: Noralf Trønnes <noralf@tronnes.org> -Acked-by: Noralf Trønnes <noralf@tronnes.org> -Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com> ---- - drivers/gpu/drm/vc4/vc4_gem.c | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c -index 80f1953b4938..624177b9cce4 100644 ---- a/drivers/gpu/drm/vc4/vc4_gem.c -+++ b/drivers/gpu/drm/vc4/vc4_gem.c -@@ -1117,6 +1117,4 @@ vc4_gem_destroy(struct drm_device *dev) - - if (vc4->hang_state) - vc4_free_hang_state(dev, vc4->hang_state); -- -- vc4_bo_cache_destroy(dev); - } --- -2.13.5 - -From 4f218eea5be54c8506e6db700750e8b8019dc6af Mon Sep 17 00:00:00 2001 -From: Boris Brezillon <boris.brezillon@free-electrons.com> -Date: Fri, 16 Jun 2017 10:30:33 +0200 -Subject: [PATCH 6/6] drm/vc4: Send a VBLANK event when disabling a CRTC - -VBLANK events are missed when the CRTC is being disabled because the -driver does not wait till the end of the frame before stopping the -HVS and PV blocks. In this case, we should explicitly issue a VBLANK -event if there's one waiting. - -Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com> -Reviewed-by: Eric Anholt <eric@anholt.net> -Link: http://patchwork.freedesktop.org/patch/msgid/1497601833-24588-1-git-send-email-boris.brezillon@free-electrons.com ---- - drivers/gpu/drm/vc4/vc4_crtc.c | 13 +++++++++++++ - 1 file changed, 13 insertions(+) - -diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c -index a12cc7ea99b6..b0582ad3f459 100644 ---- a/drivers/gpu/drm/vc4/vc4_crtc.c -+++ b/drivers/gpu/drm/vc4/vc4_crtc.c -@@ -518,6 +518,19 @@ static void vc4_crtc_disable(struct drm_crtc *crtc) - WARN_ON_ONCE((HVS_READ(SCALER_DISPSTATX(chan)) & - (SCALER_DISPSTATX_FULL | SCALER_DISPSTATX_EMPTY)) != - SCALER_DISPSTATX_EMPTY); -+ -+ /* -+ * Make sure we issue a vblank event after disabling the CRTC if -+ * someone was waiting it. -+ */ -+ if (crtc->state->event) { -+ unsigned long flags; -+ -+ spin_lock_irqsave(&dev->event_lock, flags); -+ drm_crtc_send_vblank_event(crtc, crtc->state->event); -+ crtc->state->event = NULL; -+ spin_unlock_irqrestore(&dev->event_lock, flags); -+ } - } - - static void vc4_crtc_update_dlist(struct drm_crtc *crtc) --- -2.13.5 - diff --git a/config_generation b/config_generation index 6708b1022..64ae444f4 100644 --- a/config_generation +++ b/config_generation @@ -5,7 +5,7 @@ # x86_64 x86_64=baseconfig:baseconfig-x86:baseconfig-x86-x86_64 -x86_64-debug=baseconfig:baseconfig-x86:baseconfig-x86-x86_64:debugconfig:debugconfig-x86 +x86_64-debug=baseconfig:baseconfig-x86:baseconfig-x86-x86_64:debugconfig:debugconfig-x86:debugconfig-x86-x86_64 # i686 i686=baseconfig:baseconfig-x86:baseconfig-x86-i686 diff --git a/drm-cma-reduce-dmesg-logs.patch b/drm-cma-reduce-dmesg-logs.patch index 2e39d6e70..d7252c498 100644 --- a/drm-cma-reduce-dmesg-logs.patch +++ b/drm-cma-reduce-dmesg-logs.patch @@ -41,56 +41,3 @@ index 373e33f22be4..020e7668dfab 100644 size); ret = -ENOMEM; goto error; -From patchwork Wed Oct 4 12:54:47 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: cma: Take __GFP_NOWARN into account in cma_alloc() -From: Boris Brezillon <boris.brezillon@free-electrons.com> -X-Patchwork-Id: 180554 -Message-Id: <20171004125447.15195-1-boris.brezillon@free-electrons.com> -To: linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>, - Laura Abbott <labbott@redhat.com> -Cc: Boris Brezillon <boris.brezillon@free-electrons.com>, - Jaewon Kim <jaewon31.kim@samsung.com>, dri-devel@lists.freedesktop.org -Date: Wed, 4 Oct 2017 14:54:47 +0200 - -cma_alloc() unconditionally prints an INFO message when the CMA -allocation fails. Make this message conditional on the non-presence of -__GFP_NOWARN in gfp_mask. - -Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com> -Acked-by: Laura Abbott <labbott@redhat.com> ---- -Hello, - -This patch aims at removing INFO messages that are displayed when the -VC4 driver tries to allocate buffer objects. From the driver perspective -an allocation failure is acceptable, and the driver can possibly do -something to make following allocation succeed (like flushing the VC4 -internal cache). - -Also, I don't understand why this message is only an INFO message, and -not a WARN (pr_warn()). Please let me know if you have good reasons to -keep it as an unconditional pr_info(). - -Thanks, - -Boris ---- - mm/cma.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/mm/cma.c b/mm/cma.c -index c0da318c020e..022e52bd8370 100644 ---- a/mm/cma.c -+++ b/mm/cma.c -@@ -460,7 +460,7 @@ struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align, - - trace_cma_alloc(pfn, page, count, align); - -- if (ret) { -+ if (ret && !(gfp_mask & __GFP_NOWARN)) { - pr_info("%s: alloc failed, req-size: %zu pages, ret: %d\n", - __func__, count, ret); - cma_debug_show_areas(cma); diff --git a/drm-i915-Boost-GPU-clocks-if-we-miss-the-pageflip-s-vblank.patch b/drm-i915-Boost-GPU-clocks-if-we-miss-the-pageflip-s-vblank.patch new file mode 100644 index 000000000..07f81116a --- /dev/null +++ b/drm-i915-Boost-GPU-clocks-if-we-miss-the-pageflip-s-vblank.patch @@ -0,0 +1,200 @@ +From patchwork Thu Aug 17 12:37:06 2017 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 8bit +Subject: drm/i915: Boost GPU clocks if we miss the pageflip's vblank +From: Chris Wilson <chris@chris-wilson.co.uk> +X-Patchwork-Id: 172204 +Message-Id: <20170817123706.6777-1-chris@chris-wilson.co.uk> +To: intel-gfx@lists.freedesktop.org +Cc: Daniel Vetter <daniel.vetter@intel.com> +Date: Thu, 17 Aug 2017 13:37:06 +0100 + +If we miss the current vblank because the gpu was busy, that may cause a +jitter as the frame rate temporarily drops. We try to limit the impact +of this by then boosting the GPU clock to deliver the frame as quickly +as possible. Originally done in commit 6ad790c0f5ac ("drm/i915: Boost GPU +frequency if we detect outstanding pageflips") but was never forward +ported to atomic and finally dropped in commit fd3a40242e87 ("drm/i915: +Rip out legacy page_flip completion/irq handling"). + +References: https://bugs.freedesktop.org/show_bug.cgi?id=102199 +Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> +Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> +Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> +Cc: Daniel Vetter <daniel.vetter@intel.com> +Tested-by: Lyude Paul <lyude@redhat.com> +Reviewed-by: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com> +--- + drivers/gpu/drm/i915/intel_display.c | 59 ++++++++++++++++++++++++++++++++++++ + drivers/gpu/drm/i915/intel_drv.h | 1 - + drivers/gpu/drm/i915/intel_pm.c | 42 ++----------------------- + 3 files changed, 62 insertions(+), 40 deletions(-) + +diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c +index 0e93ec201fe3..7d5b19553637 100644 +--- a/drivers/gpu/drm/i915/intel_display.c ++++ b/drivers/gpu/drm/i915/intel_display.c +@@ -12636,6 +12636,55 @@ static const struct drm_crtc_funcs intel_crtc_funcs = { + .set_crc_source = intel_crtc_set_crc_source, + }; + ++struct wait_rps_boost { ++ struct wait_queue_entry wait; ++ ++ struct drm_crtc *crtc; ++ struct drm_i915_gem_request *request; ++}; ++ ++static int do_rps_boost(struct wait_queue_entry *_wait, ++ unsigned mode, int sync, void *key) ++{ ++ struct wait_rps_boost *wait = container_of(_wait, typeof(*wait), wait); ++ struct drm_i915_gem_request *rq = wait->request; ++ ++ gen6_rps_boost(rq, NULL); ++ i915_gem_request_put(rq); ++ ++ drm_crtc_vblank_put(wait->crtc); ++ ++ list_del(&wait->wait.entry); ++ kfree(wait); ++ return 1; ++} ++ ++static void add_rps_boost_after_vblank(struct drm_crtc *crtc, ++ struct dma_fence *fence) ++{ ++ struct wait_rps_boost *wait; ++ ++ if (!dma_fence_is_i915(fence)) ++ return; ++ ++ if (drm_crtc_vblank_get(crtc)) ++ return; ++ ++ wait = kmalloc(sizeof(*wait), GFP_KERNEL); ++ if (!wait) { ++ drm_crtc_vblank_put(crtc); ++ return; ++ } ++ ++ wait->request = to_request(dma_fence_get(fence)); ++ wait->crtc = crtc; ++ ++ wait->wait.func = do_rps_boost; ++ wait->wait.flags = 0; ++ ++ add_wait_queue(drm_crtc_vblank_waitqueue(crtc), &wait->wait); ++} ++ + /** + * intel_prepare_plane_fb - Prepare fb for usage on plane + * @plane: drm plane to prepare for +@@ -12733,12 +12782,22 @@ intel_prepare_plane_fb(struct drm_plane *plane, + return ret; + + if (!new_state->fence) { /* implicit fencing */ ++ struct dma_fence *fence; ++ + ret = i915_sw_fence_await_reservation(&intel_state->commit_ready, + obj->resv, NULL, + false, I915_FENCE_TIMEOUT, + GFP_KERNEL); + if (ret < 0) + return ret; ++ ++ fence = reservation_object_get_excl_rcu(obj->resv); ++ if (fence) { ++ add_rps_boost_after_vblank(new_state->crtc, fence); ++ dma_fence_put(fence); ++ } ++ } else { ++ add_rps_boost_after_vblank(new_state->crtc, new_state->fence); + } + + return 0; +diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h +index fa47285918f4..e092354b4d63 100644 +--- a/drivers/gpu/drm/i915/intel_drv.h ++++ b/drivers/gpu/drm/i915/intel_drv.h +@@ -1844,7 +1844,6 @@ void gen6_rps_reset_ei(struct drm_i915_private *dev_priv); + void gen6_rps_idle(struct drm_i915_private *dev_priv); + void gen6_rps_boost(struct drm_i915_gem_request *rq, + struct intel_rps_client *rps); +-void intel_queue_rps_boost_for_request(struct drm_i915_gem_request *req); + void g4x_wm_get_hw_state(struct drm_device *dev); + void vlv_wm_get_hw_state(struct drm_device *dev); + void ilk_wm_get_hw_state(struct drm_device *dev); +diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c +index ed662937ec3c..c9fa2eb1903c 100644 +--- a/drivers/gpu/drm/i915/intel_pm.c ++++ b/drivers/gpu/drm/i915/intel_pm.c +@@ -6169,6 +6169,7 @@ void gen6_rps_boost(struct drm_i915_gem_request *rq, + struct intel_rps_client *rps) + { + struct drm_i915_private *i915 = rq->i915; ++ unsigned long flags; + bool boost; + + /* This is intentionally racy! We peek at the state here, then +@@ -6178,13 +6179,13 @@ void gen6_rps_boost(struct drm_i915_gem_request *rq, + return; + + boost = false; +- spin_lock_irq(&rq->lock); ++ spin_lock_irqsave(&rq->lock, flags); + if (!rq->waitboost && !i915_gem_request_completed(rq)) { + atomic_inc(&i915->rps.num_waiters); + rq->waitboost = true; + boost = true; + } +- spin_unlock_irq(&rq->lock); ++ spin_unlock_irqrestore(&rq->lock, flags); + if (!boost) + return; + +@@ -9132,43 +9133,6 @@ int intel_freq_opcode(struct drm_i915_private *dev_priv, int val) + return DIV_ROUND_CLOSEST(val, GT_FREQUENCY_MULTIPLIER); + } + +-struct request_boost { +- struct work_struct work; +- struct drm_i915_gem_request *req; +-}; +- +-static void __intel_rps_boost_work(struct work_struct *work) +-{ +- struct request_boost *boost = container_of(work, struct request_boost, work); +- struct drm_i915_gem_request *req = boost->req; +- +- if (!i915_gem_request_completed(req)) +- gen6_rps_boost(req, NULL); +- +- i915_gem_request_put(req); +- kfree(boost); +-} +- +-void intel_queue_rps_boost_for_request(struct drm_i915_gem_request *req) +-{ +- struct request_boost *boost; +- +- if (req == NULL || INTEL_GEN(req->i915) < 6) +- return; +- +- if (i915_gem_request_completed(req)) +- return; +- +- boost = kmalloc(sizeof(*boost), GFP_ATOMIC); +- if (boost == NULL) +- return; +- +- boost->req = i915_gem_request_get(req); +- +- INIT_WORK(&boost->work, __intel_rps_boost_work); +- queue_work(req->i915->wq, &boost->work); +-} +- + void intel_pm_setup(struct drm_i915_private *dev_priv) + { + mutex_init(&dev_priv->rps.hw_lock); diff --git a/drm-i915-boost-GPU-clocks-if-we-miss-the-pageflip.patch b/drm-i915-boost-GPU-clocks-if-we-miss-the-pageflip.patch deleted file mode 100644 index 0bd0e7cef..000000000 --- a/drm-i915-boost-GPU-clocks-if-we-miss-the-pageflip.patch +++ /dev/null @@ -1,238 +0,0 @@ -From 333e2a813cdfb86ff286ece6f13bec371aa03d7b Mon Sep 17 00:00:00 2001 -From: Chris Wilson <chris@chris-wilson.co.uk> -Date: Thu, 17 Aug 2017 13:37:06 +0100 -Subject: [PATCH] drm/i915: Boost GPU clocks if we miss the pageflip's vblank -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -If we miss the current vblank because the gpu was busy, that may cause a -jitter as the frame rate temporarily drops. We try to limit the impact -of this by then boosting the GPU clock to deliver the frame as quickly -as possible. Originally done in commit 6ad790c0f5ac ("drm/i915: Boost GPU -frequency if we detect outstanding pageflips") but was never forward -ported to atomic and finally dropped in commit fd3a40242e87 ("drm/i915: -Rip out legacy page_flip completion/irq handling"). - -One of the most typical use-cases for this is a mostly idle desktop. -Rendering one frame of the desktop's frontbuffer can easily be -accomplished by the GPU running at low frequency, but often exceeds -the time budget of the desktop compositor. The result is that animations -such as opening the menu, doing a fullscreen switch, or even just trying -to move a window around are slow and jerky. We need to respond within a -frame to give the best impression of a smooth UX, as a compromise we -instead respond if that first frame misses its goal. The result should -be a near-imperceivable initial delay and a smooth animation even -starting from idle. The cost, as ever, is that we spend more power than -is strictly necessary as we overestimate the required GPU frequency and -then try to ramp down. - -This of course is reactionary, too little, too late; nevertheless it is -surprisingly effective. - -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102199 -Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> -Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> -Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> -Cc: Daniel Vetter <daniel.vetter@intel.com> -Link: https://patchwork.freedesktop.org/patch/msgid/20170817123706.6777-1-chris@chris-wilson.co.uk -Tested-by: Lyude Paul <lyude@redhat.com> -Reviewed-by: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com> ---- - drivers/gpu/drm/i915/i915_gem.c | 10 +++--- - drivers/gpu/drm/i915/intel_display.c | 63 ++++++++++++++++++++++++++++++++++++ - drivers/gpu/drm/i915/intel_pm.c | 14 ++++---- - 3 files changed, 77 insertions(+), 10 deletions(-) - -diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c -index 969bac8404f1..7d409b29d75a 100644 ---- a/drivers/gpu/drm/i915/i915_gem.c -+++ b/drivers/gpu/drm/i915/i915_gem.c -@@ -355,6 +355,7 @@ i915_gem_object_wait_fence(struct dma_fence *fence, - long timeout, - struct intel_rps_client *rps) - { -+ unsigned long irq_flags; - struct drm_i915_gem_request *rq; - - BUILD_BUG_ON(I915_WAIT_INTERRUPTIBLE != 0x1); -@@ -410,9 +411,9 @@ i915_gem_object_wait_fence(struct dma_fence *fence, - * Compensate by giving the synchronous client credit for - * a waitboost next time. - */ -- spin_lock(&rq->i915->rps.client_lock); -+ spin_lock_irqsave(&rq->i915->rps.client_lock, irq_flags); - list_del_init(&rps->link); -- spin_unlock(&rq->i915->rps.client_lock); -+ spin_unlock_irqrestore(&rq->i915->rps.client_lock, irq_flags); - } - - return timeout; -@@ -5029,6 +5030,7 @@ void i915_gem_release(struct drm_device *dev, struct drm_file *file) - { - struct drm_i915_file_private *file_priv = file->driver_priv; - struct drm_i915_gem_request *request; -+ unsigned long flags; - - /* Clean up our request list when the client is going away, so that - * later retire_requests won't dereference our soon-to-be-gone -@@ -5040,9 +5042,9 @@ void i915_gem_release(struct drm_device *dev, struct drm_file *file) - spin_unlock(&file_priv->mm.lock); - - if (!list_empty(&file_priv->rps.link)) { -- spin_lock(&to_i915(dev)->rps.client_lock); -+ spin_lock_irqsave(&to_i915(dev)->rps.client_lock, flags); - list_del(&file_priv->rps.link); -- spin_unlock(&to_i915(dev)->rps.client_lock); -+ spin_unlock_irqrestore(&to_i915(dev)->rps.client_lock, flags); - } - } - -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 022125082649..875eb7aec2f1 100644 ---- a/drivers/gpu/drm/i915/intel_display.c -+++ b/drivers/gpu/drm/i915/intel_display.c -@@ -13301,6 +13301,58 @@ static const struct drm_crtc_funcs intel_crtc_funcs = { - .set_crc_source = intel_crtc_set_crc_source, - }; - -+struct wait_rps_boost { -+ struct wait_queue_entry wait; -+ -+ struct drm_crtc *crtc; -+ struct drm_i915_gem_request *request; -+}; -+ -+static int do_rps_boost(struct wait_queue_entry *_wait, -+ unsigned mode, int sync, void *key) -+{ -+ struct wait_rps_boost *wait = container_of(_wait, typeof(*wait), wait); -+ struct drm_i915_gem_request *rq = wait->request; -+ -+ gen6_rps_boost(rq->i915, NULL, rq->emitted_jiffies); -+ i915_gem_request_put(rq); -+ -+ drm_crtc_vblank_put(wait->crtc); -+ -+ list_del(&wait->wait.entry); -+ kfree(wait); -+ return 1; -+} -+ -+static void add_rps_boost_after_vblank(struct drm_crtc *crtc, -+ struct dma_fence *fence) -+{ -+ struct wait_rps_boost *wait; -+ -+ if (!dma_fence_is_i915(fence)) -+ return; -+ -+ if (INTEL_GEN(to_i915(crtc->dev)) < 6) -+ return; -+ -+ if (drm_crtc_vblank_get(crtc)) -+ return; -+ -+ wait = kmalloc(sizeof(*wait), GFP_KERNEL); -+ if (!wait) { -+ drm_crtc_vblank_put(crtc); -+ return; -+ } -+ -+ wait->request = to_request(dma_fence_get(fence)); -+ wait->crtc = crtc; -+ -+ wait->wait.func = do_rps_boost; -+ wait->wait.flags = 0; -+ -+ add_wait_queue(drm_crtc_vblank_waitqueue(crtc), &wait->wait); -+} -+ - /** - * intel_prepare_plane_fb - Prepare fb for usage on plane - * @plane: drm plane to prepare for -@@ -13392,6 +13444,8 @@ intel_prepare_plane_fb(struct drm_plane *plane, - return 0; - - if (!new_state->fence) { /* implicit fencing */ -+ struct dma_fence *fence; -+ - ret = i915_sw_fence_await_reservation(&intel_state->commit_ready, - obj->resv, NULL, - false, I915_FENCE_TIMEOUT, -@@ -13399,7 +13453,16 @@ intel_prepare_plane_fb(struct drm_plane *plane, - if (ret < 0) - return ret; - -+ fence = reservation_object_get_excl_rcu(obj->resv); -+ if (fence) { -+ add_rps_boost_after_vblank(new_state->crtc, fence); -+ dma_fence_put(fence); -+ } -+ - i915_gem_object_wait_priority(obj, 0, I915_PRIORITY_DISPLAY); -+ -+ } else { -+ add_rps_boost_after_vblank(new_state->crtc, new_state->fence); - } - - return 0; -diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c -index 40b224b44d1b..b0ee9c4d33f4 100644 ---- a/drivers/gpu/drm/i915/intel_pm.c -+++ b/drivers/gpu/drm/i915/intel_pm.c -@@ -6108,6 +6108,7 @@ void gen6_rps_busy(struct drm_i915_private *dev_priv) - - void gen6_rps_idle(struct drm_i915_private *dev_priv) - { -+ unsigned long flags; - /* Flush our bottom-half so that it does not race with us - * setting the idle frequency and so that it is bounded by - * our rpm wakeref. And then disable the interrupts to stop any -@@ -6127,16 +6128,17 @@ void gen6_rps_idle(struct drm_i915_private *dev_priv) - } - mutex_unlock(&dev_priv->rps.hw_lock); - -- spin_lock(&dev_priv->rps.client_lock); -+ spin_lock_irqsave(&dev_priv->rps.client_lock, flags); - while (!list_empty(&dev_priv->rps.clients)) - list_del_init(dev_priv->rps.clients.next); -- spin_unlock(&dev_priv->rps.client_lock); -+ spin_unlock_irqrestore(&dev_priv->rps.client_lock, flags); - } - - void gen6_rps_boost(struct drm_i915_private *dev_priv, - struct intel_rps_client *rps, - unsigned long submitted) - { -+ unsigned long flags; - /* This is intentionally racy! We peek at the state here, then - * validate inside the RPS worker. - */ -@@ -6151,14 +6153,14 @@ void gen6_rps_boost(struct drm_i915_private *dev_priv, - if (rps && time_after(jiffies, submitted + DRM_I915_THROTTLE_JIFFIES)) - rps = NULL; - -- spin_lock(&dev_priv->rps.client_lock); -+ spin_lock_irqsave(&dev_priv->rps.client_lock, flags); - if (rps == NULL || list_empty(&rps->link)) { -- spin_lock_irq(&dev_priv->irq_lock); -+ spin_lock(&dev_priv->irq_lock); - if (dev_priv->rps.interrupts_enabled) { - dev_priv->rps.client_boost = true; - schedule_work(&dev_priv->rps.work); - } -- spin_unlock_irq(&dev_priv->irq_lock); -+ spin_unlock(&dev_priv->irq_lock); - - if (rps != NULL) { - list_add(&rps->link, &dev_priv->rps.clients); -@@ -6166,7 +6168,7 @@ void gen6_rps_boost(struct drm_i915_private *dev_priv, - } else - dev_priv->rps.boosts++; - } -- spin_unlock(&dev_priv->rps.client_lock); -+ spin_unlock_irqrestore(&dev_priv->rps.client_lock, flags); - } - - int intel_set_rps(struct drm_i915_private *dev_priv, u8 val) diff --git a/efi-lockdown.patch b/efi-lockdown.patch index e04878458..4ac65fd5d 100644 --- a/efi-lockdown.patch +++ b/efi-lockdown.patch @@ -1,53 +1,7 @@ -From df7d76ae50f18d4465e59fdf7f19d3df44906cb5 Mon Sep 17 00:00:00 2001 -From: Josh Boyer <jwboyer@fedoraproject.org> -Date: Mon, 21 Nov 2016 23:55:55 +0000 -Subject: [PATCH 07/32] efi: Add EFI_SECURE_BOOT bit - -UEFI machines can be booted in Secure Boot mode. Add a EFI_SECURE_BOOT bit -that can be passed to efi_enabled() to find out whether secure boot is -enabled. - -This will be used by the SysRq+x handler, registered by the x86 arch, to find -out whether secure boot mode is enabled so that it can be disabled. - -Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org> -Signed-off-by: David Howells <dhowells@redhat.com> ---- - arch/x86/kernel/setup.c | 1 + - include/linux/efi.h | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c -index 69780ed..447905e 100644 ---- a/arch/x86/kernel/setup.c -+++ b/arch/x86/kernel/setup.c -@@ -1182,6 +1182,7 @@ void __init setup_arch(char **cmdline_p) - pr_info("Secure boot disabled\n"); - break; - case efi_secureboot_mode_enabled: -+ set_bit(EFI_SECURE_BOOT, &efi.flags); - pr_info("Secure boot enabled\n"); - break; - default: -diff --git a/include/linux/efi.h b/include/linux/efi.h -index 94d34e0..6049600 100644 ---- a/include/linux/efi.h -+++ b/include/linux/efi.h -@@ -1069,6 +1069,7 @@ extern int __init efi_setup_pcdp_console(char *); - #define EFI_DBG 8 /* Print additional debug info at runtime */ - #define EFI_NX_PE_DATA 9 /* Can runtime data regions be mapped non-executable? */ - #define EFI_MEM_ATTR 10 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */ -+#define EFI_SECURE_BOOT 11 /* Are we in Secure Boot mode? */ - - #ifdef CONFIG_EFI - /* --- -2.7.4 - -From f05a90c19a9613d8d50597319ed91f691e25b689 Mon Sep 17 00:00:00 2001 +From 646ac5c07196bc3680e34188e55c8cc3565f65e7 Mon Sep 17 00:00:00 2001 From: David Howells <dhowells@redhat.com> -Date: Mon, 21 Nov 2016 23:36:17 +0000 -Subject: [PATCH 09/32] Add the ability to lock down access to the running +Date: Wed, 24 May 2017 14:56:00 +0100 +Subject: [PATCH 01/26] Add the ability to lock down access to the running kernel image Provide a single call to allow kernel code to determine whether the system @@ -57,64 +11,70 @@ modules that aren't validly signed with a key we recognise, fiddling with MSR registers and disallowing hibernation, Signed-off-by: David Howells <dhowells@redhat.com> +Acked-by: James Morris <james.l.morris@oracle.com> --- - include/linux/kernel.h | 9 +++++++++ - include/linux/security.h | 11 +++++++++++ - security/Kconfig | 15 +++++++++++++++ + include/linux/kernel.h | 17 ++++++++++++++ + include/linux/security.h | 8 +++++++ + security/Kconfig | 8 +++++++ security/Makefile | 3 +++ - security/lock_down.c | 40 ++++++++++++++++++++++++++++++++++++++++ - 5 files changed, 78 insertions(+) + security/lock_down.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++ + 5 files changed, 96 insertions(+) create mode 100644 security/lock_down.c diff --git a/include/linux/kernel.h b/include/linux/kernel.h -index cb09238..3cd3be9 100644 +index 0ad4c3044cf9..362da2e4bf53 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h -@@ -273,6 +273,15 @@ extern int oops_may_print(void); - void do_exit(long error_code) __noreturn; - void complete_and_exit(struct completion *, long) __noreturn; - +@@ -287,6 +287,23 @@ static inline void refcount_error_report(struct pt_regs *regs, const char *err) + { } + #endif + +#ifdef CONFIG_LOCK_DOWN_KERNEL -+extern bool kernel_is_locked_down(void); ++extern bool __kernel_is_locked_down(const char *what, bool first); +#else -+static inline bool kernel_is_locked_down(void) ++static inline bool __kernel_is_locked_down(const char *what, bool first) +{ + return false; +} +#endif + ++#define kernel_is_locked_down(what) \ ++ ({ \ ++ static bool message_given; \ ++ bool locked_down = __kernel_is_locked_down(what, !message_given); \ ++ message_given = true; \ ++ locked_down; \ ++ }) ++ /* Internal, do not use. */ int __must_check _kstrtoul(const char *s, unsigned int base, unsigned long *res); int __must_check _kstrtol(const char *s, unsigned int base, long *res); diff --git a/include/linux/security.h b/include/linux/security.h -index d3868f2..187b74b 100644 +index ce6265960d6c..310775476b68 100644 --- a/include/linux/security.h +++ b/include/linux/security.h -@@ -1679,5 +1679,16 @@ static inline void free_secdata(void *secdata) +@@ -1753,5 +1753,13 @@ static inline void free_secdata(void *secdata) { } #endif /* CONFIG_SECURITY */ - + +#ifdef CONFIG_LOCK_DOWN_KERNEL -+extern void lock_kernel_down(void); -+#ifdef CONFIG_ALLOW_LOCKDOWN_LIFT -+extern void lift_kernel_lockdown(void); -+#endif ++extern void __init init_lockdown(void); +#else -+static inline void lock_kernel_down(void) ++static inline void __init init_lockdown(void) +{ +} +#endif + #endif /* ! __LINUX_SECURITY_H */ - + diff --git a/security/Kconfig b/security/Kconfig -index d900f47..d9b391d 100644 +index e8e449444e65..8e01fd59ae7e 100644 --- a/security/Kconfig +++ b/security/Kconfig -@@ -193,6 +193,21 @@ config STATIC_USERMODEHELPER_PATH +@@ -205,6 +205,14 @@ config STATIC_USERMODEHELPER_PATH If you wish for all usermode helper programs to be disabled, specify an empty string here (i.e. ""). - + +config LOCK_DOWN_KERNEL + bool "Allow the kernel to be 'locked down'" + help @@ -123,18 +83,11 @@ index d900f47..d9b391d 100644 + turns off various features that might otherwise allow access to the + kernel image (eg. setting MSR registers). + -+config ALLOW_LOCKDOWN_LIFT -+ bool -+ help -+ Allow the lockdown on a kernel to be lifted, thereby restoring the -+ ability of userspace to access the kernel image (eg. by SysRq+x under -+ x86). -+ source security/selinux/Kconfig source security/smack/Kconfig source security/tomoyo/Kconfig diff --git a/security/Makefile b/security/Makefile -index f2d71cd..8c4a43e 100644 +index f2d71cdb8e19..8c4a43e3d4e0 100644 --- a/security/Makefile +++ b/security/Makefile @@ -29,3 +29,6 @@ obj-$(CONFIG_CGROUP_DEVICE) += device_cgroup.o @@ -146,10 +99,10 @@ index f2d71cd..8c4a43e 100644 +obj-$(CONFIG_LOCK_DOWN_KERNEL) += lock_down.o diff --git a/security/lock_down.c b/security/lock_down.c new file mode 100644 -index 0000000..5788c60 +index 000000000000..d8595c0e6673 --- /dev/null +++ b/security/lock_down.c -@@ -0,0 +1,40 @@ +@@ -0,0 +1,60 @@ +/* Lock down the kernel + * + * Copyright (C) 2016 Red Hat, Inc. All Rights Reserved. @@ -164,282 +117,110 @@ index 0000000..5788c60 +#include <linux/security.h> +#include <linux/export.h> + -+static __read_mostly bool kernel_locked_down; ++static __ro_after_init bool kernel_locked_down; + +/* + * Put the kernel into lock-down mode. + */ -+void lock_kernel_down(void) ++static void __init lock_kernel_down(const char *where) +{ -+ kernel_locked_down = true; ++ if (!kernel_locked_down) { ++ kernel_locked_down = true; ++ pr_notice("Kernel is locked down from %s; see man kernel_lockdown.7\n", ++ where); ++ } +} + ++static int __init lockdown_param(char *ignored) ++{ ++ lock_kernel_down("command line"); ++ return 0; ++} ++ ++early_param("lockdown", lockdown_param); ++ +/* -+ * Take the kernel out of lockdown mode. ++ * Lock the kernel down from very early in the arch setup. This must happen ++ * prior to things like ACPI being initialised. + */ -+void lift_kernel_lockdown(void) ++void __init init_lockdown(void) +{ -+ kernel_locked_down = false; ++#ifdef CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT ++ if (efi_enabled(EFI_SECURE_BOOT)) ++ lock_kernel_down("EFI secure boot"); ++#endif +} + +/** + * kernel_is_locked_down - Find out if the kernel is locked down ++ * @what: Tag to use in notice generated if lockdown is in effect + */ -+bool kernel_is_locked_down(void) ++bool __kernel_is_locked_down(const char *what, bool first) +{ ++ if (what && first && kernel_locked_down) ++ pr_notice("Lockdown: %s is restricted; see man kernel_lockdown.7\n", ++ what); + return kernel_locked_down; +} -+EXPORT_SYMBOL(kernel_is_locked_down); ++EXPORT_SYMBOL(__kernel_is_locked_down); -- -2.7.4 - -From fb6feb38e297260d050fc477c72683ac51d07ae3 Mon Sep 17 00:00:00 2001 -From: David Howells <dhowells@redhat.com> -Date: Mon, 21 Nov 2016 23:55:55 +0000 -Subject: [PATCH 10/32] efi: Lock down the kernel if booted in secure boot mode +2.13.6 -UEFI Secure Boot provides a mechanism for ensuring that the firmware will -only load signed bootloaders and kernels. Certain use cases may also -require that all kernel modules also be signed. Add a configuration option -that to lock down the kernel - which includes requiring validly signed -modules - if the kernel is secure-booted. - -Signed-off-by: David Howells <dhowells@redhat.com> ---- - arch/x86/Kconfig | 12 ++++++++++++ - arch/x86/kernel/setup.c | 8 +++++++- - 2 files changed, 19 insertions(+), 1 deletion(-) - -diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index 874c123..a315974 100644 ---- a/arch/x86/Kconfig -+++ b/arch/x86/Kconfig -@@ -1816,6 +1816,18 @@ config EFI_MIXED - - If unsure, say N. - -+config EFI_SECURE_BOOT_LOCK_DOWN -+ def_bool n -+ depends on EFI -+ prompt "Lock down the kernel when UEFI Secure Boot is enabled" -+ ---help--- -+ UEFI Secure Boot provides a mechanism for ensuring that the firmware -+ will only load signed bootloaders and kernels. Certain use cases may -+ also require that all kernel modules also be signed and that -+ userspace is prevented from directly changing the running kernel -+ image. Say Y here to automatically lock down the kernel when a -+ system boots with UEFI Secure Boot enabled. -+ - config SECCOMP - def_bool y - prompt "Enable seccomp to safely compute untrusted bytecode" -diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c -index 447905e..d44e60e 100644 ---- a/arch/x86/kernel/setup.c -+++ b/arch/x86/kernel/setup.c -@@ -69,6 +69,7 @@ - #include <linux/crash_dump.h> - #include <linux/tboot.h> - #include <linux/jiffies.h> -+#include <linux/security.h> - - #include <linux/usb/xhci-dbgp.h> - #include <video/edid.h> -@@ -1183,7 +1184,12 @@ void __init setup_arch(char **cmdline_p) - break; - case efi_secureboot_mode_enabled: - set_bit(EFI_SECURE_BOOT, &efi.flags); -- pr_info("Secure boot enabled\n"); -+ if (IS_ENABLED(CONFIG_EFI_SECURE_BOOT_LOCK_DOWN)) { -+ lock_kernel_down(); -+ pr_info("Secure boot enabled and kernel locked down\n"); -+ } else { -+ pr_info("Secure boot enabled\n"); -+ } - break; - default: - pr_info("Secure boot could not be determined\n"); --- -2.7.4 +From 2c46467f43bc54324de5474a8355f98c692309e4 Mon Sep 17 00:00:00 2001 +From: Kyle McMartin <kyle@redhat.com> +Date: Wed, 18 Oct 2017 14:02:25 +0100 +Subject: [PATCH 02/26] Add a SysRq option to lift kernel lockdown -From 7182f2f5b254d6dc6d3105d2f99219a76adf9de0 Mon Sep 17 00:00:00 2001 -From: David Howells <dhowells@redhat.com> -Date: Wed, 23 Nov 2016 13:22:22 +0000 -Subject: [PATCH 11/32] Enforce module signatures if the kernel is locked down +Make an option to provide a sysrq key that will lift the kernel lockdown, +thereby allowing the running kernel image to be accessed and modified. -If the kernel is locked down, require that all modules have valid -signatures that we can verify. +On x86_64 this is triggered with SysRq+x, but this key may not be available +on all arches, so it is set by setting LOCKDOWN_LIFT_KEY in asm/setup.h. +Signed-off-by: Kyle McMartin <kyle@redhat.com> Signed-off-by: David Howells <dhowells@redhat.com> +cc: x86@kernel.org --- - kernel/module.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/kernel/module.c b/kernel/module.c -index 7eba6de..3331f2e 100644 ---- a/kernel/module.c -+++ b/kernel/module.c -@@ -2756,7 +2756,7 @@ static int module_sig_check(struct load_info *info, int flags) - } - - /* Not having a signature is only an error if we're strict. */ -- if (err == -ENOKEY && !sig_enforce) -+ if (err == -ENOKEY && !sig_enforce && !kernel_is_locked_down()) - err = 0; - - return err; --- -2.7.4 - -From 7e97c58bcd0b4c082b889fb093a2779147532b9f Mon Sep 17 00:00:00 2001 -From: Matthew Garrett <matthew.garrett@nebula.com> -Date: Tue, 22 Nov 2016 08:46:16 +0000 -Subject: [PATCH 12/32] Restrict /dev/mem and /dev/kmem when the kernel is - locked down - -Allowing users to write to address space makes it possible for the kernel to -be subverted, avoiding module loading restrictions. Prevent this when the -kernel has been locked down. - -Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com> -Signed-off-by: David Howells <dhowells@redhat.com> ---- - drivers/char/mem.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/drivers/char/mem.c b/drivers/char/mem.c -index 6d9cc2d..f814404 100644 ---- a/drivers/char/mem.c -+++ b/drivers/char/mem.c -@@ -163,6 +163,9 @@ static ssize_t write_mem(struct file *file, const char __user *buf, - if (p != *ppos) - return -EFBIG; - -+ if (kernel_is_locked_down()) -+ return -EPERM; + arch/x86/include/asm/setup.h | 2 ++ + drivers/input/misc/uinput.c | 1 + + drivers/tty/sysrq.c | 19 ++++++++++++------ + include/linux/input.h | 5 +++++ + include/linux/sysrq.h | 8 +++++++- + kernel/debug/kdb/kdb_main.c | 2 +- + security/Kconfig | 8 ++++++++ + security/lock_down.c | 47 ++++++++++++++++++++++++++++++++++++++++++++ + 8 files changed, 84 insertions(+), 8 deletions(-) + +diff --git a/arch/x86/include/asm/setup.h b/arch/x86/include/asm/setup.h +index a65cf544686a..863f77582c09 100644 +--- a/arch/x86/include/asm/setup.h ++++ b/arch/x86/include/asm/setup.h +@@ -8,6 +8,8 @@ + #include <linux/linkage.h> + #include <asm/page_types.h> + ++#define LOCKDOWN_LIFT_KEY 'x' + - if (!valid_phys_addr_range(p, count)) - return -EFAULT; - -@@ -513,6 +516,9 @@ static ssize_t write_kmem(struct file *file, const char __user *buf, - char *kbuf; /* k-addr because vwrite() takes vmlist_lock rwlock */ - int err = 0; - -+ if (kernel_is_locked_down()) -+ return -EPERM; -+ - if (p < (unsigned long) high_memory) { - unsigned long to_write = min_t(unsigned long, count, - (unsigned long)high_memory - p); --- -2.7.4 - -From b83b68a9a13120664eaabf21a7b3ff0b065bd5b2 Mon Sep 17 00:00:00 2001 -From: Kyle McMartin <kyle@redhat.com> -Date: Mon, 21 Nov 2016 23:55:56 +0000 -Subject: [PATCH 13/32] Add a sysrq option to exit secure boot mode - -Make sysrq+x exit secure boot mode on x86_64, thereby allowing the running -kernel image to be modified. This lifts the lockdown. + #ifdef __i386__ -Signed-off-by: David Howells <dhowells@redhat.com> ---- - arch/x86/Kconfig | 10 ++++++++++ - arch/x86/kernel/setup.c | 31 +++++++++++++++++++++++++++++++ - drivers/input/misc/uinput.c | 1 + - drivers/tty/sysrq.c | 19 +++++++++++++------ - include/linux/input.h | 5 +++++ - include/linux/sysrq.h | 8 +++++++- - kernel/debug/kdb/kdb_main.c | 2 +- - 7 files changed, 68 insertions(+), 8 deletions(-) - -diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index a315974..6931e68 100644 ---- a/arch/x86/Kconfig -+++ b/arch/x86/Kconfig -@@ -1828,6 +1828,16 @@ config EFI_SECURE_BOOT_LOCK_DOWN - image. Say Y here to automatically lock down the kernel when a - system boots with UEFI Secure Boot enabled. - -+config EFI_ALLOW_SECURE_BOOT_EXIT -+ def_bool n -+ depends on EFI_SECURE_BOOT_LOCK_DOWN && MAGIC_SYSRQ -+ select ALLOW_LOCKDOWN_LIFT -+ prompt "Allow secure boot mode to be exited with SysRq+x on a keyboard" -+ ---help--- -+ Allow secure boot mode to be exited and the kernel lockdown lifted by -+ typing SysRq+x on a keyboard attached to the system (not permitted -+ through procfs). -+ - config SECCOMP - def_bool y - prompt "Enable seccomp to safely compute untrusted bytecode" -diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c -index d44e60e..f7635d0 100644 ---- a/arch/x86/kernel/setup.c -+++ b/arch/x86/kernel/setup.c -@@ -71,6 +71,11 @@ - #include <linux/jiffies.h> - #include <linux/security.h> - -+#include <linux/fips.h> -+#include <linux/cred.h> -+#include <linux/sysrq.h> -+#include <linux/init_task.h> -+ - #include <linux/usb/xhci-dbgp.h> - #include <video/edid.h> - -@@ -1328,6 +1333,32 @@ void __init i386_reserve_resources(void) - - #endif /* CONFIG_X86_32 */ - -+#ifdef CONFIG_EFI_ALLOW_SECURE_BOOT_EXIT -+ -+static void sysrq_handle_secure_boot(int key) -+{ -+ if (!efi_enabled(EFI_SECURE_BOOT)) -+ return; -+ -+ pr_info("Secure boot disabled\n"); -+ lift_kernel_lockdown(); -+} -+static struct sysrq_key_op secure_boot_sysrq_op = { -+ .handler = sysrq_handle_secure_boot, -+ .help_msg = "unSB(x)", -+ .action_msg = "Disabling Secure Boot restrictions", -+ .enable_mask = SYSRQ_DISABLE_USERSPACE, -+}; -+static int __init secure_boot_sysrq(void) -+{ -+ if (efi_enabled(EFI_SECURE_BOOT)) -+ register_sysrq_key('x', &secure_boot_sysrq_op); -+ return 0; -+} -+late_initcall(secure_boot_sysrq); -+#endif /*CONFIG_EFI_ALLOW_SECURE_BOOT_EXIT*/ -+ -+ - static struct notifier_block kernel_offset_notifier = { - .notifier_call = dump_kernel_offset - }; + #include <linux/pfn.h> diff --git a/drivers/input/misc/uinput.c b/drivers/input/misc/uinput.c -index 022be0e..4a054a5 100644 +index 443151de90c6..45a1f5460805 100644 --- a/drivers/input/misc/uinput.c +++ b/drivers/input/misc/uinput.c -@@ -387,6 +387,7 @@ static int uinput_allocate_device(struct uinput_device *udev) +@@ -408,6 +408,7 @@ static int uinput_allocate_device(struct uinput_device *udev) if (!udev->dev) return -ENOMEM; - + + udev->dev->flags |= INPUTDEV_FLAGS_SYNTHETIC; udev->dev->event = uinput_dev_event; input_set_drvdata(udev->dev, udev); - + diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c -index 7113674..e1addc3 100644 +index 3ffc1ce29023..8b766dbad6dd 100644 --- a/drivers/tty/sysrq.c +++ b/drivers/tty/sysrq.c -@@ -479,6 +479,7 @@ static struct sysrq_key_op *sysrq_key_table[36] = { +@@ -481,6 +481,7 @@ static struct sysrq_key_op *sysrq_key_table[36] = { /* x: May be registered on mips for TLB dump */ /* x: May be registered on ppc/powerpc for xmon */ /* x: May be registered on sparc64 for global PMU dump */ @@ -447,17 +228,17 @@ index 7113674..e1addc3 100644 NULL, /* x */ /* y: May be registered on sparc64 for global register dump */ NULL, /* y */ -@@ -522,7 +523,7 @@ static void __sysrq_put_key_op(int key, struct sysrq_key_op *op_p) +@@ -524,7 +525,7 @@ static void __sysrq_put_key_op(int key, struct sysrq_key_op *op_p) sysrq_key_table[i] = op_p; } - + -void __handle_sysrq(int key, bool check_mask) +void __handle_sysrq(int key, unsigned int from) { struct sysrq_key_op *op_p; int orig_log_level; -@@ -542,11 +543,15 @@ void __handle_sysrq(int key, bool check_mask) - +@@ -544,11 +545,15 @@ void __handle_sysrq(int key, bool check_mask) + op_p = __sysrq_get_key_op(key); if (op_p) { + /* Ban synthetic events from some sysrq functionality */ @@ -473,7 +254,7 @@ index 7113674..e1addc3 100644 pr_cont("%s\n", op_p->action_msg); console_loglevel = orig_log_level; op_p->handler(key); -@@ -578,7 +583,7 @@ void __handle_sysrq(int key, bool check_mask) +@@ -580,7 +585,7 @@ void __handle_sysrq(int key, bool check_mask) void handle_sysrq(int key) { if (sysrq_on()) @@ -481,18 +262,18 @@ index 7113674..e1addc3 100644 + __handle_sysrq(key, SYSRQ_FROM_KERNEL); } EXPORT_SYMBOL(handle_sysrq); - -@@ -659,7 +664,7 @@ static void sysrq_do_reset(unsigned long _state) + +@@ -661,7 +666,7 @@ static void sysrq_do_reset(unsigned long _state) static void sysrq_handle_reset_request(struct sysrq_state *state) { if (state->reset_requested) - __handle_sysrq(sysrq_xlate[KEY_B], false); + __handle_sysrq(sysrq_xlate[KEY_B], SYSRQ_FROM_KERNEL); - + if (sysrq_reset_downtime_ms) mod_timer(&state->keyreset_timer, -@@ -810,8 +815,10 @@ static bool sysrq_handle_keypress(struct sysrq_state *sysrq, - +@@ -812,8 +817,10 @@ static bool sysrq_handle_keypress(struct sysrq_state *sysrq, + default: if (sysrq->active && value && value != 2) { + int from = sysrq->handle.dev->flags & INPUTDEV_FLAGS_SYNTHETIC ? @@ -503,17 +284,17 @@ index 7113674..e1addc3 100644 } break; } -@@ -1095,7 +1102,7 @@ static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf, - +@@ -1097,7 +1104,7 @@ static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf, + if (get_user(c, buf)) return -EFAULT; - __handle_sysrq(c, false); + __handle_sysrq(c, SYSRQ_FROM_PROC); } - + return count; diff --git a/include/linux/input.h b/include/linux/input.h -index a65e3b2..8b03571 100644 +index fb5e23c7ed98..9d2b45a21ade 100644 --- a/include/linux/input.h +++ b/include/linux/input.h @@ -42,6 +42,7 @@ struct input_value { @@ -527,29 +308,29 @@ index a65e3b2..8b03571 100644 @@ -124,6 +125,8 @@ struct input_dev { const char *uniq; struct input_id id; - + + unsigned int flags; + unsigned long propbit[BITS_TO_LONGS(INPUT_PROP_CNT)]; - + unsigned long evbit[BITS_TO_LONGS(EV_CNT)]; @@ -190,6 +193,8 @@ struct input_dev { }; #define to_input_dev(d) container_of(d, struct input_dev, dev) - + +#define INPUTDEV_FLAGS_SYNTHETIC 0x000000001 + /* * Verify that we are in sync with input_device_id mod_devicetable.h #defines */ diff --git a/include/linux/sysrq.h b/include/linux/sysrq.h -index 387fa7d..f7c52a9 100644 +index 387fa7d05c98..f7c52a9ea394 100644 --- a/include/linux/sysrq.h +++ b/include/linux/sysrq.h @@ -28,6 +28,8 @@ #define SYSRQ_ENABLE_BOOT 0x0080 #define SYSRQ_ENABLE_RTNICE 0x0100 - + +#define SYSRQ_DISABLE_USERSPACE 0x00010000 + struct sysrq_key_op { @@ -558,7 +339,7 @@ index 387fa7d..f7c52a9 100644 @@ -42,8 +44,12 @@ struct sysrq_key_op { * are available -- else NULL's). */ - + +#define SYSRQ_FROM_KERNEL 0x0001 +#define SYSRQ_FROM_PROC 0x0002 +#define SYSRQ_FROM_SYNTHETIC 0x0004 @@ -570,25 +351,179 @@ index 387fa7d..f7c52a9 100644 int unregister_sysrq_key(int key, struct sysrq_key_op *op); struct sysrq_key_op *__sysrq_get_key_op(int key); diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c -index ca18391..c4524b8 100644 +index c8146d53ca67..b480cadf9272 100644 --- a/kernel/debug/kdb/kdb_main.c +++ b/kernel/debug/kdb/kdb_main.c -@@ -1967,7 +1967,7 @@ static int kdb_sr(int argc, const char **argv) +@@ -1970,7 +1970,7 @@ static int kdb_sr(int argc, const char **argv) return KDB_ARGCOUNT; - + kdb_trap_printk++; - __handle_sysrq(*argv[1], check_mask); + __handle_sysrq(*argv[1], check_mask ? SYSRQ_FROM_KERNEL : 0); kdb_trap_printk--; - + return 0; +diff --git a/security/Kconfig b/security/Kconfig +index 8e01fd59ae7e..453cc89c198a 100644 +--- a/security/Kconfig ++++ b/security/Kconfig +@@ -213,6 +213,14 @@ config LOCK_DOWN_KERNEL + turns off various features that might otherwise allow access to the + kernel image (eg. setting MSR registers). + ++config ALLOW_LOCKDOWN_LIFT_BY_SYSRQ ++ bool "Allow the kernel lockdown to be lifted by SysRq" ++ depends on LOCK_DOWN_KERNEL && MAGIC_SYSRQ ++ help ++ Allow the lockdown on a kernel to be lifted, by pressing a SysRq key ++ combination on a wired keyboard. ++ ++ + source security/selinux/Kconfig + source security/smack/Kconfig + source security/tomoyo/Kconfig +diff --git a/security/lock_down.c b/security/lock_down.c +index d8595c0e6673..2c6b00f0c229 100644 +--- a/security/lock_down.c ++++ b/security/lock_down.c +@@ -11,8 +11,14 @@ + + #include <linux/security.h> + #include <linux/export.h> ++#include <linux/sysrq.h> ++#include <asm/setup.h> + ++#ifdef CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ ++static __read_mostly bool kernel_locked_down; ++#else + static __ro_after_init bool kernel_locked_down; ++#endif + + /* + * Put the kernel into lock-down mode. +@@ -58,3 +64,44 @@ bool __kernel_is_locked_down(const char *what, bool first) + return kernel_locked_down; + } + EXPORT_SYMBOL(__kernel_is_locked_down); ++ ++#ifdef CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ ++ ++/* ++ * Take the kernel out of lockdown mode. ++ */ ++static void lift_kernel_lockdown(void) ++{ ++ pr_notice("Lifting lockdown\n"); ++ kernel_locked_down = false; ++} ++ ++/* ++ * Allow lockdown to be lifted by pressing something like SysRq+x (and not by ++ * echoing the appropriate letter into the sysrq-trigger file). ++ */ ++static void sysrq_handle_lockdown_lift(int key) ++{ ++ if (kernel_locked_down) ++ lift_kernel_lockdown(); ++} ++ ++static struct sysrq_key_op lockdown_lift_sysrq_op = { ++ .handler = sysrq_handle_lockdown_lift, ++ .help_msg = "unSB(x)", ++ .action_msg = "Disabling Secure Boot restrictions", ++ .enable_mask = SYSRQ_DISABLE_USERSPACE, ++}; ++ ++static int __init lockdown_lift_sysrq(void) ++{ ++ if (kernel_locked_down) { ++ lockdown_lift_sysrq_op.help_msg[5] = LOCKDOWN_LIFT_KEY; ++ register_sysrq_key(LOCKDOWN_LIFT_KEY, &lockdown_lift_sysrq_op); ++ } ++ return 0; ++} ++ ++late_initcall(lockdown_lift_sysrq); ++ ++#endif /* CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ */ +-- +2.13.6 + +From 4c389db9daee3a3a444339a7d789de1d9366f736 Mon Sep 17 00:00:00 2001 +From: David Howells <dhowells@redhat.com> +Date: Wed, 24 May 2017 14:56:01 +0100 +Subject: [PATCH 03/26] Enforce module signatures if the kernel is locked down + +If the kernel is locked down, require that all modules have valid +signatures that we can verify. + +Signed-off-by: David Howells <dhowells@redhat.com> +Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com> +Reviewed-by: James Morris <james.l.morris@oracle.com> +--- + kernel/module.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/kernel/module.c b/kernel/module.c +index de66ec825992..3d9a3270c179 100644 +--- a/kernel/module.c ++++ b/kernel/module.c +@@ -2781,7 +2781,8 @@ static int module_sig_check(struct load_info *info, int flags) + } + + /* Not having a signature is only an error if we're strict. */ +- if (err == -ENOKEY && !sig_enforce) ++ if (err == -ENOKEY && !sig_enforce && ++ !kernel_is_locked_down("Loading of unsigned modules")) + err = 0; + + return err; -- -2.7.4 +2.13.6 -From 8884bd44932e595323fcddfb09c2a2a586134cdf Mon Sep 17 00:00:00 2001 +From 59312c44aa46939a14b3fbfeb510f94b4a73c8a1 Mon Sep 17 00:00:00 2001 From: Matthew Garrett <matthew.garrett@nebula.com> -Date: Tue, 22 Nov 2016 08:46:15 +0000 -Subject: [PATCH 14/32] kexec: Disable at runtime if the kernel is locked down +Date: Wed, 24 May 2017 14:56:02 +0100 +Subject: [PATCH 04/26] Restrict /dev/{mem,kmem,port} when the kernel is locked + down + +Allowing users to read and write to core kernel memory makes it possible +for the kernel to be subverted, avoiding module loading restrictions, and +also to steal cryptographic information. + +Disallow /dev/mem and /dev/kmem from being opened this when the kernel has +been locked down to prevent this. + +Also disallow /dev/port from being opened to prevent raw ioport access and +thus DMA from being used to accomplish the same thing. + +Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com> +Signed-off-by: David Howells <dhowells@redhat.com> +Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com> +--- + drivers/char/mem.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/char/mem.c b/drivers/char/mem.c +index 593a8818aca9..0ce5ac0a5c6b 100644 +--- a/drivers/char/mem.c ++++ b/drivers/char/mem.c +@@ -762,6 +762,8 @@ static loff_t memory_lseek(struct file *file, loff_t offset, int orig) + + static int open_port(struct inode *inode, struct file *filp) + { ++ if (kernel_is_locked_down("/dev/mem,kmem,port")) ++ return -EPERM; + return capable(CAP_SYS_RAWIO) ? 0 : -EPERM; + } + +-- +2.13.6 + +From 6304f16efd61e66701f4b331e95da3cafb5f5f76 Mon Sep 17 00:00:00 2001 +From: Matthew Garrett <matthew.garrett@nebula.com> +Date: Wed, 24 May 2017 14:56:02 +0100 +Subject: [PATCH 05/26] kexec: Disable at runtime if the kernel is locked down kexec permits the loading and execution of arbitrary code in ring 0, which is something that lock-down is meant to prevent. It makes sense to disable @@ -599,22 +534,26 @@ image to be booted. Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com> Signed-off-by: David Howells <dhowells@redhat.com> +Acked-by: Dave Young <dyoung@redhat.com> +Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com> +Reviewed-by: James Morris <james.l.morris@oracle.com> +cc: kexec@lists.infradead.org --- kernel/kexec.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/kernel/kexec.c b/kernel/kexec.c -index 980936a..46de8e6 100644 +index e62ec4dc6620..7dadfed9b676 100644 --- a/kernel/kexec.c +++ b/kernel/kexec.c -@@ -194,6 +194,13 @@ SYSCALL_DEFINE4(kexec_load, unsigned long, entry, unsigned long, nr_segments, +@@ -202,6 +202,13 @@ SYSCALL_DEFINE4(kexec_load, unsigned long, entry, unsigned long, nr_segments, return -EPERM; - + /* + * kexec can be used to circumvent module loading restrictions, so + * prevent loading in that case + */ -+ if (kernel_is_locked_down()) ++ if (kernel_is_locked_down("kexec of unsigned images")) + return -EPERM; + + /* @@ -622,12 +561,12 @@ index 980936a..46de8e6 100644 * This leaves us room for future extensions. */ -- -2.7.4 +2.13.6 -From cace563d1743c3d2faf1e46bd4df8e63e2310207 Mon Sep 17 00:00:00 2001 +From cd00079900870855cea3573253a95c331ccab523 Mon Sep 17 00:00:00 2001 From: Dave Young <dyoung@redhat.com> -Date: Tue, 22 Nov 2016 08:46:15 +0000 -Subject: [PATCH 15/32] Copy secure_boot flag in boot params across kexec +Date: Wed, 24 May 2017 14:56:02 +0100 +Subject: [PATCH 06/26] Copy secure_boot flag in boot params across kexec reboot Kexec reboot in case secure boot being enabled does not keep the secure @@ -643,68 +582,73 @@ stub. Fixing this issue by copying secure_boot flag across kexec reboot. Signed-off-by: Dave Young <dyoung@redhat.com> Signed-off-by: David Howells <dhowells@redhat.com> +Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com> +cc: kexec@lists.infradead.org --- arch/x86/kernel/kexec-bzimage64.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/x86/kernel/kexec-bzimage64.c b/arch/x86/kernel/kexec-bzimage64.c -index d0a814a..3551bca 100644 +index fb095ba0c02f..7d0fac5bcbbe 100644 --- a/arch/x86/kernel/kexec-bzimage64.c +++ b/arch/x86/kernel/kexec-bzimage64.c @@ -179,6 +179,7 @@ setup_efi_state(struct boot_params *params, unsigned long params_load_addr, if (efi_enabled(EFI_OLD_MEMMAP)) return 0; - + + params->secure_boot = boot_params.secure_boot; ei->efi_loader_signature = current_ei->efi_loader_signature; ei->efi_systab = current_ei->efi_systab; ei->efi_systab_hi = current_ei->efi_systab_hi; -- -2.7.4 +2.13.6 -From 08a3467acbc28bb469d1eebd0f5fd40b944d984a Mon Sep 17 00:00:00 2001 -From: "Lee, Chun-Yi" <joeyli.kernel@gmail.com> -Date: Wed, 23 Nov 2016 13:49:19 +0000 -Subject: [PATCH 16/32] kexec_file: Disable at runtime if securelevel has been - set +From de2ac5da82fc55156134820ba32095710b935ad5 Mon Sep 17 00:00:00 2001 +From: Chun-Yi Lee <joeyli.kernel@gmail.com> +Date: Wed, 24 May 2017 14:56:03 +0100 +Subject: [PATCH 07/26] kexec_file: Disable at runtime if the kernel is locked + down -When KEXEC_VERIFY_SIG is not enabled, kernel should not loads image -through kexec_file systemcall if securelevel has been set. +When KEXEC_VERIFY_SIG is not enabled, kernel should not load images +through kexec_file systemcall if the kernel is locked down. This code was showed in Matthew's patch but not in git: https://lkml.org/lkml/2015/3/13/778 Cc: Matthew Garrett <mjg59@srcf.ucam.org> -Signed-off-by: Lee, Chun-Yi <jlee@suse.com> +Signed-off-by: Chun-Yi Lee <jlee@suse.com> Signed-off-by: David Howells <dhowells@redhat.com> +Reviewed-by: James Morris <james.l.morris@oracle.com> +cc: kexec@lists.infradead.org --- - kernel/kexec_file.c | 6 ++++++ - 1 file changed, 6 insertions(+) + kernel/kexec_file.c | 7 +++++++ + 1 file changed, 7 insertions(+) diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c -index b56a558..003cade 100644 +index 9f48f4412297..ff6523f2dcc2 100644 --- a/kernel/kexec_file.c +++ b/kernel/kexec_file.c -@@ -268,6 +268,12 @@ SYSCALL_DEFINE5(kexec_file_load, int, kernel_fd, int, initrd_fd, +@@ -255,6 +255,13 @@ SYSCALL_DEFINE5(kexec_file_load, int, kernel_fd, int, initrd_fd, if (!capable(CAP_SYS_BOOT) || kexec_load_disabled) return -EPERM; - + + /* Don't permit images to be loaded into trusted kernels if we're not + * going to verify the signature on them + */ -+ if (!IS_ENABLED(CONFIG_KEXEC_VERIFY_SIG) && kernel_is_locked_down()) ++ if (!IS_ENABLED(CONFIG_KEXEC_VERIFY_SIG) && ++ kernel_is_locked_down("kexec of unsigned images")) + return -EPERM; + /* Make sure we have a legal set of flags */ if (flags != (flags & KEXEC_FILE_FLAGS)) return -EINVAL; -- -2.7.4 +2.13.6 -From 925fd10d7a99a6f999dde76daf2b1ef1238b251a Mon Sep 17 00:00:00 2001 +From ba823f2b5125605fcbac150fe27e622fd224ea61 Mon Sep 17 00:00:00 2001 From: Josh Boyer <jwboyer@fedoraproject.org> -Date: Tue, 22 Nov 2016 08:46:15 +0000 -Subject: [PATCH 17/32] hibernate: Disable when the kernel is locked down +Date: Wed, 24 May 2017 14:56:03 +0100 +Subject: [PATCH 08/26] hibernate: Disable when the kernel is locked down There is currently no way to verify the resume image when returning from hibernate. This might compromise the signed modules trust model, @@ -713,30 +657,32 @@ kernel is locked down. Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org> Signed-off-by: David Howells <dhowells@redhat.com> +Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com> +cc: linux-pm@vger.kernel.org --- kernel/power/hibernate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c -index 86385af..1629798 100644 +index a5c36e9c56a6..f2eafefeec50 100644 --- a/kernel/power/hibernate.c +++ b/kernel/power/hibernate.c -@@ -67,7 +67,7 @@ static const struct platform_hibernation_ops *hibernation_ops; - +@@ -70,7 +70,7 @@ static const struct platform_hibernation_ops *hibernation_ops; + bool hibernation_available(void) { - return (nohibernate == 0); -+ return nohibernate == 0 && !kernel_is_locked_down(); ++ return nohibernate == 0 && !kernel_is_locked_down("Hibernation"); } - + /** -- -2.7.4 +2.13.6 -From b14fb5fcd60c84a09a15bd7ec974b6fbce68335c Mon Sep 17 00:00:00 2001 +From 9e78666a6153d72c3e50160a30ead699ba508d8f Mon Sep 17 00:00:00 2001 From: Matthew Garrett <mjg59@srcf.ucam.org> -Date: Wed, 23 Nov 2016 13:28:17 +0000 -Subject: [PATCH 18/32] uswsusp: Disable when the kernel is locked down +Date: Wed, 24 May 2017 14:56:03 +0100 +Subject: [PATCH 09/26] uswsusp: Disable when the kernel is locked down uswsusp allows a user process to dump and then restore kernel state, which makes it possible to modify the running kernel. Disable this if the kernel @@ -744,31 +690,34 @@ is locked down. Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org> Signed-off-by: David Howells <dhowells@redhat.com> +Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com> +Reviewed-by: James Morris <james.l.morris@oracle.com> +cc: linux-pm@vger.kernel.org --- kernel/power/user.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/power/user.c b/kernel/power/user.c -index 22df9f7..e4b926d 100644 +index 22df9f7ff672..678ade9decfe 100644 --- a/kernel/power/user.c +++ b/kernel/power/user.c @@ -52,6 +52,9 @@ static int snapshot_open(struct inode *inode, struct file *filp) if (!hibernation_available()) return -EPERM; - -+ if (kernel_is_locked_down()) + ++ if (kernel_is_locked_down("/dev/snapshot")) + return -EPERM; + lock_system_sleep(); - + if (!atomic_add_unless(&snapshot_device_available, -1, 0)) { -- -2.7.4 +2.13.6 -From d8167273e7562e5aa866d2b65e25bb1962de972c Mon Sep 17 00:00:00 2001 +From 334fa071b01ced7f48b2920208addfb1eab5d0fe Mon Sep 17 00:00:00 2001 From: Matthew Garrett <matthew.garrett@nebula.com> -Date: Tue, 22 Nov 2016 08:46:15 +0000 -Subject: [PATCH 19/32] PCI: Lock down BAR access when the kernel is locked +Date: Wed, 24 May 2017 14:56:03 +0100 +Subject: [PATCH 10/26] PCI: Lock down BAR access when the kernel is locked down Any hardware that can potentially generate DMA has to be locked down in @@ -779,55 +728,58 @@ sufficiently IOMMU-isolated devices. Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com> Signed-off-by: David Howells <dhowells@redhat.com> +Acked-by: Bjorn Helgaas <bhelgaas@google.com> +Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com> +cc: linux-pci@vger.kernel.org --- drivers/pci/pci-sysfs.c | 9 +++++++++ - drivers/pci/proc.c | 8 +++++++- - drivers/pci/syscall.c | 2 +- - 3 files changed, 17 insertions(+), 2 deletions(-) + drivers/pci/proc.c | 9 ++++++++- + drivers/pci/syscall.c | 3 ++- + 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c -index 0666287..b10992c 100644 +index 1eecfa301f7f..e1a3b0e765c2 100644 --- a/drivers/pci/pci-sysfs.c +++ b/drivers/pci/pci-sysfs.c -@@ -718,6 +718,9 @@ static ssize_t pci_write_config(struct file *filp, struct kobject *kobj, +@@ -881,6 +881,9 @@ static ssize_t pci_write_config(struct file *filp, struct kobject *kobj, loff_t init_off = off; u8 *data = (u8 *) buf; - -+ if (kernel_is_locked_down()) + ++ if (kernel_is_locked_down("Direct PCI access")) + return -EPERM; + if (off > dev->cfg_size) return 0; if (off + count > dev->cfg_size) { -@@ -1009,6 +1012,9 @@ static int pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr, +@@ -1175,6 +1178,9 @@ static int pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr, enum pci_mmap_state mmap_type; struct resource *res = &pdev->resource[bar]; - -+ if (kernel_is_locked_down()) + ++ if (kernel_is_locked_down("Direct PCI access")) + return -EPERM; + if (res->flags & IORESOURCE_MEM && iomem_is_exclusive(res->start)) return -EINVAL; - -@@ -1108,6 +1114,9 @@ static ssize_t pci_write_resource_io(struct file *filp, struct kobject *kobj, + +@@ -1255,6 +1261,9 @@ static ssize_t pci_write_resource_io(struct file *filp, struct kobject *kobj, struct bin_attribute *attr, char *buf, loff_t off, size_t count) { -+ if (kernel_is_locked_down()) ++ if (kernel_is_locked_down("Direct PCI access")) + return -EPERM; + return pci_resource_io(filp, kobj, attr, buf, off, count, true); } - + diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c -index f82710a..139d6f0 100644 +index 098360d7ff81..a6c53d855daa 100644 --- a/drivers/pci/proc.c +++ b/drivers/pci/proc.c @@ -116,6 +116,9 @@ static ssize_t proc_bus_pci_write(struct file *file, const char __user *buf, int size = dev->cfg_size; int cnt; - -+ if (kernel_is_locked_down()) + ++ if (kernel_is_locked_down("Direct PCI access")) + return -EPERM; + if (pos >= size) @@ -836,42 +788,44 @@ index f82710a..139d6f0 100644 @@ -195,6 +198,9 @@ static long proc_bus_pci_ioctl(struct file *file, unsigned int cmd, #endif /* HAVE_PCI_MMAP */ int ret = 0; - -+ if (kernel_is_locked_down()) + ++ if (kernel_is_locked_down("Direct PCI access")) + return -EPERM; + switch (cmd) { case PCIIOC_CONTROLLER: ret = pci_domain_nr(dev->bus); -@@ -233,7 +239,7 @@ static int proc_bus_pci_mmap(struct file *file, struct vm_area_struct *vma) +@@ -236,7 +242,8 @@ static int proc_bus_pci_mmap(struct file *file, struct vm_area_struct *vma) struct pci_filp_private *fpriv = file->private_data; int i, ret, write_combine = 0, res_bit = IORESOURCE_MEM; - + - if (!capable(CAP_SYS_RAWIO)) -+ if (!capable(CAP_SYS_RAWIO) || kernel_is_locked_down()) ++ if (!capable(CAP_SYS_RAWIO) || ++ kernel_is_locked_down("Direct PCI access")) return -EPERM; - + if (fpriv->mmap_state == pci_mmap_io) { diff --git a/drivers/pci/syscall.c b/drivers/pci/syscall.c -index 9bf993e..c095247 100644 +index 9bf993e1f71e..afa01cc3ceec 100644 --- a/drivers/pci/syscall.c +++ b/drivers/pci/syscall.c -@@ -92,7 +92,7 @@ SYSCALL_DEFINE5(pciconfig_write, unsigned long, bus, unsigned long, dfn, +@@ -92,7 +92,8 @@ SYSCALL_DEFINE5(pciconfig_write, unsigned long, bus, unsigned long, dfn, u32 dword; int err = 0; - + - if (!capable(CAP_SYS_ADMIN)) -+ if (!capable(CAP_SYS_ADMIN) || kernel_is_locked_down()) ++ if (!capable(CAP_SYS_ADMIN) || ++ kernel_is_locked_down("Direct PCI access")) return -EPERM; - + dev = pci_get_bus_and_slot(bus, dfn); -- -2.7.4 +2.13.6 -From 169d13e0c5240ac6aad13aace5ecbdb3de2cfada Mon Sep 17 00:00:00 2001 +From 7e608c45ac2ab6c8e125aaf3993b8257352ac631 Mon Sep 17 00:00:00 2001 From: Matthew Garrett <matthew.garrett@nebula.com> -Date: Tue, 22 Nov 2016 08:46:16 +0000 -Subject: [PATCH 20/32] x86: Lock down IO port access when the kernel is locked +Date: Wed, 24 May 2017 14:56:04 +0100 +Subject: [PATCH 11/26] x86: Lock down IO port access when the kernel is locked down IO port access would permit users to gain access to PCI configuration @@ -884,97 +838,98 @@ KDDISABIO console ioctls. Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com> Signed-off-by: David Howells <dhowells@redhat.com> +Reviewed-by: Thomas Gleixner <tglx@linutronix.de> +Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com> +cc: x86@kernel.org --- - arch/x86/kernel/ioport.c | 4 ++-- - drivers/char/mem.c | 2 ++ - 2 files changed, 4 insertions(+), 2 deletions(-) + arch/x86/kernel/ioport.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c -index b01bc8517..4ccaace 100644 +index 9c3cf0944bce..2c0f058651c5 100644 --- a/arch/x86/kernel/ioport.c +++ b/arch/x86/kernel/ioport.c -@@ -29,7 +29,7 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on) - +@@ -30,7 +30,8 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on) + if ((from + num <= from) || (from + num > IO_BITMAP_BITS)) return -EINVAL; - if (turn_on && !capable(CAP_SYS_RAWIO)) -+ if (turn_on && (!capable(CAP_SYS_RAWIO) || kernel_is_locked_down())) ++ if (turn_on && (!capable(CAP_SYS_RAWIO) || ++ kernel_is_locked_down("ioperm"))) return -EPERM; - + /* -@@ -113,7 +113,7 @@ SYSCALL_DEFINE1(iopl, unsigned int, level) +@@ -120,7 +121,8 @@ SYSCALL_DEFINE1(iopl, unsigned int, level) return -EINVAL; /* Trying to gain more privileges? */ if (level > old) { - if (!capable(CAP_SYS_RAWIO)) -+ if (!capable(CAP_SYS_RAWIO) || kernel_is_locked_down()) ++ if (!capable(CAP_SYS_RAWIO) || ++ kernel_is_locked_down("iopl")) return -EPERM; } regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) | -diff --git a/drivers/char/mem.c b/drivers/char/mem.c -index f814404..9afebb6 100644 ---- a/drivers/char/mem.c -+++ b/drivers/char/mem.c -@@ -741,6 +741,8 @@ static loff_t memory_lseek(struct file *file, loff_t offset, int orig) - - static int open_port(struct inode *inode, struct file *filp) - { -+ if (kernel_is_locked_down()) -+ return -EPERM; - return capable(CAP_SYS_RAWIO) ? 0 : -EPERM; - } - -- -2.7.4 +2.13.6 -From efd24f7e9af624b62f39efce4f60b31f0ca643d8 Mon Sep 17 00:00:00 2001 +From 2644bf492568e3733bc841112c6e8628a6e01b8e Mon Sep 17 00:00:00 2001 From: Matthew Garrett <matthew.garrett@nebula.com> -Date: Tue, 22 Nov 2016 08:46:17 +0000 -Subject: [PATCH 21/32] x86: Restrict MSR access when the kernel is locked down +Date: Wed, 24 May 2017 14:56:04 +0100 +Subject: [PATCH 12/26] x86/msr: Restrict MSR access when the kernel is locked + down Writing to MSRs should not be allowed if the kernel is locked down, since it could lead to execution of arbitrary code in kernel mode. Based on a patch by Kees Cook. -Cc: Kees Cook <keescook@chromium.org> +MSR accesses are logged for the purposes of building up a whitelist as per +Alan Cox's suggestion. + Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com> Signed-off-by: David Howells <dhowells@redhat.com> +Acked-by: Kees Cook <keescook@chromium.org> +Reviewed-by: Thomas Gleixner <tglx@linutronix.de> +Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com> +cc: x86@kernel.org --- - arch/x86/kernel/msr.c | 7 +++++++ - 1 file changed, 7 insertions(+) + arch/x86/kernel/msr.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) diff --git a/arch/x86/kernel/msr.c b/arch/x86/kernel/msr.c -index ef68880..fbcce02 100644 +index ef688804f80d..dfb61d358196 100644 --- a/arch/x86/kernel/msr.c +++ b/arch/x86/kernel/msr.c -@@ -84,6 +84,9 @@ static ssize_t msr_write(struct file *file, const char __user *buf, +@@ -84,6 +84,11 @@ static ssize_t msr_write(struct file *file, const char __user *buf, int err = 0; ssize_t bytes = 0; - -+ if (kernel_is_locked_down()) + ++ if (kernel_is_locked_down("Direct MSR access")) { ++ pr_info("Direct access to MSR %x\n", reg); + return -EPERM; ++ } + if (count % 8) return -EINVAL; /* Invalid chunk size */ - -@@ -131,6 +134,10 @@ static long msr_ioctl(struct file *file, unsigned int ioc, unsigned long arg) - err = -EBADF; + +@@ -135,6 +140,11 @@ static long msr_ioctl(struct file *file, unsigned int ioc, unsigned long arg) + err = -EFAULT; break; } -+ if (kernel_is_locked_down()) { ++ if (kernel_is_locked_down("Direct MSR access")) { ++ pr_info("Direct access to MSR %x\n", regs[1]); /* Display %ecx */ + err = -EPERM; + break; + } - if (copy_from_user(®s, uregs, sizeof regs)) { - err = -EFAULT; + err = wrmsr_safe_regs_on_cpu(cpu, regs); + if (err) break; -- -2.7.4 +2.13.6 -From 62ebdffbcb0726b98562e9f1173a6d5967755764 Mon Sep 17 00:00:00 2001 +From e6850fffe186e252cc94e8747e589076e215ca1a Mon Sep 17 00:00:00 2001 From: Matthew Garrett <matthew.garrett@nebula.com> -Date: Tue, 22 Nov 2016 08:46:16 +0000 -Subject: [PATCH 22/32] asus-wmi: Restrict debugfs interface when the kernel is +Date: Wed, 24 May 2017 14:56:04 +0100 +Subject: [PATCH 13/26] asus-wmi: Restrict debugfs interface when the kernel is locked down We have no way of validating what all of the Asus WMI methods do on a given @@ -985,51 +940,54 @@ kernel is locked down. Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com> Signed-off-by: David Howells <dhowells@redhat.com> +Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com> +cc: acpi4asus-user@lists.sourceforge.net +cc: platform-driver-x86@vger.kernel.org --- drivers/platform/x86/asus-wmi.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c -index 43cb680..9be3e08 100644 +index 48e1541dc8d4..ef5587469337 100644 --- a/drivers/platform/x86/asus-wmi.c +++ b/drivers/platform/x86/asus-wmi.c -@@ -1898,6 +1898,9 @@ static int show_dsts(struct seq_file *m, void *data) +@@ -1905,6 +1905,9 @@ static int show_dsts(struct seq_file *m, void *data) int err; u32 retval = -1; - -+ if (kernel_is_locked_down()) + ++ if (kernel_is_locked_down("Asus WMI")) + return -EPERM; + err = asus_wmi_get_devstate(asus, asus->debug.dev_id, &retval); - + if (err < 0) -@@ -1914,6 +1917,9 @@ static int show_devs(struct seq_file *m, void *data) +@@ -1921,6 +1924,9 @@ static int show_devs(struct seq_file *m, void *data) int err; u32 retval = -1; - -+ if (kernel_is_locked_down()) + ++ if (kernel_is_locked_down("Asus WMI")) + return -EPERM; + err = asus_wmi_set_devstate(asus->debug.dev_id, asus->debug.ctrl_param, &retval); - -@@ -1938,6 +1944,9 @@ static int show_call(struct seq_file *m, void *data) + +@@ -1945,6 +1951,9 @@ static int show_call(struct seq_file *m, void *data) union acpi_object *obj; acpi_status status; - -+ if (kernel_is_locked_down()) + ++ if (kernel_is_locked_down("Asus WMI")) + return -EPERM; + status = wmi_evaluate_method(ASUS_WMI_MGMT_GUID, - 1, asus->debug.method_id, + 0, asus->debug.method_id, &input, &output); -- -2.7.4 +2.13.6 -From 31f493d03dde1854fa9e540f87a751fbeeb41cb9 Mon Sep 17 00:00:00 2001 +From 6dda2a4dbc8bb80efaa55aba6d54382e986305c5 Mon Sep 17 00:00:00 2001 From: Matthew Garrett <matthew.garrett@nebula.com> -Date: Tue, 22 Nov 2016 08:46:16 +0000 -Subject: [PATCH 23/32] ACPI: Limit access to custom_method when the kernel is +Date: Wed, 24 May 2017 14:56:04 +0100 +Subject: [PATCH 14/26] ACPI: Limit access to custom_method when the kernel is locked down custom_method effectively allows arbitrary access to system memory, making @@ -1038,63 +996,68 @@ Disable it if the kernel is locked down. Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com> Signed-off-by: David Howells <dhowells@redhat.com> +Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com> +cc: linux-acpi@vger.kernel.org --- drivers/acpi/custom_method.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c -index c68e724..e4d721c 100644 +index c68e72414a67..b33fba70ec51 100644 --- a/drivers/acpi/custom_method.c +++ b/drivers/acpi/custom_method.c @@ -29,6 +29,9 @@ static ssize_t cm_write(struct file *file, const char __user * user_buf, struct acpi_table_header table; acpi_status status; - -+ if (kernel_is_locked_down()) + ++ if (kernel_is_locked_down("ACPI custom methods")) + return -EPERM; + if (!(*ppos)) { /* parse the table header to get the table length */ if (count <= sizeof(struct acpi_table_header)) -- -2.7.4 +2.13.6 -From 1dec5dc62c78f78b9efe44aac3d6119d97b67017 Mon Sep 17 00:00:00 2001 +From 64caa33410f85663cf0a65e4c09b8b8d28a219ad Mon Sep 17 00:00:00 2001 From: Josh Boyer <jwboyer@redhat.com> -Date: Tue, 22 Nov 2016 08:46:16 +0000 -Subject: [PATCH 24/32] acpi: Ignore acpi_rsdp kernel param when the kernel has +Date: Wed, 24 May 2017 14:56:05 +0100 +Subject: [PATCH 15/26] acpi: Ignore acpi_rsdp kernel param when the kernel has been locked down This option allows userspace to pass the RSDP address to the kernel, which -makes it possible for a user to circumvent any restrictions imposed on -loading modules. Ignore the option when the kernel is locked down. +makes it possible for a user to modify the workings of hardware . Reject +the option when the kernel is locked down. Signed-off-by: Josh Boyer <jwboyer@redhat.com> Signed-off-by: David Howells <dhowells@redhat.com> +Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com> +cc: Dave Young <dyoung@redhat.com> +cc: linux-acpi@vger.kernel.org --- drivers/acpi/osl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c -index db78d35..d4d4ba3 100644 +index db78d353bab1..36c6527c1b0a 100644 --- a/drivers/acpi/osl.c +++ b/drivers/acpi/osl.c @@ -192,7 +192,7 @@ acpi_physical_address __init acpi_os_get_root_pointer(void) acpi_physical_address pa = 0; - + #ifdef CONFIG_KEXEC - if (acpi_rsdp) -+ if (acpi_rsdp && !kernel_is_locked_down()) ++ if (acpi_rsdp && !kernel_is_locked_down("ACPI RSDP specification")) return acpi_rsdp; #endif - + -- -2.7.4 +2.13.6 -From 96eaf04100d7365d93f898013175351c7d2702a6 Mon Sep 17 00:00:00 2001 +From d87ce06969f2d4da0c864e8a4cf6c820d950cd1f Mon Sep 17 00:00:00 2001 From: Linn Crosetto <linn@hpe.com> -Date: Wed, 23 Nov 2016 13:32:27 +0000 -Subject: [PATCH 25/32] acpi: Disable ACPI table override if the kernel is +Date: Wed, 24 May 2017 14:56:05 +0100 +Subject: [PATCH 16/26] acpi: Disable ACPI table override if the kernel is locked down From the kernel documentation (initrd_table_override.txt): @@ -1109,19 +1072,21 @@ so do not allow ACPI tables to be overridden if the kernel is locked down. Signed-off-by: Linn Crosetto <linn@hpe.com> Signed-off-by: David Howells <dhowells@redhat.com> +Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com> +cc: linux-acpi@vger.kernel.org --- drivers/acpi/tables.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c -index 2604189..601096d 100644 +index 80ce2a7d224b..5cc13c42daf9 100644 --- a/drivers/acpi/tables.c +++ b/drivers/acpi/tables.c -@@ -542,6 +542,11 @@ void __init acpi_table_upgrade(void) +@@ -526,6 +526,11 @@ void __init acpi_table_upgrade(void) if (table_nr == 0) return; - -+ if (kernel_is_locked_down()) { + ++ if (kernel_is_locked_down("ACPI table override")) { + pr_notice("kernel is locked down, ignoring table override\n"); + return; + } @@ -1130,12 +1095,12 @@ index 2604189..601096d 100644 memblock_find_in_range(0, ACPI_TABLE_UPGRADE_MAX_PHYS, all_tables_size, PAGE_SIZE); -- -2.7.4 +2.13.6 -From 521979b819b853f7578ba8edef8b33bc2077026d Mon Sep 17 00:00:00 2001 +From 547e2ca9cbfd420a15dd70e1c1c24b7040f88058 Mon Sep 17 00:00:00 2001 From: Linn Crosetto <linn@hpe.com> -Date: Wed, 23 Nov 2016 13:39:41 +0000 -Subject: [PATCH 26/32] acpi: Disable APEI error injection if the kernel is +Date: Wed, 24 May 2017 14:56:05 +0100 +Subject: [PATCH 17/26] acpi: Disable APEI error injection if the kernel is locked down ACPI provides an error injection mechanism, EINJ, for debugging and testing @@ -1155,146 +1120,33 @@ the kernel is locked down. Signed-off-by: Linn Crosetto <linn@hpe.com> Signed-off-by: David Howells <dhowells@redhat.com> +Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com> +cc: linux-acpi@vger.kernel.org --- drivers/acpi/apei/einj.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c -index ec50c32..e082718 100644 +index b38737c83a24..6d71e1e97b20 100644 --- a/drivers/acpi/apei/einj.c +++ b/drivers/acpi/apei/einj.c @@ -518,6 +518,9 @@ static int einj_error_inject(u32 type, u32 flags, u64 param1, u64 param2, int rc; u64 base_addr, size; - -+ if (kernel_is_locked_down()) + ++ if (kernel_is_locked_down("ACPI error injection")) + return -EPERM; + /* If user manually set "flags", make sure it is legal */ if (flags && (flags & ~(SETWA_FLAGS_APICID|SETWA_FLAGS_MEM|SETWA_FLAGS_PCIE_SBDF))) -- -2.7.4 - -From fe597dad1cba83345d62c4079c0d8861c426698c Mon Sep 17 00:00:00 2001 -From: Matthew Garrett <mjg59@coreos.com> -Date: Wed, 23 Nov 2016 13:41:23 +0000 -Subject: [PATCH 27/32] Enable cold boot attack mitigation - ---- - arch/x86/boot/compressed/eboot.c | 28 ++++++++++++++++++++++++++++ - 1 file changed, 28 insertions(+) - -diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c -index 801c7a1..ef9409b 100644 ---- a/arch/x86/boot/compressed/eboot.c -+++ b/arch/x86/boot/compressed/eboot.c -@@ -604,6 +604,31 @@ void setup_graphics(struct boot_params *boot_params) - } - } - -+#define MEMORY_ONLY_RESET_CONTROL_GUID \ -+ EFI_GUID (0xe20939be, 0x32d4, 0x41be, 0xa1, 0x50, 0x89, 0x7f, 0x85, 0xd4, 0x98, 0x29) -+ -+static void enable_reset_attack_mitigation(void) -+{ -+ static const efi_guid_t var_guid = MEMORY_ONLY_RESET_CONTROL_GUID; -+ static const efi_char16_t MemoryOverwriteRequestControl_name[] = { -+ 'M', 'e', 'm', 'o', 'r', 'y', -+ 'O', 'v', 'e', 'r', 'w', 'r', 'i', 't', 'e', -+ 'R', 'e', 'q', 'u', 'e', 's', 't', -+ 'C', 'o', 'n', 't', 'r', 'o', 'l', -+ 0 -+ }; -+ u8 val = 1; -+ -+ /* Ignore the return value here - there's not really a lot we can do */ -+ efi_call_runtime(set_variable, -+ (efi_char16_t *)MemoryOverwriteRequestControl_name, -+ (efi_guid_t *)&var_guid, -+ EFI_VARIABLE_NON_VOLATILE | -+ EFI_VARIABLE_BOOTSERVICE_ACCESS | -+ EFI_VARIABLE_RUNTIME_ACCESS, -+ sizeof(val), val); -+} -+ - /* - * Because the x86 boot code expects to be passed a boot_params we - * need to create one ourselves (usually the bootloader would create -@@ -988,6 +1013,9 @@ struct boot_params *efi_main(struct efi_config *c, - else - setup_boot_services32(efi_early); - -+ /* Ask the firmware to clear memory if we don't have a clean shutdown */ -+ enable_reset_attack_mitigation(); -+ - /* - * If the boot loader gave us a value for secure_boot then we use that, - * otherwise we ask the BIOS. --- -2.7.4 - -From 04fac895731801bc6cb26a6061f1c353c80a866c Mon Sep 17 00:00:00 2001 -From: "Lee, Chun-Yi" <jlee@suse.com> -Date: Wed, 23 Nov 2016 13:52:16 +0000 -Subject: [PATCH 28/32] bpf: Restrict kernel image access functions when the - kernel is locked down - -There are some bpf functions can be used to read kernel memory: -bpf_probe_read, bpf_probe_write_user and bpf_trace_printk. These allow -private keys in kernel memory (e.g. the hibernation image signing key) to -be read by an eBPF program. Prohibit those functions when the kernel is -locked down. - -Signed-off-by: Lee, Chun-Yi <jlee@suse.com> -Signed-off-by: David Howells <dhowells@redhat.com> ---- - kernel/trace/bpf_trace.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c -index cee9802..7fde851 100644 ---- a/kernel/trace/bpf_trace.c -+++ b/kernel/trace/bpf_trace.c -@@ -65,6 +65,11 @@ BPF_CALL_3(bpf_probe_read, void *, dst, u32, size, const void *, unsafe_ptr) - { - int ret; - -+ if (kernel_is_locked_down()) { -+ memset(dst, 0, size); -+ return -EPERM; -+ } -+ - ret = probe_kernel_read(dst, unsafe_ptr, size); - if (unlikely(ret < 0)) - memset(dst, 0, size); -@@ -84,6 +89,9 @@ static const struct bpf_func_proto bpf_probe_read_proto = { - BPF_CALL_3(bpf_probe_write_user, void *, unsafe_ptr, const void *, src, - u32, size) - { -+ if (kernel_is_locked_down()) -+ return -EPERM; -+ - /* - * Ensure we're in user context which is safe for the helper to - * run. This helper has no business in a kthread. -@@ -143,6 +151,9 @@ BPF_CALL_5(bpf_trace_printk, char *, fmt, u32, fmt_size, u64, arg1, - if (fmt[--fmt_size] != 0) - return -EINVAL; - -+ if (kernel_is_locked_down()) -+ return __trace_printk(1, fmt, 0, 0, 0); -+ - /* check format string for allowed specifiers */ - for (i = 0; i < fmt_size; i++) { - if ((!isprint(fmt[i]) && !isspace(fmt[i])) || !isascii(fmt[i])) --- -2.7.4 +2.13.6 -From 707d0e14c2c0d6c3139ff4bcb16ee22c462b4304 Mon Sep 17 00:00:00 2001 +From abbf8de44feab5f50b316d6491926d8d9029cb49 Mon Sep 17 00:00:00 2001 From: David Howells <dhowells@redhat.com> -Date: Tue, 22 Nov 2016 10:10:34 +0000 -Subject: [PATCH 29/32] scsi: Lock down the eata driver +Date: Wed, 24 May 2017 14:56:06 +0100 +Subject: [PATCH 18/26] scsi: Lock down the eata driver When the kernel is running in secure boot mode, we lock down the kernel to prevent userspace from modifying the running kernel image. Whilst this @@ -1306,75 +1158,73 @@ The eata driver takes a single string parameter that contains a slew of settings, including hardware resource configuration. Prohibit use of the parameter if the kernel is locked down. -Suggested-by: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk> +Suggested-by: Alan Cox <gnomes@lxorguk.ukuu.org.uk> Signed-off-by: David Howells <dhowells@redhat.com> cc: Dario Ballabio <ballabio_dario@emc.com> cc: "James E.J. Bottomley" <jejb@linux.vnet.ibm.com> cc: "Martin K. Petersen" <martin.petersen@oracle.com> cc: linux-scsi@vger.kernel.org --- - drivers/scsi/eata.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) + drivers/scsi/eata.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/eata.c b/drivers/scsi/eata.c -index 227dd2c..5c036d10 100644 +index 6501c330d8c8..72fceaa8f3da 100644 --- a/drivers/scsi/eata.c +++ b/drivers/scsi/eata.c -@@ -1552,8 +1552,13 @@ static int eata2x_detect(struct scsi_host_template *tpnt) - +@@ -1552,8 +1552,11 @@ static int eata2x_detect(struct scsi_host_template *tpnt) + tpnt->proc_name = "eata2x"; - + - if (strlen(boot_options)) + if (strlen(boot_options)) { -+ if (kernel_is_locked_down()) { -+ pr_err("Command line-specified device addresses, irqs and dma channels are not permitted when the kernel is locked down\n"); ++ if (kernel_is_locked_down("Command line-specified device addresses, irqs and dma channels")) + return -EPERM; -+ } option_setup(boot_options); + } - + #if defined(MODULE) /* io_port could have been modified when loading as a module */ -- -2.7.4 +2.13.6 -From 07e05e0b7d806a05eba55092630bb75a92311344 Mon Sep 17 00:00:00 2001 +From 116b02dff661d497c10099862b8b86e6cd2262ae Mon Sep 17 00:00:00 2001 From: David Howells <dhowells@redhat.com> -Date: Fri, 25 Nov 2016 14:37:45 +0000 -Subject: [PATCH 30/32] Prohibit PCMCIA CIS storage when the kernel is locked +Date: Wed, 24 May 2017 14:56:06 +0100 +Subject: [PATCH 19/26] Prohibit PCMCIA CIS storage when the kernel is locked down Prohibit replacement of the PCMCIA Card Information Structure when the kernel is locked down. +Suggested-by: Dominik Brodowski <linux@dominikbrodowski.net> Signed-off-by: David Howells <dhowells@redhat.com> +cc: linux-pcmcia@lists.infradead.org --- - drivers/pcmcia/cistpl.c | 5 +++++ - 1 file changed, 5 insertions(+) + drivers/pcmcia/cistpl.c | 3 +++ + 1 file changed, 3 insertions(+) diff --git a/drivers/pcmcia/cistpl.c b/drivers/pcmcia/cistpl.c -index 55ef7d1..193e4f7 100644 +index 55ef7d1fd8da..b7a0e42eeb25 100644 --- a/drivers/pcmcia/cistpl.c +++ b/drivers/pcmcia/cistpl.c -@@ -1578,6 +1578,11 @@ static ssize_t pccard_store_cis(struct file *filp, struct kobject *kobj, +@@ -1578,6 +1578,9 @@ static ssize_t pccard_store_cis(struct file *filp, struct kobject *kobj, struct pcmcia_socket *s; int error; - -+ if (kernel_is_locked_down()) { -+ pr_err("Direct CIS storage isn't permitted when the kernel is locked down\n"); + ++ if (kernel_is_locked_down("Direct PCMCIA CIS storage")) + return -EPERM; -+ } + s = to_socket(container_of(kobj, struct device, kobj)); - + if (off) -- -2.7.4 +2.13.6 -From cf1e877adbe35c5f72a9d85570b494aa3f35be6a Mon Sep 17 00:00:00 2001 +From f3dc03aa368cfde123bc1b60bda287091c9d43b4 Mon Sep 17 00:00:00 2001 From: David Howells <dhowells@redhat.com> -Date: Wed, 7 Dec 2016 10:28:39 +0000 -Subject: [PATCH 31/32] Lock down TIOCSSERIAL +Date: Wed, 24 May 2017 14:56:06 +0100 +Subject: [PATCH 20/26] Lock down TIOCSSERIAL Lock down TIOCSSERIAL as that can be used to change the ioport and irq settings on a serial port. This only appears to be an issue for the serial @@ -1383,20 +1233,21 @@ ignore attempts to change port/irq or give an error. Reported-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: David Howells <dhowells@redhat.com> +cc: Jiri Slaby <jslaby@suse.com> --- drivers/tty/serial/serial_core.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c -index 9939c3d..7c040e2 100644 +index 3a14cccbd7ff..41f0922ad842 100644 --- a/drivers/tty/serial/serial_core.c +++ b/drivers/tty/serial/serial_core.c -@@ -820,6 +820,12 @@ static int uart_set_info(struct tty_struct *tty, struct tty_port *port, - new_flags = new_info->flags; +@@ -842,6 +842,12 @@ static int uart_set_info(struct tty_struct *tty, struct tty_port *port, + new_flags = (__force upf_t)new_info->flags; old_custom_divisor = uport->custom_divisor; - -+ if ((change_port || change_irq) && kernel_is_locked_down()) { -+ pr_err("Using TIOCSSERIAL to change device addresses, irqs and dma channels is not permitted when the kernel is locked down\n"); + ++ if ((change_port || change_irq) && ++ kernel_is_locked_down("Using TIOCSSERIAL to change device addresses, irqs and dma channels")) { + retval = -EPERM; + goto exit; + } @@ -1405,5 +1256,457 @@ index 9939c3d..7c040e2 100644 retval = -EPERM; if (change_irq || change_port || -- -2.7.4 +2.13.6 + +From 9d266defc89a73c6dcca3b67ad70b95ac99b8e53 Mon Sep 17 00:00:00 2001 +From: David Howells <dhowells@redhat.com> +Date: Wed, 24 May 2017 14:56:06 +0100 +Subject: [PATCH 21/26] Lock down module params that specify hardware + parameters (eg. ioport) + +Provided an annotation for module parameters that specify hardware +parameters (such as io ports, iomem addresses, irqs, dma channels, fixed +dma buffers and other types). + +Suggested-by: Alan Cox <gnomes@lxorguk.ukuu.org.uk> +Signed-off-by: David Howells <dhowells@redhat.com> +--- + kernel/params.c | 26 +++++++++++++++++++++----- + 1 file changed, 21 insertions(+), 5 deletions(-) + +diff --git a/kernel/params.c b/kernel/params.c +index 60b2d8101355..422979adb60a 100644 +--- a/kernel/params.c ++++ b/kernel/params.c +@@ -108,13 +108,19 @@ bool parameq(const char *a, const char *b) + return parameqn(a, b, strlen(a)+1); + } + +-static void param_check_unsafe(const struct kernel_param *kp) ++static bool param_check_unsafe(const struct kernel_param *kp, ++ const char *doing) + { + if (kp->flags & KERNEL_PARAM_FL_UNSAFE) { + pr_warn("Setting dangerous option %s - tainting kernel\n", + kp->name); + add_taint(TAINT_USER, LOCKDEP_STILL_OK); + } ++ ++ if (kp->flags & KERNEL_PARAM_FL_HWPARAM && ++ kernel_is_locked_down("Command line-specified device addresses, irqs and dma channels")) ++ return false; ++ return true; + } + + static int parse_one(char *param, +@@ -144,8 +150,10 @@ static int parse_one(char *param, + pr_debug("handling %s with %p\n", param, + params[i].ops->set); + kernel_param_lock(params[i].mod); +- param_check_unsafe(¶ms[i]); +- err = params[i].ops->set(val, ¶ms[i]); ++ if (param_check_unsafe(¶ms[i], doing)) ++ err = params[i].ops->set(val, ¶ms[i]); ++ else ++ err = -EPERM; + kernel_param_unlock(params[i].mod); + return err; + } +@@ -556,6 +564,12 @@ static ssize_t param_attr_show(struct module_attribute *mattr, + return count; + } + ++#ifdef CONFIG_MODULES ++#define mod_name(mod) (mod)->name ++#else ++#define mod_name(mod) "unknown" ++#endif ++ + /* sysfs always hands a nul-terminated string in buf. We rely on that. */ + static ssize_t param_attr_store(struct module_attribute *mattr, + struct module_kobject *mk, +@@ -568,8 +582,10 @@ static ssize_t param_attr_store(struct module_attribute *mattr, + return -EPERM; + + kernel_param_lock(mk->mod); +- param_check_unsafe(attribute->param); +- err = attribute->param->ops->set(buf, attribute->param); ++ if (param_check_unsafe(attribute->param, mod_name(mk->mod))) ++ err = attribute->param->ops->set(buf, attribute->param); ++ else ++ err = -EPERM; + kernel_param_unlock(mk->mod); + if (!err) + return len; +-- +2.13.6 + +From 17a8caed6507846edd0a7016cdcd97fe46cca263 Mon Sep 17 00:00:00 2001 +From: David Howells <dhowells@redhat.com> +Date: Wed, 24 May 2017 14:56:07 +0100 +Subject: [PATCH 22/26] x86/mmiotrace: Lock down the testmmiotrace module + +The testmmiotrace module shouldn't be permitted when the kernel is locked +down as it can be used to arbitrarily read and write MMIO space. + +Suggested-by: Thomas Gleixner <tglx@linutronix.de> +Signed-off-by: David Howells <dhowells@redhat.com +cc: Thomas Gleixner <tglx@linutronix.de> +cc: Steven Rostedt <rostedt@goodmis.org> +cc: Ingo Molnar <mingo@kernel.org> +cc: "H. Peter Anvin" <hpa@zytor.com> +cc: x86@kernel.org +--- + arch/x86/mm/testmmiotrace.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/arch/x86/mm/testmmiotrace.c b/arch/x86/mm/testmmiotrace.c +index f6ae6830b341..bbaad357f5d7 100644 +--- a/arch/x86/mm/testmmiotrace.c ++++ b/arch/x86/mm/testmmiotrace.c +@@ -115,6 +115,9 @@ static int __init init(void) + { + unsigned long size = (read_far) ? (8 << 20) : (16 << 10); + ++ if (kernel_is_locked_down("MMIO trace testing")) ++ return -EPERM; ++ + if (mmio_address == 0) { + pr_err("you have to use the module argument mmio_address.\n"); + pr_err("DO NOT LOAD THIS MODULE UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!\n"); +-- +2.13.6 + +From 79ae67bf5f7eda526abaa80b01b19e08c1ed3558 Mon Sep 17 00:00:00 2001 +From: David Howells <dhowells@redhat.com> +Date: Wed, 18 Oct 2017 17:28:02 +0100 +Subject: [PATCH 23/26] debugfs: Disallow use of debugfs files when the kernel + is locked down + +Disallow opening of debugfs files when the kernel is locked down as various +drivers give raw access to hardware through debugfs. + +Accesses to tracefs should use /sys/kernel/tracing/ rather than +/sys/kernel/debug/tracing/. Possibly a symlink should be emplaced. + +Normal device interaction should be done through configfs or a miscdev, not +debugfs. + +Note that this makes it unnecessary to specifically lock down show_dsts(), +show_devs() and show_call() in the asus-wmi driver. + +Signed-off-by: David Howells <dhowells@redhat.com> +cc: Andy Shevchenko <andy.shevchenko@gmail.com> +cc: acpi4asus-user@lists.sourceforge.net +cc: platform-driver-x86@vger.kernel.org +cc: Matthew Garrett <matthew.garrett@nebula.com> +cc: Thomas Gleixner <tglx@linutronix.de> +--- + fs/debugfs/file.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c +index 6dabc4a10396..32b5168a7e91 100644 +--- a/fs/debugfs/file.c ++++ b/fs/debugfs/file.c +@@ -103,6 +103,9 @@ static int open_proxy_open(struct inode *inode, struct file *filp) + const struct file_operations *real_fops = NULL; + int srcu_idx, r; + ++ if (kernel_is_locked_down("debugfs")) ++ return -EPERM; ++ + r = debugfs_use_file_start(dentry, &srcu_idx); + if (r) { + r = -ENOENT; +@@ -232,6 +235,9 @@ static int full_proxy_open(struct inode *inode, struct file *filp) + struct file_operations *proxy_fops = NULL; + int srcu_idx, r; + ++ if (kernel_is_locked_down("debugfs")) ++ return -EPERM; ++ + r = debugfs_use_file_start(dentry, &srcu_idx); + if (r) { + r = -ENOENT; +-- +2.13.6 + +From 87ed5c02f0946c855730420cbf1daa6a2dfc54d7 Mon Sep 17 00:00:00 2001 +From: David Howells <dhowells@redhat.com> +Date: Thu, 19 Oct 2017 13:58:19 +0100 +Subject: [PATCH 24/26] Lock down /proc/kcore + +Disallow access to /proc/kcore when the kernel is locked down to prevent +access to cryptographic data. + +Signed-off-by: David Howells <dhowells@redhat.com> +Reviewed-by: James Morris <james.l.morris@oracle.com> +--- + fs/proc/kcore.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c +index 45629f4b5402..176cf749e650 100644 +--- a/fs/proc/kcore.c ++++ b/fs/proc/kcore.c +@@ -549,6 +549,8 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos) + + static int open_kcore(struct inode *inode, struct file *filp) + { ++ if (kernel_is_locked_down("/proc/kcore")) ++ return -EPERM; + if (!capable(CAP_SYS_RAWIO)) + return -EPERM; + +-- +2.13.6 + +From 2bce9ca3a24e0b35dcf665e6ba082f0a796c6aad Mon Sep 17 00:00:00 2001 +From: David Howells <dhowells@redhat.com> +Date: Thu, 19 Oct 2017 14:18:53 +0100 +Subject: [PATCH 25/26] efi: Add an EFI_SECURE_BOOT flag to indicate secure + boot mode + +UEFI machines can be booted in Secure Boot mode. Add an EFI_SECURE_BOOT +flag that can be passed to efi_enabled() to find out whether secure boot is +enabled. + +Move the switch-statement in x86's setup_arch() that inteprets the +secure_boot boot parameter to generic code and set the bit there. + +Suggested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> +Signed-off-by: David Howells <dhowells@redhat.com> +Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> +cc: linux-efi@vger.kernel.org +--- + arch/x86/kernel/setup.c | 14 +------------- + drivers/firmware/efi/Makefile | 1 + + drivers/firmware/efi/secureboot.c | 38 ++++++++++++++++++++++++++++++++++++++ + include/linux/efi.h | 16 ++++++++++------ + 4 files changed, 50 insertions(+), 19 deletions(-) + create mode 100644 drivers/firmware/efi/secureboot.c + +diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c +index 0957dd73d127..7c2162f9e769 100644 +--- a/arch/x86/kernel/setup.c ++++ b/arch/x86/kernel/setup.c +@@ -1197,19 +1197,7 @@ void __init setup_arch(char **cmdline_p) + /* Allocate bigger log buffer */ + setup_log_buf(1); + +- if (efi_enabled(EFI_BOOT)) { +- switch (boot_params.secure_boot) { +- case efi_secureboot_mode_disabled: +- pr_info("Secure boot disabled\n"); +- break; +- case efi_secureboot_mode_enabled: +- pr_info("Secure boot enabled\n"); +- break; +- default: +- pr_info("Secure boot could not be determined\n"); +- break; +- } +- } ++ efi_set_secure_boot(boot_params.secure_boot); + + reserve_initrd(); + +diff --git a/drivers/firmware/efi/Makefile b/drivers/firmware/efi/Makefile +index 0329d319d89a..883f9f7eefc6 100644 +--- a/drivers/firmware/efi/Makefile ++++ b/drivers/firmware/efi/Makefile +@@ -23,6 +23,7 @@ obj-$(CONFIG_EFI_FAKE_MEMMAP) += fake_mem.o + obj-$(CONFIG_EFI_BOOTLOADER_CONTROL) += efibc.o + obj-$(CONFIG_EFI_TEST) += test/ + obj-$(CONFIG_EFI_DEV_PATH_PARSER) += dev-path-parser.o ++obj-$(CONFIG_EFI) += secureboot.o + obj-$(CONFIG_APPLE_PROPERTIES) += apple-properties.o + + arm-obj-$(CONFIG_EFI) := arm-init.o arm-runtime.o +diff --git a/drivers/firmware/efi/secureboot.c b/drivers/firmware/efi/secureboot.c +new file mode 100644 +index 000000000000..9070055de0a1 +--- /dev/null ++++ b/drivers/firmware/efi/secureboot.c +@@ -0,0 +1,38 @@ ++/* Core kernel secure boot support. ++ * ++ * Copyright (C) 2017 Red Hat, Inc. All Rights Reserved. ++ * Written by David Howells (dhowells@redhat.com) ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public Licence ++ * as published by the Free Software Foundation; either version ++ * 2 of the Licence, or (at your option) any later version. ++ */ ++ ++#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt ++ ++#include <linux/efi.h> ++#include <linux/kernel.h> ++#include <linux/printk.h> ++ ++/* ++ * Decide what to do when UEFI secure boot mode is enabled. ++ */ ++void __init efi_set_secure_boot(enum efi_secureboot_mode mode) ++{ ++ if (efi_enabled(EFI_BOOT)) { ++ switch (mode) { ++ case efi_secureboot_mode_disabled: ++ pr_info("Secure boot disabled\n"); ++ break; ++ case efi_secureboot_mode_enabled: ++ set_bit(EFI_SECURE_BOOT, &efi.flags); ++ pr_info("Secure boot enabled\n"); ++ break; ++ default: ++ pr_warning("Secure boot could not be determined (mode %u)\n", ++ mode); ++ break; ++ } ++ } ++} +diff --git a/include/linux/efi.h b/include/linux/efi.h +index 66f4a4e79f4b..7c7a7e33e4d1 100644 +--- a/include/linux/efi.h ++++ b/include/linux/efi.h +@@ -1103,6 +1103,14 @@ extern int __init efi_setup_pcdp_console(char *); + #define EFI_DBG 8 /* Print additional debug info at runtime */ + #define EFI_NX_PE_DATA 9 /* Can runtime data regions be mapped non-executable? */ + #define EFI_MEM_ATTR 10 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */ ++#define EFI_SECURE_BOOT 11 /* Are we in Secure Boot mode? */ ++ ++enum efi_secureboot_mode { ++ efi_secureboot_mode_unset, ++ efi_secureboot_mode_unknown, ++ efi_secureboot_mode_disabled, ++ efi_secureboot_mode_enabled, ++}; + + #ifdef CONFIG_EFI + /* +@@ -1115,6 +1123,7 @@ static inline bool efi_enabled(int feature) + extern void efi_reboot(enum reboot_mode reboot_mode, const char *__unused); + + extern bool efi_is_table_address(unsigned long phys_addr); ++extern void __init efi_set_secure_boot(enum efi_secureboot_mode mode); + #else + static inline bool efi_enabled(int feature) + { +@@ -1133,6 +1142,7 @@ static inline bool efi_is_table_address(unsigned long phys_addr) + { + return false; + } ++static inline void efi_set_secure_boot(enum efi_secureboot_mode mode) {} + #endif + + extern int efi_status_to_err(efi_status_t status); +@@ -1518,12 +1528,6 @@ efi_status_t efi_setup_gop(efi_system_table_t *sys_table_arg, + bool efi_runtime_disabled(void); + extern void efi_call_virt_check_flags(unsigned long flags, const char *call); + +-enum efi_secureboot_mode { +- efi_secureboot_mode_unset, +- efi_secureboot_mode_unknown, +- efi_secureboot_mode_disabled, +- efi_secureboot_mode_enabled, +-}; + enum efi_secureboot_mode efi_get_secureboot(efi_system_table_t *sys_table); + + #ifdef CONFIG_RESET_ATTACK_MITIGATION +-- +2.13.6 + +From 163d6a313399a4d50c5c7e42e3dd642ca8d495d7 Mon Sep 17 00:00:00 2001 +From: David Howells <dhowells@redhat.com> +Date: Thu, 19 Oct 2017 14:05:02 +0100 +Subject: [PATCH 26/26] efi: Lock down the kernel if booted in secure boot mode + +UEFI Secure Boot provides a mechanism for ensuring that the firmware will +only load signed bootloaders and kernels. Certain use cases may also +require that all kernel modules also be signed. Add a configuration option +that to lock down the kernel - which includes requiring validly signed +modules - if the kernel is secure-booted. + +Signed-off-by: David Howells <dhowells@redhat.com> +Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> +cc: linux-efi@vger.kernel.org +--- + arch/x86/kernel/setup.c | 6 ++++-- + security/Kconfig | 14 ++++++++++++++ + security/lock_down.c | 1 + + 3 files changed, 19 insertions(+), 2 deletions(-) + +diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c +index 7c2162f9e769..4e38327efb2e 100644 +--- a/arch/x86/kernel/setup.c ++++ b/arch/x86/kernel/setup.c +@@ -64,6 +64,7 @@ + #include <linux/dma-mapping.h> + #include <linux/ctype.h> + #include <linux/uaccess.h> ++#include <linux/security.h> + + #include <linux/percpu.h> + #include <linux/crash_dump.h> +@@ -1039,6 +1040,9 @@ void __init setup_arch(char **cmdline_p) + if (efi_enabled(EFI_BOOT)) + efi_init(); + ++ efi_set_secure_boot(boot_params.secure_boot); ++ init_lockdown(); ++ + dmi_scan_machine(); + dmi_memdev_walk(); + dmi_set_dump_stack_arch_desc(); +@@ -1197,8 +1201,6 @@ void __init setup_arch(char **cmdline_p) + /* Allocate bigger log buffer */ + setup_log_buf(1); + +- efi_set_secure_boot(boot_params.secure_boot); +- + reserve_initrd(); + + acpi_table_upgrade(); +diff --git a/security/Kconfig b/security/Kconfig +index 453cc89c198a..974731ac4f85 100644 +--- a/security/Kconfig ++++ b/security/Kconfig +@@ -220,6 +220,20 @@ config ALLOW_LOCKDOWN_LIFT_BY_SYSRQ + Allow the lockdown on a kernel to be lifted, by pressing a SysRq key + combination on a wired keyboard. + ++config LOCK_DOWN_IN_EFI_SECURE_BOOT ++ bool "Lock down the kernel in EFI Secure Boot mode" ++ default n ++ select LOCK_DOWN_KERNEL ++ depends on EFI ++ help ++ UEFI Secure Boot provides a mechanism for ensuring that the firmware ++ will only load signed bootloaders and kernels. Secure boot mode may ++ be determined from EFI variables provided by the system firmware if ++ not indicated by the boot parameters. ++ ++ Enabling this option turns on results in kernel lockdown being ++ triggered if EFI Secure Boot is set. ++ + + source security/selinux/Kconfig + source security/smack/Kconfig +diff --git a/security/lock_down.c b/security/lock_down.c +index 2c6b00f0c229..527f7e51dc8d 100644 +--- a/security/lock_down.c ++++ b/security/lock_down.c +@@ -12,6 +12,7 @@ + #include <linux/security.h> + #include <linux/export.h> + #include <linux/sysrq.h> ++#include <linux/efi.h> + #include <asm/setup.h> + + #ifdef CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ +-- +2.13.6 diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config index cd7ca3f3e..1e35231c2 100644 --- a/kernel-aarch64-debug.config +++ b/kernel-aarch64-debug.config @@ -178,7 +178,9 @@ CONFIG_AK8975=m CONFIG_ALI_FIR=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y # CONFIG_ALTERA_MBOX is not set +CONFIG_ALTERA_MSGDMA=m CONFIG_ALTERA_STAPL=m CONFIG_ALTERA_TSE=m CONFIG_ALX=m @@ -257,6 +259,7 @@ CONFIG_ARM64_ERRATUM_858921=y CONFIG_ARM64_HW_AFDBM=y CONFIG_ARM64_LSE_ATOMICS=y CONFIG_ARM64_PAN=y +# CONFIG_ARM64_PMEM is not set CONFIG_ARM64_PTDUMP_DEBUGFS=y CONFIG_ARM64_PTDUMP=y # CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set @@ -330,6 +333,7 @@ CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m CONFIG_ATH10K_SDIO=m # CONFIG_ATH10K_TRACING is not set +CONFIG_ATH10K_USB=m CONFIG_ATH5K_DEBUG=y CONFIG_ATH5K=m # CONFIG_ATH5K_TRACER is not set @@ -470,6 +474,7 @@ CONFIG_BATTERY_AXP20X=m # CONFIG_BATTERY_LEGO_EV3 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set +# CONFIG_BATTERY_MAX1721X is not set # CONFIG_BATTERY_SBS is not set CONFIG_BAYCOM_EPP=m CONFIG_BAYCOM_PAR=m @@ -519,7 +524,6 @@ CONFIG_BINFMT_MISC=m CONFIG_BINFMT_SCRIPT=y CONFIG_BLK_CGROUP=y # CONFIG_BLK_CMDLINE_PARSER is not set -CONFIG_BLK_CPQ_CISS_DA=m CONFIG_BLK_DEBUG_FS=y # CONFIG_BLK_DEV_3W_XXXX_RAID is not set CONFIG_BLK_DEV_BSGLIB=y @@ -577,6 +581,7 @@ CONFIG_BNX2=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y CONFIG_BNXT_DCB=y +CONFIG_BNXT_FLOWER_OFFLOAD=y CONFIG_BNXT=m CONFIG_BNXT_SRIOV=y CONFIG_BONDING=m @@ -588,6 +593,7 @@ CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 CONFIG_BOOT_PRINTK_DELAY=y CONFIG_BOUNCE=y CONFIG_BPF_JIT=y +CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m # CONFIG_BRCMDBG is not set @@ -758,11 +764,13 @@ CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set # CONFIG_CC10001_ADC is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +# CONFIG_CCS811 is not set # CONFIG_CC_STACKPROTECTOR is not set CONFIG_CC_STACKPROTECTOR_NONE=y CONFIG_CDROM_PKTCDVD_BUFFERS=8 CONFIG_CDROM_PKTCDVD=m # CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEC_PIN=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_CEPH_FSCACHE=y CONFIG_CEPH_FS=m @@ -841,9 +849,9 @@ CONFIG_CIFS_STATS=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_XATTR=y -CONFIG_CISS_SCSI_TAPE=y CONFIG_CLEANCACHE=y CONFIG_CLKDEV_LOOKUP=y +# CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set CONFIG_CLK_SP810=y CONFIG_CLKSRC_VERSATILE=y @@ -952,8 +960,8 @@ CONFIG_CRYPTO_AES_ARM64_BS=m CONFIG_CRYPTO_AES_ARM64_CE_BLK=y CONFIG_CRYPTO_AES_ARM64_CE_CCM=y CONFIG_CRYPTO_AES_ARM64_CE=y -CONFIG_CRYPTO_AES_ARM64=m CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y +CONFIG_CRYPTO_AES_ARM64=y CONFIG_CRYPTO_AES_ARM_BS=y CONFIG_CRYPTO_AES_ARM=y CONFIG_CRYPTO_AES_TI=m @@ -1000,6 +1008,8 @@ CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m CONFIG_CRYPTO_DEV_QCE=m CONFIG_CRYPTO_DEV_ROCKCHIP=m CONFIG_CRYPTO_DEV_SAFEXCEL=m +# CONFIG_CRYPTO_DEV_SP_CCP is not set +CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DH=y CONFIG_CRYPTO_DRBG_CTR=y @@ -1047,7 +1057,7 @@ CONFIG_CRYPTO_SHA1_ARM64_CE=y CONFIG_CRYPTO_SHA1_ARM_NEON=y CONFIG_CRYPTO_SHA1_ARM=y CONFIG_CRYPTO_SHA1=y -CONFIG_CRYPTO_SHA256_ARM64=m +CONFIG_CRYPTO_SHA256_ARM64=y CONFIG_CRYPTO_SHA256_ARM=y CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA2_ARM64_CE=y @@ -1232,7 +1242,7 @@ CONFIG_DNS_RESOLVER=m CONFIG_DONGLE=y CONFIG_DP83640_PHY=m CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m +# CONFIG_DP83867_PHY is not set # CONFIG_DPM_WATCHDOG is not set # revisit this in debug CONFIG_DPOT_DAC=m CONFIG_DRAGONRISE_FF=y @@ -1255,6 +1265,7 @@ CONFIG_DRM_CIRRUS_QEMU=m CONFIG_DRM_DP_AUX_CHARDEV=y CONFIG_DRM_DUMB_VGA_DAC=m CONFIG_DRM_DW_HDMI_AHB_AUDIO=m +CONFIG_DRM_DW_HDMI_CEC=m CONFIG_DRM_DW_HDMI_I2S_AUDIO=m CONFIG_DRM_DW_HDMI=m CONFIG_DRM_FBDEV_EMULATION=y @@ -1318,7 +1329,6 @@ CONFIG_DRM_ROCKCHIP=m CONFIG_DRM_SIL_SII8620=m # CONFIG_DRM_SIS is not set # CONFIG_DRM_STM is not set -CONFIG_DRM_SUN4I_BACKEND=m CONFIG_DRM_SUN8I_MIXER=m # CONFIG_DRM_TDFX is not set # CONFIG_DRM_TEGRA_DEBUG is not set @@ -1329,6 +1339,7 @@ CONFIG_DRM_TI_TFP410=m CONFIG_DRM_TOSHIBA_TC358767=m CONFIG_DRM_UDL=m # CONFIG_DRM_VBOXVIDEO is not set +CONFIG_DRM_VC4_HDMI_CEC=y CONFIG_DRM_VC4=m CONFIG_DRM_VGEM=m CONFIG_DRM_VIA=m @@ -1360,6 +1371,7 @@ CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_CORE=m # CONFIG_DVB_CXD2099 is not set CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set CONFIG_DVB_DM1105=m CONFIG_DVB_DYNAMIC_MINORS=y @@ -1510,6 +1522,7 @@ CONFIG_EXTCON_GPIO=m CONFIG_EXTCON_QCOM_SPMI_MISC=m # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set +CONFIG_EXTCON_USBC_CROS_EC=m CONFIG_EXTCON_USB_GPIO=m CONFIG_EXTCON=y CONFIG_EXTRA_FIRMWARE="" @@ -1722,6 +1735,7 @@ CONFIG_GIRBIL_DONGLE=m # CONFIG_GPIO_ALTERA is not set # CONFIG_GPIO_AMDPT is not set CONFIG_GPIO_AXP209=m +CONFIG_GPIO_BD9571MWV=m # CONFIG_GPIO_BT8XX is not set CONFIG_GPIO_DEVRES=y CONFIG_GPIO_DWAPB=m @@ -1754,7 +1768,9 @@ CONFIG_GPIO_PL061=y # CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_SYSFS is not set CONFIG_GPIO_TEGRA=y +CONFIG_GPIO_THUNDERX=m # CONFIG_GPIO_TPIC2810 is not set +CONFIG_GPIO_TPS68470=y # CONFIG_GPIO_TS4900 is not set # CONFIG_GPIO_TS5500 is not set CONFIG_GPIO_VIPERBOARD=m @@ -1965,6 +1981,7 @@ CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_BCM2835=m CONFIG_HW_RANDOM_CAVIUM=m CONFIG_HW_RANDOM_HISI=m +CONFIG_HW_RANDOM_IMX_RNGC=m CONFIG_HW_RANDOM_MESON=m CONFIG_HW_RANDOM_MSM=m CONFIG_HW_RANDOM_OMAP=m @@ -2003,10 +2020,10 @@ CONFIG_I2C_CROS_EC_TUNNEL=m # CONFIG_I2C_DEBUG_BUS is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEMUX_PINCTRL is not set -CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_DESIGNWARE_CORE=y # CONFIG_I2C_DESIGNWARE is not set CONFIG_I2C_DESIGNWARE_PCI=m -CONFIG_I2C_DESIGNWARE_PLATFORM=m +CONFIG_I2C_DESIGNWARE_PLATFORM=y CONFIG_I2C_DESIGNWARE_SLAVE=y CONFIG_I2C_DIOLAN_U2C=m # CONFIG_I2C_EG20T is not set @@ -2160,6 +2177,7 @@ CONFIG_INET=y # CONFIG_INFINIBAND_CXGB3_DEBUG is not set CONFIG_INFINIBAND_CXGB3=m CONFIG_INFINIBAND_CXGB4=m +# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set CONFIG_INFINIBAND_I40IW=m CONFIG_INFINIBAND_IPOIB_CM=y CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y @@ -2237,8 +2255,10 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_PWM_BEEPER=m +# CONFIG_INPUT_PWM_VIBRA is not set # CONFIG_INPUT_REGULATOR_HAPTIC is not set CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_RK805_PWRKEY=m CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_INPUT_SPARSEKMAP=m CONFIG_INPUT_TABLET=y @@ -2421,6 +2441,7 @@ CONFIG_IRDA=m CONFIG_IR_ENE=m CONFIG_IR_FINTEK=m CONFIG_IR_GPIO_CIR=m +CONFIG_IR_GPIO_TX=m CONFIG_IR_HIX5HD2=m CONFIG_IR_IGORPLUGUSB=m CONFIG_IR_IGUANA=m @@ -2436,6 +2457,7 @@ CONFIG_IR_MESON=m CONFIG_IR_NEC_DECODER=m CONFIG_IRNET=m CONFIG_IR_NUVOTON=m +CONFIG_IR_PWM_TX=m # CONFIG_IRQ_DOMAIN_DEBUG is not set # CONFIG_IRQSOFF_TRACER is not set CONFIG_IRQ_TIME_ACCOUNTING=y @@ -2668,6 +2690,7 @@ CONFIG_LCD_PLATFORM=m # CONFIG_LDM_DEBUG is not set CONFIG_LDM_PARTITION=y # CONFIG_LEDS_AAT1290 is not set +CONFIG_LEDS_AS3645A=m # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set # CONFIG_LEDS_BD2802 is not set @@ -2767,6 +2790,7 @@ CONFIG_LMP91000=m CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_LOCKD=m +# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set # CONFIG_LOCK_DOWN_KERNEL is not set CONFIG_LOCKD_V4=y # CONFIG_LOCK_STAT is not set @@ -2791,6 +2815,7 @@ CONFIG_LPFC_NVME_INITIATOR=y CONFIG_LPFC_NVME_TARGET=y CONFIG_LSI_ET1011C_PHY=m CONFIG_LSM_MMAP_MIN_ADDR=65536 +# CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set # CONFIG_LTC2497 is not set # CONFIG_LTC2632 is not set @@ -2871,6 +2896,7 @@ CONFIG_MDIO_BUS_MUX=m CONFIG_MDIO_BUS_MUX_MMIOREG=m CONFIG_MDIO_GPIO=m CONFIG_MDIO_HISI_FEMAC=m +CONFIG_MDIO_I2C=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_SUN4I is not set CONFIG_MDIO_THUNDER=m @@ -2925,6 +2951,7 @@ CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MESON_EFUSE=m CONFIG_MESON_GXBB_WATCHDOG=m CONFIG_MESON_GXL_PHY=m +CONFIG_MESON_GX_SOCINFO=y CONFIG_MESON_SARADC=m CONFIG_MESON_SM=y # CONFIG_MESON_WATCHDOG is not set @@ -2947,6 +2974,7 @@ CONFIG_MFD_AXP20X_I2C=y CONFIG_MFD_AXP20X_RSB=m CONFIG_MFD_AXP20X=y # CONFIG_MFD_BCM590XX is not set +CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set CONFIG_MFD_CROS_EC_I2C=m @@ -3020,6 +3048,7 @@ CONFIG_MFD_SYSCON=y # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912 is not set # CONFIG_MFD_TPS65912_SPI is not set +CONFIG_MFD_TPS68470=y # CONFIG_MFD_TPS80031 is not set CONFIG_MFD_VEXPRESS_SYSREG=y CONFIG_MFD_VIPERBOARD=m @@ -3064,8 +3093,10 @@ CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_CORE_IPOIB=y CONFIG_MLX5_CORE=m # CONFIG_MLX5_EN_IPSEC is not set +CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set CONFIG_MLX5_INFINIBAND=m +CONFIG_MLX5_MPFS=y # CONFIG_MLX90614 is not set CONFIG_MLX_CPLD_PLATFORM=m CONFIG_MLXFW=m @@ -3088,7 +3119,6 @@ CONFIG_MMA7660=m # CONFIG_MMC35240 is not set CONFIG_MMC_ARMMMCI=m CONFIG_MMC_BCM2835=m -CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_CAVIUM_THUNDERX=m @@ -3103,7 +3133,7 @@ CONFIG_MMC_DW_ROCKCHIP=m CONFIG_MMC_MESON_GX=m # CONFIG_MMC_MTK is not set CONFIG_MMC_MVSDIO=m -CONFIG_MMC_QCOM_DML=m +CONFIG_MMC_QCOM_DML=y CONFIG_MMC_REALTEK_PCI=m CONFIG_MMC_REALTEK_USB=m CONFIG_MMC_RICOH_MMC=y @@ -3235,6 +3265,7 @@ CONFIG_MTD_MAP_BANK_WIDTH_4=y # CONFIG_MTD_NAND is not set # CONFIG_MTD_NAND_OMAP2 is not set # CONFIG_MTD_NAND_OXNAS is not set +CONFIG_MTD_NAND_PXA3xx=m CONFIG_MTD_OF_PARTS=m # CONFIG_MTD_ONENAND is not set # CONFIG_MTD_OOPS is not set @@ -3474,6 +3505,7 @@ CONFIG_NETLABEL=y CONFIG_NETLINK_DIAG=m CONFIG_NET_MPLS_GSO=m CONFIG_NET_NCSI=y +CONFIG_NET_NSH=m CONFIG_NET_NS=y CONFIG_NET_PACKET_ENGINE=y CONFIG_NET_PKTGEN=m @@ -3544,6 +3576,7 @@ CONFIG_NET_VENDOR_EMULEX=y # CONFIG_NET_VENDOR_FUJITSU is not set # CONFIG_NET_VENDOR_HISILICON is not set # CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_I825XX is not set CONFIG_NET_VENDOR_INTEL=y CONFIG_NET_VENDOR_MARVELL=y @@ -3705,6 +3738,7 @@ CONFIG_NFT_EXTHDR=m CONFIG_NFT_FIB_INET=m CONFIG_NFT_FIB_IPV4=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_HASH=m CONFIG_NFT_LIMIT=m @@ -4007,8 +4041,10 @@ CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PHY_CPCAP_USB is not set CONFIG_PHY_HI6220_USB=m CONFIG_PHYLIB=y +CONFIG_PHYLINK=m CONFIG_PHY_MESON8B_USB2=m # CONFIG_PHY_MESON_GXL_USB2 is not set +CONFIG_PHY_MVEBU_CP110_COMPHY=m CONFIG_PHY_MVEBU_SATA=y # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set @@ -4033,6 +4069,7 @@ CONFIG_PHY_SUN4I_USB=m CONFIG_PHY_TEGRA_XUSB=m # CONFIG_PHY_TUSB1210 is not set CONFIG_PHY_XGENE=y +# CONFIG_PI433 is not set # CONFIG_PID_IN_CONTEXTIDR is not set CONFIG_PID_NS=y CONFIG_PINCONF=y @@ -4061,7 +4098,10 @@ CONFIG_PINCTRL_MVEBU=y CONFIG_PINCTRL_QCOM_SPMI_PMIC=y # CONFIG_PINCTRL_QCOM_SSBI_PMIC is not set CONFIG_PINCTRL_QDF2XXX=y +CONFIG_PINCTRL_RK805=m CONFIG_PINCTRL_SINGLE=y +# CONFIG_PINCTRL_SPRD is not set +# CONFIG_PINCTRL_SPRD_SC9860 is not set # CONFIG_PINCTRL_SUNRISEPOINT is not set # CONFIG_PINCTRL_SX150X is not set CONFIG_PINCTRL=y @@ -4187,6 +4227,7 @@ CONFIG_QCOM_COINCELL=m CONFIG_QCOM_EMAC=m # CONFIG_QCOM_FALKOR_ERRATUM_1003 is not set CONFIG_QCOM_FALKOR_ERRATUM_1009=y +# CONFIG_QCOM_GLINK_SSR is not set CONFIG_QCOM_GSBI=y CONFIG_QCOM_HIDMA=m CONFIG_QCOM_HIDMA_MGMT=m @@ -4238,6 +4279,7 @@ CONFIG_R8169=m # CONFIG_R8188EU is not set CONFIG_R8712U=m CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162) +CONFIG_R8822BE=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_AZTECH=m CONFIG_RADIO_CADET=m @@ -4313,6 +4355,7 @@ CONFIG_REGULATOR_ACT8865=m # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ANATOP is not set CONFIG_REGULATOR_AXP20X=m +CONFIG_REGULATOR_BD9571MWV=m # CONFIG_REGULATOR_DA9210 is not set # CONFIG_REGULATOR_DA9211 is not set # CONFIG_REGULATOR_DEBUG is not set @@ -4367,9 +4410,11 @@ CONFIG_RELAY=y # CONFIG_RELOCATABLE_TEST is not set CONFIG_RELOCATABLE=y CONFIG_REMOTEPROC=m +CONFIG_RESET_ATTACK_MITIGATION=y CONFIG_RESET_CONTROLLER=y CONFIG_RESET_GPIO=y CONFIG_RESET_HISI=y +# CONFIG_RESET_HSDK_V1 is not set # CONFIG_RESET_TI_SCI is not set # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RFD_FTL is not set @@ -4390,6 +4435,7 @@ CONFIG_RMI4_F55=y CONFIG_RMI4_I2C=m CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m +# CONFIG_RMNET is not set CONFIG_ROCKCHIP_ANALOGIX_DP=y CONFIG_ROCKCHIP_CDN_DP=y CONFIG_ROCKCHIP_DW_HDMI=y @@ -4399,6 +4445,7 @@ CONFIG_ROCKCHIP_INNO_HDMI=y CONFIG_ROCKCHIP_IODOMAIN=m CONFIG_ROCKCHIP_IOMMU=y CONFIG_ROCKCHIP_MBOX=y +CONFIG_ROCKCHIP_PHY=m CONFIG_ROCKCHIP_PM_DOMAINS=y CONFIG_ROCKCHIP_SARADC=m CONFIG_ROCKCHIP_THERMAL=m @@ -4410,6 +4457,7 @@ CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPMSG_CHAR is not set CONFIG_RPMSG=m CONFIG_RPMSG_QCOM_GLINK_RPM=m +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set CONFIG_RPMSG_QCOM_SMD=m CONFIG_RPR0521=m CONFIG_RSI_91X=m @@ -4785,6 +4833,7 @@ CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m +# CONFIG_SENSORS_IBM_CFFPS is not set CONFIG_SENSORS_IBMPEX=m CONFIG_SENSORS_IIO_HWMON=m CONFIG_SENSORS_INA209=m @@ -4875,6 +4924,7 @@ CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_TPS40422=m +CONFIG_SENSORS_TPS53679=m CONFIG_SENSORS_TSL2550=m # CONFIG_SENSORS_TSL2563 is not set CONFIG_SENSORS_UCD9000=m @@ -4959,6 +5009,7 @@ CONFIG_SERIO_AMBAKMI=m # CONFIG_SERIO_APBPS2 is not set CONFIG_SERIO_ARC_PS2=m # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_GPIO_PS2 is not set CONFIG_SERIO_I8042=y CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_OLPC_APSP is not set @@ -4972,6 +5023,7 @@ CONFIG_SERIO=y CONFIG_SFC_FALCON=m CONFIG_SFC_FALCON_MTD=y # CONFIG_SFC is not set +CONFIG_SFP=m # CONFIG_SGI_IOC4 is not set CONFIG_SGI_PARTITION=y CONFIG_SH_ETH=m @@ -4981,7 +5033,7 @@ CONFIG_SH_ETH=m # CONFIG_SIGMA is not set CONFIG_SIGMATEL_FIR=m CONFIG_SIGNED_PE_FILE_VERIFICATION=y -CONFIG_SIMPLE_PM_BUS=y +# CONFIG_SIMPLE_PM_BUS is not set CONFIG_SIS190=m CONFIG_SIS900=m # CONFIG_SKFP is not set @@ -4990,6 +5042,7 @@ CONFIG_SKGE_GENESIS=y CONFIG_SKGE=m # CONFIG_SKY2_DEBUG is not set CONFIG_SKY2=m +CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLICOSS is not set @@ -5035,7 +5088,7 @@ CONFIG_SND_AUDIO_GRAPH_CARD=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -CONFIG_SND_BCD2000=m +# CONFIG_SND_BCD2000 is not set CONFIG_SND_BCM2835_SOC_I2S=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m @@ -5099,7 +5152,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=0 CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_HDA_RECONFIG=y @@ -5192,6 +5245,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set CONFIG_SND_SOC_DIO2125=m @@ -5258,6 +5312,12 @@ CONFIG_SND_SOC_SPDIF=m # CONFIG_SND_SOC_TAS5086 is not set # CONFIG_SND_SOC_TAS571X is not set # CONFIG_SND_SOC_TAS5720 is not set +CONFIG_SND_SOC_TEGRA20_AC97=m +CONFIG_SND_SOC_TEGRA20_DAS=m +CONFIG_SND_SOC_TEGRA20_I2S=m +CONFIG_SND_SOC_TEGRA20_SPDIF=m +CONFIG_SND_SOC_TEGRA30_AHUB=m +CONFIG_SND_SOC_TEGRA30_I2S=m # CONFIG_SND_SOC_TEGRA_ALC5632 is not set CONFIG_SND_SOC_TEGRA=m CONFIG_SND_SOC_TEGRA_MAX98090=m @@ -5277,6 +5337,7 @@ CONFIG_SND_SOC_TPA6130A2=m CONFIG_SND_SOC_TS3A227E=m # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set +CONFIG_SND_SOC_WM8524=m # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set @@ -5402,6 +5463,7 @@ CONFIG_SQUASHFS=m CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_ZSTD=y CONFIG_SRAM=y # CONFIG_SRF04 is not set # CONFIG_SRF08 is not set @@ -5435,6 +5497,7 @@ CONFIG_STMMAC_ETH=m CONFIG_STMMAC_PLATFORM=m # CONFIG_STM_SOURCE_CONSOLE is not set CONFIG_STRICT_DEVMEM=y +# CONFIG_STRING_SELFTEST is not set CONFIG_STRIP_ASM_SYMS=y # CONFIG_STRIP is not set CONFIG_STUB_CLK_HI6220=y @@ -5621,6 +5684,8 @@ CONFIG_TIGON3=m # CONFIG_TIMER_STATS is not set CONFIG_TINYDRM_MI0283QT=m CONFIG_TINYDRM_MIPI_DBI=m +# CONFIG_TINYDRM_REPAPER is not set +# CONFIG_TINYDRM_ST7586 is not set CONFIG_TIPC=m # CONFIG_TIPC_MEDIA_IB is not set CONFIG_TIPC_MEDIA_UDP=y @@ -6243,6 +6308,7 @@ CONFIG_VIDEO_HEXIUM_ORION=m CONFIG_VIDEO_IVTV=m # CONFIG_VIDEO_M5MOLS is not set # CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set +CONFIG_VIDEO_MESON_AO_CEC=m CONFIG_VIDEO_MEYE=m CONFIG_VIDEO_MXB=m CONFIG_VIDEO_NOON010PC30=m @@ -6251,6 +6317,7 @@ CONFIG_VIDEO_NOON010PC30=m CONFIG_VIDEO_PVRUSB2_DVB=y CONFIG_VIDEO_PVRUSB2=m CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_QCOM_CAMSS=m CONFIG_VIDEO_QCOM_VENUS=m CONFIG_VIDEO_SAA6588=m CONFIG_VIDEO_SAA7134_ALSA=m @@ -6312,6 +6379,7 @@ CONFIG_VLAN_8021Q_GVRP=y CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_MVRP=y CONFIG_VLSI_FIR=m +CONFIG_VMAP_STACK=y # CONFIG_VME_BUS is not set # CONFIG_VMXNET3 is not set CONFIG_VORTEX=m @@ -6348,6 +6416,7 @@ CONFIG_W1_SLAVE_DS2438=m CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS2805=m CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_THERM=m @@ -6367,6 +6436,7 @@ CONFIG_WATCHDOG=y CONFIG_WCN36XX=m CONFIG_WDAT_WDT=m CONFIG_WDTPCI=m +CONFIG_WIL6210_DEBUGFS=y CONFIG_WIL6210_ISR_COR=y CONFIG_WIL6210=m # CONFIG_WIL6210_TRACING is not set @@ -6461,6 +6531,7 @@ CONFIG_ZLIB_DEFLATE=y CONFIG_ZLIB_INFLATE=y # CONFIG_ZPA2326 is not set CONFIG_ZRAM=m +# CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y CONFIG_ZSWAP=y diff --git a/kernel-aarch64.config b/kernel-aarch64.config index 677a69050..355143eaf 100644 --- a/kernel-aarch64.config +++ b/kernel-aarch64.config @@ -178,7 +178,9 @@ CONFIG_AK8975=m CONFIG_ALI_FIR=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y # CONFIG_ALTERA_MBOX is not set +CONFIG_ALTERA_MSGDMA=m CONFIG_ALTERA_STAPL=m CONFIG_ALTERA_TSE=m CONFIG_ALX=m @@ -257,6 +259,7 @@ CONFIG_ARM64_ERRATUM_858921=y CONFIG_ARM64_HW_AFDBM=y CONFIG_ARM64_LSE_ATOMICS=y CONFIG_ARM64_PAN=y +# CONFIG_ARM64_PMEM is not set CONFIG_ARM64_PTDUMP_DEBUGFS=y # CONFIG_ARM64_PTDUMP is not set # CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set @@ -330,6 +333,7 @@ CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m CONFIG_ATH10K_SDIO=m # CONFIG_ATH10K_TRACING is not set +CONFIG_ATH10K_USB=m CONFIG_ATH5K_DEBUG=y CONFIG_ATH5K=m # CONFIG_ATH5K_TRACER is not set @@ -470,6 +474,7 @@ CONFIG_BATTERY_AXP20X=m # CONFIG_BATTERY_LEGO_EV3 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set +# CONFIG_BATTERY_MAX1721X is not set # CONFIG_BATTERY_SBS is not set CONFIG_BAYCOM_EPP=m CONFIG_BAYCOM_PAR=m @@ -519,7 +524,6 @@ CONFIG_BINFMT_MISC=m CONFIG_BINFMT_SCRIPT=y CONFIG_BLK_CGROUP=y # CONFIG_BLK_CMDLINE_PARSER is not set -CONFIG_BLK_CPQ_CISS_DA=m CONFIG_BLK_DEBUG_FS=y # CONFIG_BLK_DEV_3W_XXXX_RAID is not set CONFIG_BLK_DEV_BSGLIB=y @@ -577,6 +581,7 @@ CONFIG_BNX2=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y CONFIG_BNXT_DCB=y +CONFIG_BNXT_FLOWER_OFFLOAD=y CONFIG_BNXT=m CONFIG_BNXT_SRIOV=y CONFIG_BONDING=m @@ -588,6 +593,7 @@ CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 CONFIG_BOOT_PRINTK_DELAY=y CONFIG_BOUNCE=y CONFIG_BPF_JIT=y +CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m # CONFIG_BRCMDBG is not set @@ -758,11 +764,13 @@ CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set # CONFIG_CC10001_ADC is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +# CONFIG_CCS811 is not set # CONFIG_CC_STACKPROTECTOR is not set CONFIG_CC_STACKPROTECTOR_NONE=y CONFIG_CDROM_PKTCDVD_BUFFERS=8 CONFIG_CDROM_PKTCDVD=m # CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEC_PIN=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_CEPH_FSCACHE=y CONFIG_CEPH_FS=m @@ -841,9 +849,9 @@ CONFIG_CIFS_STATS=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_XATTR=y -CONFIG_CISS_SCSI_TAPE=y CONFIG_CLEANCACHE=y CONFIG_CLKDEV_LOOKUP=y +# CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set CONFIG_CLK_SP810=y CONFIG_CLKSRC_VERSATILE=y @@ -951,8 +959,8 @@ CONFIG_CRYPTO_AES_ARM64_BS=m CONFIG_CRYPTO_AES_ARM64_CE_BLK=y CONFIG_CRYPTO_AES_ARM64_CE_CCM=y CONFIG_CRYPTO_AES_ARM64_CE=y -CONFIG_CRYPTO_AES_ARM64=m CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y +CONFIG_CRYPTO_AES_ARM64=y CONFIG_CRYPTO_AES_ARM_BS=y CONFIG_CRYPTO_AES_ARM=y CONFIG_CRYPTO_AES_TI=m @@ -999,6 +1007,8 @@ CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m CONFIG_CRYPTO_DEV_QCE=m CONFIG_CRYPTO_DEV_ROCKCHIP=m CONFIG_CRYPTO_DEV_SAFEXCEL=m +# CONFIG_CRYPTO_DEV_SP_CCP is not set +CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DH=y CONFIG_CRYPTO_DRBG_CTR=y @@ -1046,7 +1056,7 @@ CONFIG_CRYPTO_SHA1_ARM64_CE=y CONFIG_CRYPTO_SHA1_ARM_NEON=y CONFIG_CRYPTO_SHA1_ARM=y CONFIG_CRYPTO_SHA1=y -CONFIG_CRYPTO_SHA256_ARM64=m +CONFIG_CRYPTO_SHA256_ARM64=y CONFIG_CRYPTO_SHA256_ARM=y CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA2_ARM64_CE=y @@ -1222,7 +1232,7 @@ CONFIG_DNS_RESOLVER=m CONFIG_DONGLE=y CONFIG_DP83640_PHY=m CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m +# CONFIG_DP83867_PHY is not set # CONFIG_DPM_WATCHDOG is not set # revisit this in debug CONFIG_DPOT_DAC=m CONFIG_DRAGONRISE_FF=y @@ -1245,6 +1255,7 @@ CONFIG_DRM_CIRRUS_QEMU=m CONFIG_DRM_DP_AUX_CHARDEV=y CONFIG_DRM_DUMB_VGA_DAC=m CONFIG_DRM_DW_HDMI_AHB_AUDIO=m +CONFIG_DRM_DW_HDMI_CEC=m CONFIG_DRM_DW_HDMI_I2S_AUDIO=m CONFIG_DRM_DW_HDMI=m CONFIG_DRM_FBDEV_EMULATION=y @@ -1308,7 +1319,6 @@ CONFIG_DRM_ROCKCHIP=m CONFIG_DRM_SIL_SII8620=m # CONFIG_DRM_SIS is not set # CONFIG_DRM_STM is not set -CONFIG_DRM_SUN4I_BACKEND=m CONFIG_DRM_SUN8I_MIXER=m # CONFIG_DRM_TDFX is not set # CONFIG_DRM_TEGRA_DEBUG is not set @@ -1319,6 +1329,7 @@ CONFIG_DRM_TI_TFP410=m CONFIG_DRM_TOSHIBA_TC358767=m CONFIG_DRM_UDL=m # CONFIG_DRM_VBOXVIDEO is not set +CONFIG_DRM_VC4_HDMI_CEC=y CONFIG_DRM_VC4=m CONFIG_DRM_VGEM=m CONFIG_DRM_VIA=m @@ -1350,6 +1361,7 @@ CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_CORE=m # CONFIG_DVB_CXD2099 is not set CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set CONFIG_DVB_DM1105=m CONFIG_DVB_DYNAMIC_MINORS=y @@ -1500,6 +1512,7 @@ CONFIG_EXTCON_GPIO=m CONFIG_EXTCON_QCOM_SPMI_MISC=m # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set +CONFIG_EXTCON_USBC_CROS_EC=m CONFIG_EXTCON_USB_GPIO=m CONFIG_EXTCON=y CONFIG_EXTRA_FIRMWARE="" @@ -1705,6 +1718,7 @@ CONFIG_GIRBIL_DONGLE=m # CONFIG_GPIO_ALTERA is not set # CONFIG_GPIO_AMDPT is not set CONFIG_GPIO_AXP209=m +CONFIG_GPIO_BD9571MWV=m # CONFIG_GPIO_BT8XX is not set CONFIG_GPIO_DEVRES=y CONFIG_GPIO_DWAPB=m @@ -1737,7 +1751,9 @@ CONFIG_GPIO_PL061=y # CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_SYSFS is not set CONFIG_GPIO_TEGRA=y +CONFIG_GPIO_THUNDERX=m # CONFIG_GPIO_TPIC2810 is not set +CONFIG_GPIO_TPS68470=y # CONFIG_GPIO_TS4900 is not set # CONFIG_GPIO_TS5500 is not set CONFIG_GPIO_VIPERBOARD=m @@ -1948,6 +1964,7 @@ CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_BCM2835=m CONFIG_HW_RANDOM_CAVIUM=m CONFIG_HW_RANDOM_HISI=m +CONFIG_HW_RANDOM_IMX_RNGC=m CONFIG_HW_RANDOM_MESON=m CONFIG_HW_RANDOM_MSM=m CONFIG_HW_RANDOM_OMAP=m @@ -1986,10 +2003,10 @@ CONFIG_I2C_CROS_EC_TUNNEL=m # CONFIG_I2C_DEBUG_BUS is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEMUX_PINCTRL is not set -CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_DESIGNWARE_CORE=y # CONFIG_I2C_DESIGNWARE is not set CONFIG_I2C_DESIGNWARE_PCI=m -CONFIG_I2C_DESIGNWARE_PLATFORM=m +CONFIG_I2C_DESIGNWARE_PLATFORM=y CONFIG_I2C_DESIGNWARE_SLAVE=y CONFIG_I2C_DIOLAN_U2C=m # CONFIG_I2C_EG20T is not set @@ -2143,6 +2160,7 @@ CONFIG_INET=y # CONFIG_INFINIBAND_CXGB3_DEBUG is not set CONFIG_INFINIBAND_CXGB3=m CONFIG_INFINIBAND_CXGB4=m +# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set CONFIG_INFINIBAND_I40IW=m CONFIG_INFINIBAND_IPOIB_CM=y CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y @@ -2220,8 +2238,10 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_PWM_BEEPER=m +# CONFIG_INPUT_PWM_VIBRA is not set # CONFIG_INPUT_REGULATOR_HAPTIC is not set CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_RK805_PWRKEY=m CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_INPUT_SPARSEKMAP=m CONFIG_INPUT_TABLET=y @@ -2404,6 +2424,7 @@ CONFIG_IRDA=m CONFIG_IR_ENE=m CONFIG_IR_FINTEK=m CONFIG_IR_GPIO_CIR=m +CONFIG_IR_GPIO_TX=m CONFIG_IR_HIX5HD2=m CONFIG_IR_IGORPLUGUSB=m CONFIG_IR_IGUANA=m @@ -2419,6 +2440,7 @@ CONFIG_IR_MESON=m CONFIG_IR_NEC_DECODER=m CONFIG_IRNET=m CONFIG_IR_NUVOTON=m +CONFIG_IR_PWM_TX=m # CONFIG_IRQ_DOMAIN_DEBUG is not set # CONFIG_IRQSOFF_TRACER is not set CONFIG_IRQ_TIME_ACCOUNTING=y @@ -2649,6 +2671,7 @@ CONFIG_LCD_PLATFORM=m # CONFIG_LDM_DEBUG is not set CONFIG_LDM_PARTITION=y # CONFIG_LEDS_AAT1290 is not set +CONFIG_LEDS_AS3645A=m # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set # CONFIG_LEDS_BD2802 is not set @@ -2748,6 +2771,7 @@ CONFIG_LMP91000=m CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_LOCKD=m +# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set # CONFIG_LOCK_DOWN_KERNEL is not set CONFIG_LOCKD_V4=y # CONFIG_LOCK_STAT is not set @@ -2772,6 +2796,7 @@ CONFIG_LPFC_NVME_INITIATOR=y CONFIG_LPFC_NVME_TARGET=y CONFIG_LSI_ET1011C_PHY=m CONFIG_LSM_MMAP_MIN_ADDR=65536 +# CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set # CONFIG_LTC2497 is not set # CONFIG_LTC2632 is not set @@ -2851,6 +2876,7 @@ CONFIG_MDIO_BUS_MUX=m CONFIG_MDIO_BUS_MUX_MMIOREG=m CONFIG_MDIO_GPIO=m CONFIG_MDIO_HISI_FEMAC=m +CONFIG_MDIO_I2C=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_SUN4I is not set CONFIG_MDIO_THUNDER=m @@ -2905,6 +2931,7 @@ CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MESON_EFUSE=m CONFIG_MESON_GXBB_WATCHDOG=m CONFIG_MESON_GXL_PHY=m +CONFIG_MESON_GX_SOCINFO=y CONFIG_MESON_SARADC=m CONFIG_MESON_SM=y # CONFIG_MESON_WATCHDOG is not set @@ -2927,6 +2954,7 @@ CONFIG_MFD_AXP20X_I2C=y CONFIG_MFD_AXP20X_RSB=m CONFIG_MFD_AXP20X=y # CONFIG_MFD_BCM590XX is not set +CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set CONFIG_MFD_CROS_EC_I2C=m @@ -3000,6 +3028,7 @@ CONFIG_MFD_SYSCON=y # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912 is not set # CONFIG_MFD_TPS65912_SPI is not set +CONFIG_MFD_TPS68470=y # CONFIG_MFD_TPS80031 is not set CONFIG_MFD_VEXPRESS_SYSREG=y CONFIG_MFD_VIPERBOARD=m @@ -3044,8 +3073,10 @@ CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_CORE_IPOIB=y CONFIG_MLX5_CORE=m # CONFIG_MLX5_EN_IPSEC is not set +CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set CONFIG_MLX5_INFINIBAND=m +CONFIG_MLX5_MPFS=y # CONFIG_MLX90614 is not set CONFIG_MLX_CPLD_PLATFORM=m CONFIG_MLXFW=m @@ -3068,7 +3099,6 @@ CONFIG_MMA7660=m # CONFIG_MMC35240 is not set CONFIG_MMC_ARMMMCI=m CONFIG_MMC_BCM2835=m -CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_CAVIUM_THUNDERX=m @@ -3083,7 +3113,7 @@ CONFIG_MMC_DW_ROCKCHIP=m CONFIG_MMC_MESON_GX=m # CONFIG_MMC_MTK is not set CONFIG_MMC_MVSDIO=m -CONFIG_MMC_QCOM_DML=m +CONFIG_MMC_QCOM_DML=y CONFIG_MMC_REALTEK_PCI=m CONFIG_MMC_REALTEK_USB=m CONFIG_MMC_RICOH_MMC=y @@ -3214,6 +3244,7 @@ CONFIG_MTD_MAP_BANK_WIDTH_4=y # CONFIG_MTD_NAND is not set # CONFIG_MTD_NAND_OMAP2 is not set # CONFIG_MTD_NAND_OXNAS is not set +CONFIG_MTD_NAND_PXA3xx=m CONFIG_MTD_OF_PARTS=m # CONFIG_MTD_ONENAND is not set # CONFIG_MTD_OOPS is not set @@ -3453,6 +3484,7 @@ CONFIG_NETLABEL=y CONFIG_NETLINK_DIAG=m CONFIG_NET_MPLS_GSO=m CONFIG_NET_NCSI=y +CONFIG_NET_NSH=m CONFIG_NET_NS=y CONFIG_NET_PACKET_ENGINE=y CONFIG_NET_PKTGEN=m @@ -3523,6 +3555,7 @@ CONFIG_NET_VENDOR_EMULEX=y # CONFIG_NET_VENDOR_FUJITSU is not set # CONFIG_NET_VENDOR_HISILICON is not set # CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_I825XX is not set CONFIG_NET_VENDOR_INTEL=y CONFIG_NET_VENDOR_MARVELL=y @@ -3684,6 +3717,7 @@ CONFIG_NFT_EXTHDR=m CONFIG_NFT_FIB_INET=m CONFIG_NFT_FIB_IPV4=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_HASH=m CONFIG_NFT_LIMIT=m @@ -3986,8 +4020,10 @@ CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PHY_CPCAP_USB is not set CONFIG_PHY_HI6220_USB=m CONFIG_PHYLIB=y +CONFIG_PHYLINK=m CONFIG_PHY_MESON8B_USB2=m # CONFIG_PHY_MESON_GXL_USB2 is not set +CONFIG_PHY_MVEBU_CP110_COMPHY=m CONFIG_PHY_MVEBU_SATA=y # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set @@ -4012,6 +4048,7 @@ CONFIG_PHY_SUN4I_USB=m CONFIG_PHY_TEGRA_XUSB=m # CONFIG_PHY_TUSB1210 is not set CONFIG_PHY_XGENE=y +# CONFIG_PI433 is not set # CONFIG_PID_IN_CONTEXTIDR is not set CONFIG_PID_NS=y CONFIG_PINCONF=y @@ -4040,7 +4077,10 @@ CONFIG_PINCTRL_MVEBU=y CONFIG_PINCTRL_QCOM_SPMI_PMIC=y # CONFIG_PINCTRL_QCOM_SSBI_PMIC is not set CONFIG_PINCTRL_QDF2XXX=y +CONFIG_PINCTRL_RK805=m CONFIG_PINCTRL_SINGLE=y +# CONFIG_PINCTRL_SPRD is not set +# CONFIG_PINCTRL_SPRD_SC9860 is not set # CONFIG_PINCTRL_SUNRISEPOINT is not set # CONFIG_PINCTRL_SX150X is not set CONFIG_PINCTRL=y @@ -4165,6 +4205,7 @@ CONFIG_QCOM_COINCELL=m CONFIG_QCOM_EMAC=m # CONFIG_QCOM_FALKOR_ERRATUM_1003 is not set CONFIG_QCOM_FALKOR_ERRATUM_1009=y +# CONFIG_QCOM_GLINK_SSR is not set CONFIG_QCOM_GSBI=y CONFIG_QCOM_HIDMA=m CONFIG_QCOM_HIDMA_MGMT=m @@ -4216,6 +4257,7 @@ CONFIG_R8169=m # CONFIG_R8188EU is not set CONFIG_R8712U=m CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162) +CONFIG_R8822BE=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_AZTECH=m CONFIG_RADIO_CADET=m @@ -4291,6 +4333,7 @@ CONFIG_REGULATOR_ACT8865=m # CONFIG_REGULATOR_AD5398 is not set # CONFIG_REGULATOR_ANATOP is not set CONFIG_REGULATOR_AXP20X=m +CONFIG_REGULATOR_BD9571MWV=m # CONFIG_REGULATOR_DA9210 is not set # CONFIG_REGULATOR_DA9211 is not set # CONFIG_REGULATOR_DEBUG is not set @@ -4345,9 +4388,11 @@ CONFIG_RELAY=y # CONFIG_RELOCATABLE_TEST is not set CONFIG_RELOCATABLE=y CONFIG_REMOTEPROC=m +CONFIG_RESET_ATTACK_MITIGATION=y CONFIG_RESET_CONTROLLER=y CONFIG_RESET_GPIO=y CONFIG_RESET_HISI=y +# CONFIG_RESET_HSDK_V1 is not set # CONFIG_RESET_TI_SCI is not set # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RFD_FTL is not set @@ -4368,6 +4413,7 @@ CONFIG_RMI4_F55=y CONFIG_RMI4_I2C=m CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m +# CONFIG_RMNET is not set CONFIG_ROCKCHIP_ANALOGIX_DP=y CONFIG_ROCKCHIP_CDN_DP=y CONFIG_ROCKCHIP_DW_HDMI=y @@ -4377,6 +4423,7 @@ CONFIG_ROCKCHIP_INNO_HDMI=y CONFIG_ROCKCHIP_IODOMAIN=m CONFIG_ROCKCHIP_IOMMU=y CONFIG_ROCKCHIP_MBOX=y +CONFIG_ROCKCHIP_PHY=m CONFIG_ROCKCHIP_PM_DOMAINS=y CONFIG_ROCKCHIP_SARADC=m CONFIG_ROCKCHIP_THERMAL=m @@ -4388,6 +4435,7 @@ CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPMSG_CHAR is not set CONFIG_RPMSG=m CONFIG_RPMSG_QCOM_GLINK_RPM=m +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set CONFIG_RPMSG_QCOM_SMD=m CONFIG_RPR0521=m CONFIG_RSI_91X=m @@ -4763,6 +4811,7 @@ CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m +# CONFIG_SENSORS_IBM_CFFPS is not set CONFIG_SENSORS_IBMPEX=m CONFIG_SENSORS_IIO_HWMON=m CONFIG_SENSORS_INA209=m @@ -4853,6 +4902,7 @@ CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_TPS40422=m +CONFIG_SENSORS_TPS53679=m CONFIG_SENSORS_TSL2550=m # CONFIG_SENSORS_TSL2563 is not set CONFIG_SENSORS_UCD9000=m @@ -4937,6 +4987,7 @@ CONFIG_SERIO_AMBAKMI=m # CONFIG_SERIO_APBPS2 is not set CONFIG_SERIO_ARC_PS2=m # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_GPIO_PS2 is not set CONFIG_SERIO_I8042=y CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_OLPC_APSP is not set @@ -4950,6 +5001,7 @@ CONFIG_SERIO=y CONFIG_SFC_FALCON=m CONFIG_SFC_FALCON_MTD=y # CONFIG_SFC is not set +CONFIG_SFP=m # CONFIG_SGI_IOC4 is not set CONFIG_SGI_PARTITION=y CONFIG_SH_ETH=m @@ -4959,7 +5011,7 @@ CONFIG_SH_ETH=m # CONFIG_SIGMA is not set CONFIG_SIGMATEL_FIR=m CONFIG_SIGNED_PE_FILE_VERIFICATION=y -CONFIG_SIMPLE_PM_BUS=y +# CONFIG_SIMPLE_PM_BUS is not set CONFIG_SIS190=m CONFIG_SIS900=m # CONFIG_SKFP is not set @@ -4968,6 +5020,7 @@ CONFIG_SKGE_GENESIS=y CONFIG_SKGE=m # CONFIG_SKY2_DEBUG is not set CONFIG_SKY2=m +CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLICOSS is not set @@ -5013,7 +5066,7 @@ CONFIG_SND_AUDIO_GRAPH_CARD=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -CONFIG_SND_BCD2000=m +# CONFIG_SND_BCD2000 is not set CONFIG_SND_BCM2835_SOC_I2S=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m @@ -5077,7 +5130,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=0 CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_HDA_RECONFIG=y @@ -5169,6 +5222,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set CONFIG_SND_SOC_DIO2125=m @@ -5235,6 +5289,12 @@ CONFIG_SND_SOC_SPDIF=m # CONFIG_SND_SOC_TAS5086 is not set # CONFIG_SND_SOC_TAS571X is not set # CONFIG_SND_SOC_TAS5720 is not set +CONFIG_SND_SOC_TEGRA20_AC97=m +CONFIG_SND_SOC_TEGRA20_DAS=m +CONFIG_SND_SOC_TEGRA20_I2S=m +CONFIG_SND_SOC_TEGRA20_SPDIF=m +CONFIG_SND_SOC_TEGRA30_AHUB=m +CONFIG_SND_SOC_TEGRA30_I2S=m # CONFIG_SND_SOC_TEGRA_ALC5632 is not set CONFIG_SND_SOC_TEGRA=m CONFIG_SND_SOC_TEGRA_MAX98090=m @@ -5254,6 +5314,7 @@ CONFIG_SND_SOC_TPA6130A2=m CONFIG_SND_SOC_TS3A227E=m # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set +CONFIG_SND_SOC_WM8524=m # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set @@ -5379,6 +5440,7 @@ CONFIG_SQUASHFS=m CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_ZSTD=y CONFIG_SRAM=y # CONFIG_SRF04 is not set # CONFIG_SRF08 is not set @@ -5412,6 +5474,7 @@ CONFIG_STMMAC_ETH=m CONFIG_STMMAC_PLATFORM=m # CONFIG_STM_SOURCE_CONSOLE is not set CONFIG_STRICT_DEVMEM=y +# CONFIG_STRING_SELFTEST is not set CONFIG_STRIP_ASM_SYMS=y # CONFIG_STRIP is not set CONFIG_STUB_CLK_HI6220=y @@ -5598,6 +5661,8 @@ CONFIG_TIGON3=m # CONFIG_TIMER_STATS is not set CONFIG_TINYDRM_MI0283QT=m CONFIG_TINYDRM_MIPI_DBI=m +# CONFIG_TINYDRM_REPAPER is not set +# CONFIG_TINYDRM_ST7586 is not set CONFIG_TIPC=m # CONFIG_TIPC_MEDIA_IB is not set CONFIG_TIPC_MEDIA_UDP=y @@ -6220,6 +6285,7 @@ CONFIG_VIDEO_HEXIUM_ORION=m CONFIG_VIDEO_IVTV=m # CONFIG_VIDEO_M5MOLS is not set # CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set +CONFIG_VIDEO_MESON_AO_CEC=m CONFIG_VIDEO_MEYE=m CONFIG_VIDEO_MXB=m CONFIG_VIDEO_NOON010PC30=m @@ -6228,6 +6294,7 @@ CONFIG_VIDEO_NOON010PC30=m CONFIG_VIDEO_PVRUSB2_DVB=y CONFIG_VIDEO_PVRUSB2=m CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_QCOM_CAMSS=m CONFIG_VIDEO_QCOM_VENUS=m CONFIG_VIDEO_SAA6588=m CONFIG_VIDEO_SAA7134_ALSA=m @@ -6289,6 +6356,7 @@ CONFIG_VLAN_8021Q_GVRP=y CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_MVRP=y CONFIG_VLSI_FIR=m +CONFIG_VMAP_STACK=y # CONFIG_VME_BUS is not set # CONFIG_VMXNET3 is not set CONFIG_VORTEX=m @@ -6325,6 +6393,7 @@ CONFIG_W1_SLAVE_DS2438=m CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS2805=m CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_THERM=m @@ -6344,6 +6413,7 @@ CONFIG_WATCHDOG=y CONFIG_WCN36XX=m CONFIG_WDAT_WDT=m CONFIG_WDTPCI=m +CONFIG_WIL6210_DEBUGFS=y CONFIG_WIL6210_ISR_COR=y CONFIG_WIL6210=m # CONFIG_WIL6210_TRACING is not set @@ -6438,6 +6508,7 @@ CONFIG_ZLIB_DEFLATE=y CONFIG_ZLIB_INFLATE=y # CONFIG_ZPA2326 is not set CONFIG_ZRAM=m +# CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y CONFIG_ZSWAP=y diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug.config index 5347087c6..4656caba8 100644 --- a/kernel-armv7hl-debug.config +++ b/kernel-armv7hl-debug.config @@ -156,7 +156,9 @@ CONFIG_AK8975=m CONFIG_ALI_FIR=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y # CONFIG_ALTERA_MBOX is not set +CONFIG_ALTERA_MSGDMA=m CONFIG_ALTERA_STAPL=m CONFIG_ALTERA_TSE=m CONFIG_ALX=m @@ -361,6 +363,7 @@ CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m CONFIG_ATH10K_SDIO=m # CONFIG_ATH10K_TRACING is not set +CONFIG_ATH10K_USB=m CONFIG_ATH5K_DEBUG=y CONFIG_ATH5K=m # CONFIG_ATH5K_TRACER is not set @@ -500,6 +503,7 @@ CONFIG_BATMAN_ADV_MCAST=y CONFIG_BATMAN_ADV_NC=y CONFIG_BATTERY_AXP20X=m # CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM is not set +CONFIG_BATTERY_BQ27XXX_HDQ=m CONFIG_BATTERY_BQ27XXX_I2C=m CONFIG_BATTERY_BQ27XXX=m CONFIG_BATTERY_DA9052=m @@ -511,6 +515,7 @@ CONFIG_BATTERY_DA9052=m # CONFIG_BATTERY_LEGO_EV3 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set +# CONFIG_BATTERY_MAX1721X is not set CONFIG_BATTERY_RX51=m CONFIG_BATTERY_SBS=m CONFIG_BATTERY_TWL4030_MADC=m @@ -560,7 +565,6 @@ CONFIG_BINFMT_MISC=m CONFIG_BINFMT_SCRIPT=y CONFIG_BLK_CGROUP=y # CONFIG_BLK_CMDLINE_PARSER is not set -CONFIG_BLK_CPQ_CISS_DA=m CONFIG_BLK_DEBUG_FS=y # CONFIG_BLK_DEV_3W_XXXX_RAID is not set CONFIG_BLK_DEV_BSGLIB=y @@ -620,6 +624,7 @@ CONFIG_BNX2=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y CONFIG_BNXT_DCB=y +CONFIG_BNXT_FLOWER_OFFLOAD=y CONFIG_BNXT=m CONFIG_BNXT_SRIOV=y CONFIG_BONDING=m @@ -630,6 +635,7 @@ CONFIG_BONDING=m CONFIG_BOOT_PRINTK_DELAY=y CONFIG_BOUNCE=y CONFIG_BPF_JIT=y +CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m # CONFIG_BRCMDBG is not set @@ -799,11 +805,13 @@ CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set # CONFIG_CC10001_ADC is not set CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_CCS811 is not set # CONFIG_CC_STACKPROTECTOR is not set CONFIG_CC_STACKPROTECTOR_NONE=y CONFIG_CDROM_PKTCDVD_BUFFERS=8 CONFIG_CDROM_PKTCDVD=m # CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEC_PIN=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_CEPH_FSCACHE=y CONFIG_CEPH_FS=m @@ -886,8 +894,8 @@ CONFIG_CIFS_STATS=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_XATTR=y -CONFIG_CISS_SCSI_TAPE=y CONFIG_CLEANCACHE=y +# CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set CONFIG_CLK_SP810=y CONFIG_CLKSRC_VERSATILE=y @@ -1053,7 +1061,9 @@ CONFIG_CRYPTO_DEV_QCE=m CONFIG_CRYPTO_DEV_ROCKCHIP=m CONFIG_CRYPTO_DEV_S5P=m CONFIG_CRYPTO_DEV_SAHARA=m +# CONFIG_CRYPTO_DEV_SP_CCP is not set CONFIG_CRYPTO_DEV_SUN4I_SS=m +CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DH=y CONFIG_CRYPTO_DRBG_CTR=y @@ -1100,7 +1110,7 @@ CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_SHA1_ARM_NEON=y CONFIG_CRYPTO_SHA1_ARM=y CONFIG_CRYPTO_SHA1=y -CONFIG_CRYPTO_SHA256_ARM64=m +CONFIG_CRYPTO_SHA256_ARM64=y CONFIG_CRYPTO_SHA256_ARM=y CONFIG_CRYPTO_SHA256=y # CONFIG_CRYPTO_SHA2_ARM_CE is not set @@ -1296,7 +1306,7 @@ CONFIG_DONGLE=y CONFIG_DOVE_THERMAL=m CONFIG_DP83640_PHY=m CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m +# CONFIG_DP83867_PHY is not set # CONFIG_DPM_WATCHDOG is not set # revisit this in debug CONFIG_DPOT_DAC=m CONFIG_DRAGONRISE_FF=y @@ -1319,6 +1329,7 @@ CONFIG_DRM_CIRRUS_QEMU=m CONFIG_DRM_DP_AUX_CHARDEV=y CONFIG_DRM_DUMB_VGA_DAC=m CONFIG_DRM_DW_HDMI_AHB_AUDIO=m +CONFIG_DRM_DW_HDMI_CEC=m CONFIG_DRM_DW_HDMI_I2S_AUDIO=m CONFIG_DRM_DW_HDMI=m CONFIG_DRM_ETNAVIV=m @@ -1425,6 +1436,7 @@ CONFIG_DRM_SIL_SII8620=m CONFIG_DRM_STI=m # CONFIG_DRM_STM is not set CONFIG_DRM_SUN4I_BACKEND=m +# CONFIG_DRM_SUN4I_HDMI_CEC is not set CONFIG_DRM_SUN4I_HDMI=m CONFIG_DRM_SUN4I=m CONFIG_DRM_SUN8I_MIXER=m @@ -1439,6 +1451,7 @@ CONFIG_DRM_TI_TFP410=m CONFIG_DRM_TOSHIBA_TC358767=m CONFIG_DRM_UDL=m # CONFIG_DRM_VBOXVIDEO is not set +CONFIG_DRM_VC4_HDMI_CEC=y CONFIG_DRM_VC4=m CONFIG_DRM_VGEM=m CONFIG_DRM_VIA=m @@ -1470,6 +1483,7 @@ CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_CORE=m # CONFIG_DVB_CXD2099 is not set CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set CONFIG_DVB_DM1105=m CONFIG_DVB_DYNAMIC_MINORS=y @@ -1624,6 +1638,7 @@ CONFIG_EXTCON_PALMAS=m CONFIG_EXTCON_QCOM_SPMI_MISC=m # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set +CONFIG_EXTCON_USBC_CROS_EC=m CONFIG_EXTCON_USB_GPIO=m CONFIG_EXTCON=y CONFIG_EXTRA_FIRMWARE="" @@ -1846,6 +1861,7 @@ CONFIG_GPIO_74X164=m # CONFIG_GPIO_ALTERA is not set # CONFIG_GPIO_AMDPT is not set CONFIG_GPIO_AXP209=m +CONFIG_GPIO_BD9571MWV=m # CONFIG_GPIO_BT8XX is not set CONFIG_GPIO_DA9052=m CONFIG_GPIO_DA9055=m @@ -1887,6 +1903,7 @@ CONFIG_GPIO_TPS65218=m CONFIG_GPIO_TPS6586X=y CONFIG_GPIO_TPS65910=y CONFIG_GPIO_TPS65912=m +CONFIG_GPIO_TPS68470=y CONFIG_GPIO_TS4800=m # CONFIG_GPIO_TS4900 is not set # CONFIG_GPIO_TS5500 is not set @@ -2098,6 +2115,7 @@ CONFIG_HWMON=y CONFIG_HW_PERF_EVENTS=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_BCM2835=m +CONFIG_HW_RANDOM_IMX_RNGC=m CONFIG_HW_RANDOM_MESON=m CONFIG_HW_RANDOM_MSM=m CONFIG_HW_RANDOM_MXC_RNGA=m @@ -2137,10 +2155,10 @@ CONFIG_I2C_CROS_EC_TUNNEL=m # CONFIG_I2C_DEBUG_BUS is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEMUX_PINCTRL is not set -CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_DESIGNWARE_CORE=y # CONFIG_I2C_DESIGNWARE is not set CONFIG_I2C_DESIGNWARE_PCI=m -CONFIG_I2C_DESIGNWARE_PLATFORM=m +CONFIG_I2C_DESIGNWARE_PLATFORM=y CONFIG_I2C_DESIGNWARE_SLAVE=y CONFIG_I2C_DIOLAN_U2C=m # CONFIG_I2C_EG20T is not set @@ -2275,6 +2293,7 @@ CONFIG_IMX7_PM_DOMAINS=y CONFIG_IMX_DMA=m CONFIG_IMX_GPCV2=y CONFIG_IMX_IPUV3_CORE=m +CONFIG_IMX_REMOTEPROC=m CONFIG_IMX_SDMA=m CONFIG_IMX_THERMAL=m CONFIG_IMX_WEIM=y @@ -2304,6 +2323,7 @@ CONFIG_INET=y # CONFIG_INFINIBAND_CXGB3_DEBUG is not set # CONFIG_INFINIBAND_CXGB3 is not set # CONFIG_INFINIBAND_CXGB4 is not set +# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set # CONFIG_INFINIBAND_I40IW is not set # CONFIG_INFINIBAND_IPOIB_CM is not set # CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set @@ -2387,8 +2407,10 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_PWM_BEEPER=m +# CONFIG_INPUT_PWM_VIBRA is not set # CONFIG_INPUT_REGULATOR_HAPTIC is not set CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_RK805_PWRKEY=m CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_INPUT_SPARSEKMAP=m CONFIG_INPUT_TABLET=y @@ -2575,6 +2597,7 @@ CONFIG_IRDA=m CONFIG_IR_ENE=m CONFIG_IR_FINTEK=m CONFIG_IR_GPIO_CIR=m +CONFIG_IR_GPIO_TX=m CONFIG_IR_HIX5HD2=m CONFIG_IR_IGORPLUGUSB=m CONFIG_IR_IGUANA=m @@ -2590,6 +2613,7 @@ CONFIG_IR_MESON=m CONFIG_IR_NEC_DECODER=m CONFIG_IRNET=m CONFIG_IR_NUVOTON=m +CONFIG_IR_PWM_TX=m CONFIG_IRQ_CROSSBAR=y # CONFIG_IRQ_DOMAIN_DEBUG is not set # CONFIG_IRQSOFF_TRACER is not set @@ -2843,6 +2867,7 @@ CONFIG_LCD_VGG2432A4=m # CONFIG_LDM_DEBUG is not set CONFIG_LDM_PARTITION=y # CONFIG_LEDS_AAT1290 is not set +CONFIG_LEDS_AS3645A=m # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set # CONFIG_LEDS_BD2802 is not set @@ -2946,6 +2971,7 @@ CONFIG_LMP91000=m CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_LOCKD=m +# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set # CONFIG_LOCK_DOWN_KERNEL is not set CONFIG_LOCKD_V4=y # CONFIG_LOCK_STAT is not set @@ -2970,6 +2996,7 @@ CONFIG_LPFC_NVME_INITIATOR=y CONFIG_LPFC_NVME_TARGET=y CONFIG_LSI_ET1011C_PHY=m CONFIG_LSM_MMAP_MIN_ADDR=32768 +# CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set # CONFIG_LTC2497 is not set # CONFIG_LTC2632 is not set @@ -3071,6 +3098,7 @@ CONFIG_MDIO_BUS_MUX=m CONFIG_MDIO_BUS_MUX_MMIOREG=m CONFIG_MDIO_GPIO=m # CONFIG_MDIO_HISI_FEMAC is not set +CONFIG_MDIO_I2C=m # CONFIG_MDIO_OCTEON is not set CONFIG_MDIO_SUN4I=m # CONFIG_MDIO_THUNDER is not set @@ -3124,6 +3152,7 @@ CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MESON_EFUSE=m # CONFIG_MESON_GXBB_WATCHDOG is not set # CONFIG_MESON_GXL_PHY is not set +CONFIG_MESON_GX_SOCINFO=y CONFIG_MESON_SARADC=m CONFIG_MESON_SM=y CONFIG_MESON_WATCHDOG=m @@ -3146,6 +3175,7 @@ CONFIG_MFD_AXP20X_I2C=y CONFIG_MFD_AXP20X_RSB=m CONFIG_MFD_AXP20X=y # CONFIG_MFD_BCM590XX is not set +CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set CONFIG_MFD_CROS_EC_I2C=m @@ -3221,6 +3251,7 @@ CONFIG_MFD_TPS65910=y CONFIG_MFD_TPS65912_I2C=y CONFIG_MFD_TPS65912_SPI=y CONFIG_MFD_TPS65912=y +CONFIG_MFD_TPS68470=y CONFIG_MFD_TPS80031=y CONFIG_MFD_VEXPRESS_SYSREG=y CONFIG_MFD_VIPERBOARD=m @@ -3266,8 +3297,10 @@ CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_CORE_IPOIB=y CONFIG_MLX5_CORE=m # CONFIG_MLX5_EN_IPSEC is not set +CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set # CONFIG_MLX5_INFINIBAND is not set +CONFIG_MLX5_MPFS=y # CONFIG_MLX90614 is not set CONFIG_MLX_CPLD_PLATFORM=m CONFIG_MLXFW=m @@ -3290,7 +3323,6 @@ CONFIG_MMA8452=m # CONFIG_MMC35240 is not set CONFIG_MMC_ARMMMCI=m CONFIG_MMC_BCM2835=m -CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_CB710=m @@ -3307,7 +3339,7 @@ CONFIG_MMC_MVSDIO=m CONFIG_MMC_MXC=m CONFIG_MMC_OMAP_HS=m CONFIG_MMC_OMAP=m -CONFIG_MMC_QCOM_DML=m +CONFIG_MMC_QCOM_DML=y CONFIG_MMC_REALTEK_PCI=m CONFIG_MMC_REALTEK_USB=m CONFIG_MMC_RICOH_MMC=y @@ -3719,6 +3751,7 @@ CONFIG_NETLABEL=y CONFIG_NETLINK_DIAG=m CONFIG_NET_MPLS_GSO=m CONFIG_NET_NCSI=y +CONFIG_NET_NSH=m CONFIG_NET_NS=y CONFIG_NET_PACKET_ENGINE=y CONFIG_NET_PKTGEN=m @@ -3790,6 +3823,7 @@ CONFIG_NET_VENDOR_FREESCALE=y # CONFIG_NET_VENDOR_FUJITSU is not set # CONFIG_NET_VENDOR_HISILICON is not set # CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_I825XX is not set CONFIG_NET_VENDOR_INTEL=y CONFIG_NET_VENDOR_MARVELL=y @@ -3951,6 +3985,7 @@ CONFIG_NFT_EXTHDR=m CONFIG_NFT_FIB_INET=m CONFIG_NFT_FIB_IPV4=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_HASH=m CONFIG_NFT_LIMIT=m @@ -4299,10 +4334,12 @@ CONFIG_PHY_EXYNOS_DP_VIDEO=m CONFIG_PHY_EXYNOS_MIPI_VIDEO=m CONFIG_PHY_EXYNOS_PCIE=y CONFIG_PHYLIB=y +CONFIG_PHYLINK=m CONFIG_PHY_MESON8B_USB2=m # CONFIG_PHY_MESON_GXL_USB2 is not set CONFIG_PHY_MIPHY28LP=m # CONFIG_PHY_MIPHY365X is not set +# CONFIG_PHY_MVEBU_CP110_COMPHY is not set CONFIG_PHY_MVEBU_SATA=y # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set @@ -4328,6 +4365,7 @@ CONFIG_PHY_SUN4I_USB=m CONFIG_PHY_SUN9I_USB=m CONFIG_PHY_TEGRA_XUSB=m # CONFIG_PHY_TUSB1210 is not set +# CONFIG_PI433 is not set # CONFIG_PID_IN_CONTEXTIDR is not set CONFIG_PID_NS=y CONFIG_PINCONF=y @@ -4359,8 +4397,11 @@ CONFIG_PINCTRL_MVEBU=y CONFIG_PINCTRL_PALMAS=y CONFIG_PINCTRL_QCOM_SPMI_PMIC=m CONFIG_PINCTRL_QCOM_SSBI_PMIC=m +CONFIG_PINCTRL_RK805=m CONFIG_PINCTRL_SAMSUNG=y CONFIG_PINCTRL_SINGLE=y +# CONFIG_PINCTRL_SPRD is not set +# CONFIG_PINCTRL_SPRD_SC9860 is not set # CONFIG_PINCTRL_SUNRISEPOINT is not set # CONFIG_PINCTRL_SX150X is not set CONFIG_PINCTRL=y @@ -4504,6 +4545,7 @@ CONFIG_QCOM_CLK_SMD_RPM=m CONFIG_QCOM_COINCELL=m # CONFIG_QCOM_EBI2 is not set # CONFIG_QCOM_EMAC is not set +# CONFIG_QCOM_GLINK_SSR is not set CONFIG_QCOM_GSBI=m # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set @@ -4553,6 +4595,7 @@ CONFIG_R8169=m CONFIG_R8188EU=m CONFIG_R8712U=m CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162) +CONFIG_R8822BE=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_AZTECH=m CONFIG_RADIO_CADET=m @@ -4632,6 +4675,7 @@ CONFIG_REGULATOR_AD5398=m CONFIG_REGULATOR_ANATOP=m CONFIG_REGULATOR_AS3722=m CONFIG_REGULATOR_AXP20X=m +CONFIG_REGULATOR_BD9571MWV=m CONFIG_REGULATOR_DA9052=m CONFIG_REGULATOR_DA9055=m CONFIG_REGULATOR_DA9210=m @@ -4704,8 +4748,10 @@ CONFIG_REISERFS_PROC_INFO=y CONFIG_RELAY=y # CONFIG_RELOCATABLE_TEST is not set CONFIG_REMOTEPROC=m +CONFIG_RESET_ATTACK_MITIGATION=y CONFIG_RESET_CONTROLLER=y CONFIG_RESET_GPIO=y +# CONFIG_RESET_HSDK_V1 is not set # CONFIG_RESET_TI_SCI is not set # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RFD_FTL is not set @@ -4726,6 +4772,7 @@ CONFIG_RMI4_F55=y CONFIG_RMI4_I2C=m CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m +# CONFIG_RMNET is not set CONFIG_ROCKCHIP_ANALOGIX_DP=y CONFIG_ROCKCHIP_CDN_DP=y CONFIG_ROCKCHIP_DW_HDMI=y @@ -4735,6 +4782,7 @@ CONFIG_ROCKCHIP_INNO_HDMI=y CONFIG_ROCKCHIP_IODOMAIN=m CONFIG_ROCKCHIP_IOMMU=y CONFIG_ROCKCHIP_MBOX=y +CONFIG_ROCKCHIP_PHY=m CONFIG_ROCKCHIP_PM_DOMAINS=y CONFIG_ROCKCHIP_SARADC=m CONFIG_ROCKCHIP_THERMAL=m @@ -4746,6 +4794,7 @@ CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPMSG_CHAR is not set CONFIG_RPMSG=m CONFIG_RPMSG_QCOM_GLINK_RPM=m +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set CONFIG_RPMSG_QCOM_SMD=m CONFIG_RPR0521=m CONFIG_RSI_91X=m @@ -5142,6 +5191,7 @@ CONFIG_SENSORS_GPIO_FAN=m # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m +# CONFIG_SENSORS_IBM_CFFPS is not set CONFIG_SENSORS_IBMPEX=m CONFIG_SENSORS_IIO_HWMON=m CONFIG_SENSORS_INA209=m @@ -5233,6 +5283,7 @@ CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_TPS40422=m +CONFIG_SENSORS_TPS53679=m CONFIG_SENSORS_TSL2550=m # CONFIG_SENSORS_TSL2563 is not set CONFIG_SENSORS_TWL4030_MADC=m @@ -5336,6 +5387,7 @@ CONFIG_SERIO_AMBAKMI=m # CONFIG_SERIO_APBPS2 is not set CONFIG_SERIO_ARC_PS2=m # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_GPIO_PS2 is not set CONFIG_SERIO_I8042=y CONFIG_SERIO_LIBPS2=y CONFIG_SERIO_NVEC_PS2=y @@ -5350,6 +5402,7 @@ CONFIG_SERIO=y CONFIG_SFC_FALCON=m CONFIG_SFC_FALCON_MTD=y # CONFIG_SFC is not set +CONFIG_SFP=m # CONFIG_SGI_IOC4 is not set CONFIG_SGI_PARTITION=y CONFIG_SH_ETH=m @@ -5359,7 +5412,7 @@ CONFIG_SI7020=m # CONFIG_SIGMA is not set CONFIG_SIGMATEL_FIR=m CONFIG_SIGNED_PE_FILE_VERIFICATION=y -CONFIG_SIMPLE_PM_BUS=y +# CONFIG_SIMPLE_PM_BUS is not set CONFIG_SIS190=m CONFIG_SIS900=m # CONFIG_SKFP is not set @@ -5368,6 +5421,7 @@ CONFIG_SKGE_GENESIS=y CONFIG_SKGE=m # CONFIG_SKY2_DEBUG is not set CONFIG_SKY2=m +CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLICOSS is not set @@ -5417,7 +5471,7 @@ CONFIG_SND_AUDIO_GRAPH_CARD=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -CONFIG_SND_BCD2000=m +# CONFIG_SND_BCD2000 is not set CONFIG_SND_BCM2835_SOC_I2S=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m @@ -5486,7 +5540,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=0 CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_HDA_RECONFIG=y @@ -5599,6 +5653,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set CONFIG_SND_SOC_CS42XX8_I2C=m +CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set CONFIG_SND_SOC_DIO2125=m @@ -5714,6 +5769,7 @@ CONFIG_SND_SOC_TWL4030=m CONFIG_SND_SOC_TWL6040=m # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set +CONFIG_SND_SOC_WM8524=m # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set @@ -5873,6 +5929,7 @@ CONFIG_SQUASHFS=m CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_ZSTD=y CONFIG_SRAM=y # CONFIG_SRF04 is not set # CONFIG_SRF08 is not set @@ -5914,11 +5971,13 @@ CONFIG_ST_REMOTEPROC=m CONFIG_STRICT_DEVMEM=y CONFIG_STRICT_KERNEL_RWX=y CONFIG_STRICT_MODULE_RWX=y +# CONFIG_STRING_SELFTEST is not set CONFIG_STRIP_ASM_SYMS=y # CONFIG_STRIP is not set CONFIG_ST_THERMAL=m CONFIG_ST_THERMAL_MEMMAP=m # CONFIG_ST_THERMAL_SYSCFG is not set +CONFIG_SUN4I_A10_CCU=y CONFIG_SUN4I_EMAC=m CONFIG_SUN4I_GPADC=m CONFIG_SUN5I_CCU=y @@ -5928,6 +5987,7 @@ CONFIG_SUN8I_A33_CCU=y CONFIG_SUN8I_A83T_CCU=y CONFIG_SUN8I_DE2_CCU=y CONFIG_SUN8I_H3_CCU=y +CONFIG_SUN8I_R40_CCU=y CONFIG_SUN8I_R_CCU=y CONFIG_SUN8I_V3S_CCU=y CONFIG_SUN9I_A80_CCU=y @@ -6114,6 +6174,8 @@ CONFIG_TIGON3=m # CONFIG_TIMER_STATS is not set CONFIG_TINYDRM_MI0283QT=m CONFIG_TINYDRM_MIPI_DBI=m +# CONFIG_TINYDRM_REPAPER is not set +# CONFIG_TINYDRM_ST7586 is not set CONFIG_TIPC=m # CONFIG_TIPC_MEDIA_IB is not set CONFIG_TIPC_MEDIA_UDP=y @@ -6780,6 +6842,7 @@ CONFIG_VIDEO_IMX_VDOA=m CONFIG_VIDEO_IVTV=m # CONFIG_VIDEO_M5MOLS is not set # CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set +CONFIG_VIDEO_MESON_AO_CEC=m CONFIG_VIDEO_MEYE=m CONFIG_VIDEO_MUX=m CONFIG_VIDEO_MXB=m @@ -6793,6 +6856,7 @@ CONFIG_VIDEO_OMAP3=m CONFIG_VIDEO_PVRUSB2_DVB=y CONFIG_VIDEO_PVRUSB2=m CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_QCOM_CAMSS=m CONFIG_VIDEO_QCOM_VENUS=m CONFIG_VIDEO_S5P_FIMC=m CONFIG_VIDEO_S5P_MIPI_CSIS=m @@ -6907,6 +6971,7 @@ CONFIG_W1_SLAVE_DS2438=m CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS2805=m CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_THERM=m @@ -6926,6 +6991,7 @@ CONFIG_WATCHDOG=y CONFIG_WCN36XX=m CONFIG_WDAT_WDT=m CONFIG_WDTPCI=m +CONFIG_WIL6210_DEBUGFS=y CONFIG_WIL6210_ISR_COR=y CONFIG_WIL6210=m # CONFIG_WIL6210_TRACING is not set @@ -7024,6 +7090,7 @@ CONFIG_ZLIB_DEFLATE=y CONFIG_ZLIB_INFLATE=y # CONFIG_ZPA2326 is not set CONFIG_ZRAM=m +# CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y CONFIG_ZSWAP=y diff --git a/kernel-armv7hl-lpae-debug.config b/kernel-armv7hl-lpae-debug.config index a698cae79..d1dd32b16 100644 --- a/kernel-armv7hl-lpae-debug.config +++ b/kernel-armv7hl-lpae-debug.config @@ -154,7 +154,9 @@ CONFIG_AK8975=m CONFIG_ALI_FIR=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y # CONFIG_ALTERA_MBOX is not set +CONFIG_ALTERA_MSGDMA=m CONFIG_ALTERA_STAPL=m CONFIG_ALTERA_TSE=m CONFIG_ALX=m @@ -347,6 +349,7 @@ CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m CONFIG_ATH10K_SDIO=m # CONFIG_ATH10K_TRACING is not set +CONFIG_ATH10K_USB=m CONFIG_ATH5K_DEBUG=y CONFIG_ATH5K=m # CONFIG_ATH5K_TRACER is not set @@ -490,6 +493,7 @@ CONFIG_BATTERY_AXP20X=m # CONFIG_BATTERY_LEGO_EV3 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set +# CONFIG_BATTERY_MAX1721X is not set CONFIG_BATTERY_SBS=m CONFIG_BAYCOM_EPP=m CONFIG_BAYCOM_PAR=m @@ -537,7 +541,6 @@ CONFIG_BINFMT_MISC=m CONFIG_BINFMT_SCRIPT=y CONFIG_BLK_CGROUP=y # CONFIG_BLK_CMDLINE_PARSER is not set -CONFIG_BLK_CPQ_CISS_DA=m CONFIG_BLK_DEBUG_FS=y # CONFIG_BLK_DEV_3W_XXXX_RAID is not set CONFIG_BLK_DEV_BSGLIB=y @@ -597,6 +600,7 @@ CONFIG_BNX2=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y CONFIG_BNXT_DCB=y +CONFIG_BNXT_FLOWER_OFFLOAD=y CONFIG_BNXT=m CONFIG_BNXT_SRIOV=y CONFIG_BONDING=m @@ -607,6 +611,7 @@ CONFIG_BONDING=m CONFIG_BOOT_PRINTK_DELAY=y CONFIG_BOUNCE=y CONFIG_BPF_JIT=y +CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m # CONFIG_BRCMDBG is not set @@ -775,11 +780,13 @@ CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set # CONFIG_CC10001_ADC is not set CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_CCS811 is not set # CONFIG_CC_STACKPROTECTOR is not set CONFIG_CC_STACKPROTECTOR_NONE=y CONFIG_CDROM_PKTCDVD_BUFFERS=8 CONFIG_CDROM_PKTCDVD=m # CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEC_PIN=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_CEPH_FSCACHE=y CONFIG_CEPH_FS=m @@ -859,8 +866,8 @@ CONFIG_CIFS_STATS=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_XATTR=y -CONFIG_CISS_SCSI_TAPE=y CONFIG_CLEANCACHE=y +# CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set CONFIG_CLK_SP810=y CONFIG_CLKSRC_VERSATILE=y @@ -1001,7 +1008,9 @@ CONFIG_CRYPTO_DEV_MV_CESA=m CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m CONFIG_CRYPTO_DEV_ROCKCHIP=m CONFIG_CRYPTO_DEV_S5P=m +# CONFIG_CRYPTO_DEV_SP_CCP is not set CONFIG_CRYPTO_DEV_SUN4I_SS=m +CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DH=y CONFIG_CRYPTO_DRBG_CTR=y @@ -1048,7 +1057,7 @@ CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_SHA1_ARM_NEON=y CONFIG_CRYPTO_SHA1_ARM=y CONFIG_CRYPTO_SHA1=y -CONFIG_CRYPTO_SHA256_ARM64=m +CONFIG_CRYPTO_SHA256_ARM64=y CONFIG_CRYPTO_SHA256_ARM=y CONFIG_CRYPTO_SHA256=y # CONFIG_CRYPTO_SHA2_ARM_CE is not set @@ -1242,7 +1251,7 @@ CONFIG_DONGLE=y CONFIG_DOVE_THERMAL=m CONFIG_DP83640_PHY=m CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m +# CONFIG_DP83867_PHY is not set # CONFIG_DPM_WATCHDOG is not set # revisit this in debug CONFIG_DPOT_DAC=m CONFIG_DRAGONRISE_FF=y @@ -1265,6 +1274,7 @@ CONFIG_DRM_CIRRUS_QEMU=m CONFIG_DRM_DP_AUX_CHARDEV=y CONFIG_DRM_DUMB_VGA_DAC=m CONFIG_DRM_DW_HDMI_AHB_AUDIO=m +CONFIG_DRM_DW_HDMI_CEC=m CONFIG_DRM_DW_HDMI_I2S_AUDIO=m CONFIG_DRM_DW_HDMI=m CONFIG_DRM_EXYNOS5433_DECON=y @@ -1340,6 +1350,7 @@ CONFIG_DRM_SIL_SII8620=m CONFIG_DRM_STI=m # CONFIG_DRM_STM is not set CONFIG_DRM_SUN4I_BACKEND=m +# CONFIG_DRM_SUN4I_HDMI_CEC is not set CONFIG_DRM_SUN4I_HDMI=m CONFIG_DRM_SUN4I=m CONFIG_DRM_SUN8I_MIXER=m @@ -1353,6 +1364,7 @@ CONFIG_DRM_TI_TFP410=m CONFIG_DRM_TOSHIBA_TC358767=m CONFIG_DRM_UDL=m # CONFIG_DRM_VBOXVIDEO is not set +CONFIG_DRM_VC4_HDMI_CEC=y CONFIG_DRM_VC4=m CONFIG_DRM_VGEM=m CONFIG_DRM_VIA=m @@ -1384,6 +1396,7 @@ CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_CORE=m # CONFIG_DVB_CXD2099 is not set CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set CONFIG_DVB_DM1105=m CONFIG_DVB_DYNAMIC_MINORS=y @@ -1534,6 +1547,7 @@ CONFIG_EXTCON_MAX8997=m # CONFIG_EXTCON_QCOM_SPMI_MISC is not set # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set +CONFIG_EXTCON_USBC_CROS_EC=m CONFIG_EXTCON_USB_GPIO=m CONFIG_EXTCON=y CONFIG_EXTRA_FIRMWARE="" @@ -1751,6 +1765,7 @@ CONFIG_GPIO_74X164=m # CONFIG_GPIO_ALTERA is not set # CONFIG_GPIO_AMDPT is not set CONFIG_GPIO_AXP209=m +CONFIG_GPIO_BD9571MWV=m # CONFIG_GPIO_BT8XX is not set CONFIG_GPIO_DAVINCI=y CONFIG_GPIO_DEVRES=y @@ -1786,6 +1801,7 @@ CONFIG_GPIO_TEGRA=y # CONFIG_GPIO_TPIC2810 is not set CONFIG_GPIO_TPS65910=y CONFIG_GPIO_TPS65912=m +CONFIG_GPIO_TPS68470=y # CONFIG_GPIO_TS4900 is not set # CONFIG_GPIO_TS5500 is not set CONFIG_GPIO_VIPERBOARD=m @@ -1995,6 +2011,7 @@ CONFIG_HWMON=y CONFIG_HW_PERF_EVENTS=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_BCM2835=m +CONFIG_HW_RANDOM_IMX_RNGC=m CONFIG_HW_RANDOM_MESON=m CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_TIMERIOMEM=m @@ -2029,10 +2046,10 @@ CONFIG_I2C_CROS_EC_TUNNEL=m # CONFIG_I2C_DEBUG_BUS is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEMUX_PINCTRL is not set -CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_DESIGNWARE_CORE=y # CONFIG_I2C_DESIGNWARE is not set CONFIG_I2C_DESIGNWARE_PCI=m -CONFIG_I2C_DESIGNWARE_PLATFORM=m +CONFIG_I2C_DESIGNWARE_PLATFORM=y CONFIG_I2C_DESIGNWARE_SLAVE=y CONFIG_I2C_DIOLAN_U2C=m # CONFIG_I2C_EG20T is not set @@ -2183,6 +2200,7 @@ CONFIG_INET=y # CONFIG_INFINIBAND_CXGB3_DEBUG is not set # CONFIG_INFINIBAND_CXGB3 is not set # CONFIG_INFINIBAND_CXGB4 is not set +# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set # CONFIG_INFINIBAND_I40IW is not set # CONFIG_INFINIBAND_IPOIB_CM is not set # CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set @@ -2261,8 +2279,10 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_PWM_BEEPER=m +# CONFIG_INPUT_PWM_VIBRA is not set # CONFIG_INPUT_REGULATOR_HAPTIC is not set CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_RK805_PWRKEY=m CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_INPUT_SPARSEKMAP=m CONFIG_INPUT_TABLET=y @@ -2446,6 +2466,7 @@ CONFIG_IRDA=m CONFIG_IR_ENE=m CONFIG_IR_FINTEK=m CONFIG_IR_GPIO_CIR=m +CONFIG_IR_GPIO_TX=m CONFIG_IR_HIX5HD2=m CONFIG_IR_IGORPLUGUSB=m CONFIG_IR_IGUANA=m @@ -2461,6 +2482,7 @@ CONFIG_IR_MESON=m CONFIG_IR_NEC_DECODER=m CONFIG_IRNET=m CONFIG_IR_NUVOTON=m +CONFIG_IR_PWM_TX=m CONFIG_IRQ_CROSSBAR=y # CONFIG_IRQ_DOMAIN_DEBUG is not set # CONFIG_IRQSOFF_TRACER is not set @@ -2710,6 +2732,7 @@ CONFIG_LCD_VGG2432A4=m # CONFIG_LDM_DEBUG is not set CONFIG_LDM_PARTITION=y # CONFIG_LEDS_AAT1290 is not set +CONFIG_LEDS_AS3645A=m # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set # CONFIG_LEDS_BD2802 is not set @@ -2810,6 +2833,7 @@ CONFIG_LMP91000=m CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_LOCKD=m +# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set # CONFIG_LOCK_DOWN_KERNEL is not set CONFIG_LOCKD_V4=y # CONFIG_LOCK_STAT is not set @@ -2834,6 +2858,7 @@ CONFIG_LPFC_NVME_INITIATOR=y CONFIG_LPFC_NVME_TARGET=y CONFIG_LSI_ET1011C_PHY=m CONFIG_LSM_MMAP_MIN_ADDR=32768 +# CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set # CONFIG_LTC2497 is not set # CONFIG_LTC2632 is not set @@ -2928,6 +2953,7 @@ CONFIG_MDIO_BUS_MUX=m CONFIG_MDIO_BUS_MUX_MMIOREG=m CONFIG_MDIO_GPIO=m # CONFIG_MDIO_HISI_FEMAC is not set +CONFIG_MDIO_I2C=m # CONFIG_MDIO_OCTEON is not set CONFIG_MDIO_SUN4I=m # CONFIG_MDIO_THUNDER is not set @@ -2979,6 +3005,7 @@ CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MESON_EFUSE=m # CONFIG_MESON_GXBB_WATCHDOG is not set # CONFIG_MESON_GXL_PHY is not set +CONFIG_MESON_GX_SOCINFO=y CONFIG_MESON_SARADC=m CONFIG_MESON_SM=y CONFIG_MESON_WATCHDOG=m @@ -3001,6 +3028,7 @@ CONFIG_MFD_AXP20X_I2C=y CONFIG_MFD_AXP20X_RSB=m CONFIG_MFD_AXP20X=y # CONFIG_MFD_BCM590XX is not set +CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set CONFIG_MFD_CROS_EC_I2C=m @@ -3073,6 +3101,7 @@ CONFIG_MFD_TPS65910=y CONFIG_MFD_TPS65912_I2C=y CONFIG_MFD_TPS65912_SPI=y CONFIG_MFD_TPS65912=y +CONFIG_MFD_TPS68470=y # CONFIG_MFD_TPS80031 is not set CONFIG_MFD_VEXPRESS_SYSREG=y CONFIG_MFD_VIPERBOARD=m @@ -3118,8 +3147,10 @@ CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_CORE_IPOIB=y CONFIG_MLX5_CORE=m # CONFIG_MLX5_EN_IPSEC is not set +CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set # CONFIG_MLX5_INFINIBAND is not set +CONFIG_MLX5_MPFS=y # CONFIG_MLX90614 is not set CONFIG_MLX_CPLD_PLATFORM=m CONFIG_MLXFW=m @@ -3142,7 +3173,6 @@ CONFIG_MMA8452=m # CONFIG_MMC35240 is not set CONFIG_MMC_ARMMMCI=m CONFIG_MMC_BCM2835=m -CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_CB710=m @@ -3157,7 +3187,6 @@ CONFIG_MMC_DW_ROCKCHIP=m # CONFIG_MMC_MTK is not set CONFIG_MMC_MVSDIO=m CONFIG_MMC_OMAP_HS=m -CONFIG_MMC_QCOM_DML=m CONFIG_MMC_REALTEK_PCI=m CONFIG_MMC_REALTEK_USB=m CONFIG_MMC_RICOH_MMC=y @@ -3546,6 +3575,7 @@ CONFIG_NETLABEL=y CONFIG_NETLINK_DIAG=m CONFIG_NET_MPLS_GSO=m CONFIG_NET_NCSI=y +CONFIG_NET_NSH=m CONFIG_NET_NS=y CONFIG_NET_PACKET_ENGINE=y CONFIG_NET_PKTGEN=m @@ -3616,6 +3646,7 @@ CONFIG_NET_VENDOR_EMULEX=y # CONFIG_NET_VENDOR_FUJITSU is not set # CONFIG_NET_VENDOR_HISILICON is not set # CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_I825XX is not set CONFIG_NET_VENDOR_INTEL=y CONFIG_NET_VENDOR_MARVELL=y @@ -3775,6 +3806,7 @@ CONFIG_NFT_EXTHDR=m CONFIG_NFT_FIB_INET=m CONFIG_NFT_FIB_IPV4=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_HASH=m CONFIG_NFT_LIMIT=m @@ -4080,8 +4112,10 @@ CONFIG_PHY_EXYNOS_DP_VIDEO=m CONFIG_PHY_EXYNOS_MIPI_VIDEO=m CONFIG_PHY_EXYNOS_PCIE=y CONFIG_PHYLIB=y +CONFIG_PHYLINK=m CONFIG_PHY_MESON8B_USB2=m # CONFIG_PHY_MESON_GXL_USB2 is not set +# CONFIG_PHY_MVEBU_CP110_COMPHY is not set CONFIG_PHY_MVEBU_SATA=y # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set @@ -4101,6 +4135,7 @@ CONFIG_PHY_SUN4I_USB=m CONFIG_PHY_SUN9I_USB=m CONFIG_PHY_TEGRA_XUSB=m # CONFIG_PHY_TUSB1210 is not set +# CONFIG_PI433 is not set # CONFIG_PID_IN_CONTEXTIDR is not set CONFIG_PID_NS=y CONFIG_PINCONF=y @@ -4122,8 +4157,11 @@ CONFIG_PINCTRL_DOVE=y # CONFIG_PINCTRL_MSM8994 is not set # CONFIG_PINCTRL_MSM8996 is not set CONFIG_PINCTRL_MVEBU=y +CONFIG_PINCTRL_RK805=m CONFIG_PINCTRL_SAMSUNG=y CONFIG_PINCTRL_SINGLE=y +# CONFIG_PINCTRL_SPRD is not set +# CONFIG_PINCTRL_SPRD_SC9860 is not set # CONFIG_PINCTRL_SUNRISEPOINT is not set # CONFIG_PINCTRL_SX150X is not set CONFIG_PINCTRL=y @@ -4237,6 +4275,7 @@ CONFIG_PWM_SAMSUNG=m CONFIG_PWM_SUN4I=m CONFIG_PWM_SYSFS=y CONFIG_PWM_TEGRA=m +CONFIG_PWM_TIECAP=m CONFIG_PWM=y CONFIG_PWRSEQ_EMMC=y CONFIG_PWRSEQ_SD8787=m @@ -4246,6 +4285,7 @@ CONFIG_PWRSEQ_SIMPLE=y # CONFIG_QCA7000_UART is not set # CONFIG_QCOM_EBI2 is not set # CONFIG_QCOM_EMAC is not set +# CONFIG_QCOM_GLINK_SSR is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set CONFIG_QCOM_PM8XXX_XOADC=m @@ -4279,6 +4319,7 @@ CONFIG_R8169=m CONFIG_R8188EU=m CONFIG_R8712U=m CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162) +CONFIG_R8822BE=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_AZTECH=m CONFIG_RADIO_CADET=m @@ -4355,6 +4396,7 @@ CONFIG_REGULATOR_AD5398=m # CONFIG_REGULATOR_ANATOP is not set CONFIG_REGULATOR_AS3722=m CONFIG_REGULATOR_AXP20X=m +CONFIG_REGULATOR_BD9571MWV=m CONFIG_REGULATOR_DA9210=m CONFIG_REGULATOR_DA9211=m # CONFIG_REGULATOR_DEBUG is not set @@ -4414,8 +4456,10 @@ CONFIG_REISERFS_PROC_INFO=y CONFIG_RELAY=y # CONFIG_RELOCATABLE_TEST is not set CONFIG_REMOTEPROC=m +CONFIG_RESET_ATTACK_MITIGATION=y CONFIG_RESET_CONTROLLER=y CONFIG_RESET_GPIO=y +# CONFIG_RESET_HSDK_V1 is not set # CONFIG_RESET_TI_SCI is not set # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RFD_FTL is not set @@ -4436,6 +4480,7 @@ CONFIG_RMI4_F55=y CONFIG_RMI4_I2C=m CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m +# CONFIG_RMNET is not set CONFIG_ROCKCHIP_ANALOGIX_DP=y CONFIG_ROCKCHIP_CDN_DP=y CONFIG_ROCKCHIP_DW_HDMI=y @@ -4445,6 +4490,7 @@ CONFIG_ROCKCHIP_INNO_HDMI=y CONFIG_ROCKCHIP_IODOMAIN=m CONFIG_ROCKCHIP_IOMMU=y CONFIG_ROCKCHIP_MBOX=y +CONFIG_ROCKCHIP_PHY=m CONFIG_ROCKCHIP_PM_DOMAINS=y CONFIG_ROCKCHIP_SARADC=m CONFIG_ROCKCHIP_THERMAL=m @@ -4455,6 +4501,7 @@ CONFIG_ROSE=m CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPMSG_CHAR is not set # CONFIG_RPMSG_QCOM_GLINK_RPM is not set +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set CONFIG_RPR0521=m CONFIG_RSI_91X=m CONFIG_RSI_DEBUGFS=y @@ -4836,6 +4883,7 @@ CONFIG_SENSORS_GPIO_FAN=m # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m +# CONFIG_SENSORS_IBM_CFFPS is not set CONFIG_SENSORS_IBMPEX=m CONFIG_SENSORS_IIO_HWMON=m CONFIG_SENSORS_INA209=m @@ -4926,6 +4974,7 @@ CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_TPS40422=m +CONFIG_SENSORS_TPS53679=m CONFIG_SENSORS_TSL2550=m # CONFIG_SENSORS_TSL2563 is not set CONFIG_SENSORS_UCD9000=m @@ -5016,6 +5065,7 @@ CONFIG_SERIO_AMBAKMI=m # CONFIG_SERIO_APBPS2 is not set CONFIG_SERIO_ARC_PS2=m # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_GPIO_PS2 is not set CONFIG_SERIO_I8042=y CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_OLPC_APSP is not set @@ -5029,6 +5079,7 @@ CONFIG_SERIO=y CONFIG_SFC_FALCON=m CONFIG_SFC_FALCON_MTD=y # CONFIG_SFC is not set +CONFIG_SFP=m # CONFIG_SGI_IOC4 is not set CONFIG_SGI_PARTITION=y CONFIG_SH_ETH=m @@ -5038,7 +5089,7 @@ CONFIG_SI7020=m # CONFIG_SIGMA is not set CONFIG_SIGMATEL_FIR=m CONFIG_SIGNED_PE_FILE_VERIFICATION=y -CONFIG_SIMPLE_PM_BUS=y +# CONFIG_SIMPLE_PM_BUS is not set CONFIG_SIS190=m CONFIG_SIS900=m # CONFIG_SKFP is not set @@ -5047,6 +5098,7 @@ CONFIG_SKGE_GENESIS=y CONFIG_SKGE=m # CONFIG_SKY2_DEBUG is not set CONFIG_SKY2=m +CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLICOSS is not set @@ -5095,7 +5147,7 @@ CONFIG_SND_AUDIO_GRAPH_CARD=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -CONFIG_SND_BCD2000=m +# CONFIG_SND_BCD2000 is not set CONFIG_SND_BCM2835_SOC_I2S=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m @@ -5159,7 +5211,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=0 CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_HDA_RECONFIG=y @@ -5256,6 +5308,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set CONFIG_SND_SOC_DIO2125=m @@ -5328,7 +5381,7 @@ CONFIG_SND_SOC_SPDIF=m # CONFIG_SND_SOC_TAS571X is not set # CONFIG_SND_SOC_TAS5720 is not set # CONFIG_SND_SOC_TEGRA20_AC97 is not set -# CONFIG_SND_SOC_TEGRA20_DAS is not set +CONFIG_SND_SOC_TEGRA20_DAS=m CONFIG_SND_SOC_TEGRA20_I2S=m # CONFIG_SND_SOC_TEGRA20_SPDIF is not set CONFIG_SND_SOC_TEGRA30_AHUB=m @@ -5352,6 +5405,7 @@ CONFIG_SND_SOC_TPA6130A2=m CONFIG_SND_SOC_TS3A227E=m # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set +CONFIG_SND_SOC_WM8524=m # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set @@ -5483,6 +5537,7 @@ CONFIG_SQUASHFS=m CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_ZSTD=y CONFIG_SRAM=y # CONFIG_SRF04 is not set # CONFIG_SRF08 is not set @@ -5518,8 +5573,10 @@ CONFIG_STMMAC_PLATFORM=m CONFIG_STRICT_DEVMEM=y CONFIG_STRICT_KERNEL_RWX=y CONFIG_STRICT_MODULE_RWX=y +# CONFIG_STRING_SELFTEST is not set CONFIG_STRIP_ASM_SYMS=y # CONFIG_STRIP is not set +CONFIG_SUN4I_A10_CCU=y CONFIG_SUN4I_EMAC=m CONFIG_SUN4I_GPADC=m CONFIG_SUN5I_CCU=y @@ -5529,6 +5586,7 @@ CONFIG_SUN8I_A33_CCU=y CONFIG_SUN8I_A83T_CCU=y CONFIG_SUN8I_DE2_CCU=y CONFIG_SUN8I_H3_CCU=y +CONFIG_SUN8I_R40_CCU=y CONFIG_SUN8I_R_CCU=y CONFIG_SUN8I_V3S_CCU=y CONFIG_SUN9I_A80_CCU=y @@ -5709,6 +5767,8 @@ CONFIG_TIGON3=m CONFIG_TI_MESSAGE_MANAGER=m CONFIG_TINYDRM_MI0283QT=m CONFIG_TINYDRM_MIPI_DBI=m +# CONFIG_TINYDRM_REPAPER is not set +# CONFIG_TINYDRM_ST7586 is not set CONFIG_TIPC=m # CONFIG_TIPC_MEDIA_IB is not set CONFIG_TIPC_MEDIA_UDP=y @@ -6343,6 +6403,7 @@ CONFIG_VIDEO_HEXIUM_ORION=m CONFIG_VIDEO_IVTV=m # CONFIG_VIDEO_M5MOLS is not set # CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set +CONFIG_VIDEO_MESON_AO_CEC=m CONFIG_VIDEO_MEYE=m CONFIG_VIDEO_MUX=m CONFIG_VIDEO_MXB=m @@ -6457,6 +6518,7 @@ CONFIG_W1_SLAVE_DS2438=m CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS2805=m CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_THERM=m @@ -6476,6 +6538,7 @@ CONFIG_WATCHDOG=y CONFIG_WCN36XX=m CONFIG_WDAT_WDT=m CONFIG_WDTPCI=m +CONFIG_WIL6210_DEBUGFS=y CONFIG_WIL6210_ISR_COR=y CONFIG_WIL6210=m # CONFIG_WIL6210_TRACING is not set @@ -6584,6 +6647,7 @@ CONFIG_ZLIB_DEFLATE=y CONFIG_ZLIB_INFLATE=y # CONFIG_ZPA2326 is not set CONFIG_ZRAM=m +# CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y CONFIG_ZSWAP=y diff --git a/kernel-armv7hl-lpae.config b/kernel-armv7hl-lpae.config index 73b557b16..0160a3634 100644 --- a/kernel-armv7hl-lpae.config +++ b/kernel-armv7hl-lpae.config @@ -154,7 +154,9 @@ CONFIG_AK8975=m CONFIG_ALI_FIR=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y # CONFIG_ALTERA_MBOX is not set +CONFIG_ALTERA_MSGDMA=m CONFIG_ALTERA_STAPL=m CONFIG_ALTERA_TSE=m CONFIG_ALX=m @@ -346,6 +348,7 @@ CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m CONFIG_ATH10K_SDIO=m # CONFIG_ATH10K_TRACING is not set +CONFIG_ATH10K_USB=m CONFIG_ATH5K_DEBUG=y CONFIG_ATH5K=m # CONFIG_ATH5K_TRACER is not set @@ -489,6 +492,7 @@ CONFIG_BATTERY_AXP20X=m # CONFIG_BATTERY_LEGO_EV3 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set +# CONFIG_BATTERY_MAX1721X is not set CONFIG_BATTERY_SBS=m CONFIG_BAYCOM_EPP=m CONFIG_BAYCOM_PAR=m @@ -536,7 +540,6 @@ CONFIG_BINFMT_MISC=m CONFIG_BINFMT_SCRIPT=y CONFIG_BLK_CGROUP=y # CONFIG_BLK_CMDLINE_PARSER is not set -CONFIG_BLK_CPQ_CISS_DA=m CONFIG_BLK_DEBUG_FS=y # CONFIG_BLK_DEV_3W_XXXX_RAID is not set CONFIG_BLK_DEV_BSGLIB=y @@ -596,6 +599,7 @@ CONFIG_BNX2=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y CONFIG_BNXT_DCB=y +CONFIG_BNXT_FLOWER_OFFLOAD=y CONFIG_BNXT=m CONFIG_BNXT_SRIOV=y CONFIG_BONDING=m @@ -606,6 +610,7 @@ CONFIG_BONDING=m CONFIG_BOOT_PRINTK_DELAY=y CONFIG_BOUNCE=y CONFIG_BPF_JIT=y +CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m # CONFIG_BRCMDBG is not set @@ -774,11 +779,13 @@ CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set # CONFIG_CC10001_ADC is not set CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_CCS811 is not set # CONFIG_CC_STACKPROTECTOR is not set CONFIG_CC_STACKPROTECTOR_NONE=y CONFIG_CDROM_PKTCDVD_BUFFERS=8 CONFIG_CDROM_PKTCDVD=m # CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEC_PIN=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_CEPH_FSCACHE=y CONFIG_CEPH_FS=m @@ -858,8 +865,8 @@ CONFIG_CIFS_STATS=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_XATTR=y -CONFIG_CISS_SCSI_TAPE=y CONFIG_CLEANCACHE=y +# CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set CONFIG_CLK_SP810=y CONFIG_CLKSRC_VERSATILE=y @@ -999,7 +1006,9 @@ CONFIG_CRYPTO_DEV_MV_CESA=m CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m CONFIG_CRYPTO_DEV_ROCKCHIP=m CONFIG_CRYPTO_DEV_S5P=m +# CONFIG_CRYPTO_DEV_SP_CCP is not set CONFIG_CRYPTO_DEV_SUN4I_SS=m +CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DH=y CONFIG_CRYPTO_DRBG_CTR=y @@ -1046,7 +1055,7 @@ CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_SHA1_ARM_NEON=y CONFIG_CRYPTO_SHA1_ARM=y CONFIG_CRYPTO_SHA1=y -CONFIG_CRYPTO_SHA256_ARM64=m +CONFIG_CRYPTO_SHA256_ARM64=y CONFIG_CRYPTO_SHA256_ARM=y CONFIG_CRYPTO_SHA256=y # CONFIG_CRYPTO_SHA2_ARM_CE is not set @@ -1232,7 +1241,7 @@ CONFIG_DONGLE=y CONFIG_DOVE_THERMAL=m CONFIG_DP83640_PHY=m CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m +# CONFIG_DP83867_PHY is not set # CONFIG_DPM_WATCHDOG is not set # revisit this in debug CONFIG_DPOT_DAC=m CONFIG_DRAGONRISE_FF=y @@ -1255,6 +1264,7 @@ CONFIG_DRM_CIRRUS_QEMU=m CONFIG_DRM_DP_AUX_CHARDEV=y CONFIG_DRM_DUMB_VGA_DAC=m CONFIG_DRM_DW_HDMI_AHB_AUDIO=m +CONFIG_DRM_DW_HDMI_CEC=m CONFIG_DRM_DW_HDMI_I2S_AUDIO=m CONFIG_DRM_DW_HDMI=m CONFIG_DRM_EXYNOS5433_DECON=y @@ -1330,6 +1340,7 @@ CONFIG_DRM_SIL_SII8620=m CONFIG_DRM_STI=m # CONFIG_DRM_STM is not set CONFIG_DRM_SUN4I_BACKEND=m +# CONFIG_DRM_SUN4I_HDMI_CEC is not set CONFIG_DRM_SUN4I_HDMI=m CONFIG_DRM_SUN4I=m CONFIG_DRM_SUN8I_MIXER=m @@ -1343,6 +1354,7 @@ CONFIG_DRM_TI_TFP410=m CONFIG_DRM_TOSHIBA_TC358767=m CONFIG_DRM_UDL=m # CONFIG_DRM_VBOXVIDEO is not set +CONFIG_DRM_VC4_HDMI_CEC=y CONFIG_DRM_VC4=m CONFIG_DRM_VGEM=m CONFIG_DRM_VIA=m @@ -1374,6 +1386,7 @@ CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_CORE=m # CONFIG_DVB_CXD2099 is not set CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set CONFIG_DVB_DM1105=m CONFIG_DVB_DYNAMIC_MINORS=y @@ -1524,6 +1537,7 @@ CONFIG_EXTCON_MAX8997=m # CONFIG_EXTCON_QCOM_SPMI_MISC is not set # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set +CONFIG_EXTCON_USBC_CROS_EC=m CONFIG_EXTCON_USB_GPIO=m CONFIG_EXTCON=y CONFIG_EXTRA_FIRMWARE="" @@ -1734,6 +1748,7 @@ CONFIG_GPIO_74X164=m # CONFIG_GPIO_ALTERA is not set # CONFIG_GPIO_AMDPT is not set CONFIG_GPIO_AXP209=m +CONFIG_GPIO_BD9571MWV=m # CONFIG_GPIO_BT8XX is not set CONFIG_GPIO_DAVINCI=y CONFIG_GPIO_DEVRES=y @@ -1769,6 +1784,7 @@ CONFIG_GPIO_TEGRA=y # CONFIG_GPIO_TPIC2810 is not set CONFIG_GPIO_TPS65910=y CONFIG_GPIO_TPS65912=m +CONFIG_GPIO_TPS68470=y # CONFIG_GPIO_TS4900 is not set # CONFIG_GPIO_TS5500 is not set CONFIG_GPIO_VIPERBOARD=m @@ -1978,6 +1994,7 @@ CONFIG_HWMON=y CONFIG_HW_PERF_EVENTS=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_BCM2835=m +CONFIG_HW_RANDOM_IMX_RNGC=m CONFIG_HW_RANDOM_MESON=m CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_TIMERIOMEM=m @@ -2012,10 +2029,10 @@ CONFIG_I2C_CROS_EC_TUNNEL=m # CONFIG_I2C_DEBUG_BUS is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEMUX_PINCTRL is not set -CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_DESIGNWARE_CORE=y # CONFIG_I2C_DESIGNWARE is not set CONFIG_I2C_DESIGNWARE_PCI=m -CONFIG_I2C_DESIGNWARE_PLATFORM=m +CONFIG_I2C_DESIGNWARE_PLATFORM=y CONFIG_I2C_DESIGNWARE_SLAVE=y CONFIG_I2C_DIOLAN_U2C=m # CONFIG_I2C_EG20T is not set @@ -2166,6 +2183,7 @@ CONFIG_INET=y # CONFIG_INFINIBAND_CXGB3_DEBUG is not set # CONFIG_INFINIBAND_CXGB3 is not set # CONFIG_INFINIBAND_CXGB4 is not set +# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set # CONFIG_INFINIBAND_I40IW is not set # CONFIG_INFINIBAND_IPOIB_CM is not set # CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set @@ -2244,8 +2262,10 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_PWM_BEEPER=m +# CONFIG_INPUT_PWM_VIBRA is not set # CONFIG_INPUT_REGULATOR_HAPTIC is not set CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_RK805_PWRKEY=m CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_INPUT_SPARSEKMAP=m CONFIG_INPUT_TABLET=y @@ -2429,6 +2449,7 @@ CONFIG_IRDA=m CONFIG_IR_ENE=m CONFIG_IR_FINTEK=m CONFIG_IR_GPIO_CIR=m +CONFIG_IR_GPIO_TX=m CONFIG_IR_HIX5HD2=m CONFIG_IR_IGORPLUGUSB=m CONFIG_IR_IGUANA=m @@ -2444,6 +2465,7 @@ CONFIG_IR_MESON=m CONFIG_IR_NEC_DECODER=m CONFIG_IRNET=m CONFIG_IR_NUVOTON=m +CONFIG_IR_PWM_TX=m CONFIG_IRQ_CROSSBAR=y # CONFIG_IRQ_DOMAIN_DEBUG is not set # CONFIG_IRQSOFF_TRACER is not set @@ -2691,6 +2713,7 @@ CONFIG_LCD_VGG2432A4=m # CONFIG_LDM_DEBUG is not set CONFIG_LDM_PARTITION=y # CONFIG_LEDS_AAT1290 is not set +CONFIG_LEDS_AS3645A=m # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set # CONFIG_LEDS_BD2802 is not set @@ -2791,6 +2814,7 @@ CONFIG_LMP91000=m CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_LOCKD=m +# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set # CONFIG_LOCK_DOWN_KERNEL is not set CONFIG_LOCKD_V4=y # CONFIG_LOCK_STAT is not set @@ -2815,6 +2839,7 @@ CONFIG_LPFC_NVME_INITIATOR=y CONFIG_LPFC_NVME_TARGET=y CONFIG_LSI_ET1011C_PHY=m CONFIG_LSM_MMAP_MIN_ADDR=32768 +# CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set # CONFIG_LTC2497 is not set # CONFIG_LTC2632 is not set @@ -2908,6 +2933,7 @@ CONFIG_MDIO_BUS_MUX=m CONFIG_MDIO_BUS_MUX_MMIOREG=m CONFIG_MDIO_GPIO=m # CONFIG_MDIO_HISI_FEMAC is not set +CONFIG_MDIO_I2C=m # CONFIG_MDIO_OCTEON is not set CONFIG_MDIO_SUN4I=m # CONFIG_MDIO_THUNDER is not set @@ -2959,6 +2985,7 @@ CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MESON_EFUSE=m # CONFIG_MESON_GXBB_WATCHDOG is not set # CONFIG_MESON_GXL_PHY is not set +CONFIG_MESON_GX_SOCINFO=y CONFIG_MESON_SARADC=m CONFIG_MESON_SM=y CONFIG_MESON_WATCHDOG=m @@ -2981,6 +3008,7 @@ CONFIG_MFD_AXP20X_I2C=y CONFIG_MFD_AXP20X_RSB=m CONFIG_MFD_AXP20X=y # CONFIG_MFD_BCM590XX is not set +CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set CONFIG_MFD_CROS_EC_I2C=m @@ -3053,6 +3081,7 @@ CONFIG_MFD_TPS65910=y CONFIG_MFD_TPS65912_I2C=y CONFIG_MFD_TPS65912_SPI=y CONFIG_MFD_TPS65912=y +CONFIG_MFD_TPS68470=y # CONFIG_MFD_TPS80031 is not set CONFIG_MFD_VEXPRESS_SYSREG=y CONFIG_MFD_VIPERBOARD=m @@ -3098,8 +3127,10 @@ CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_CORE_IPOIB=y CONFIG_MLX5_CORE=m # CONFIG_MLX5_EN_IPSEC is not set +CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set # CONFIG_MLX5_INFINIBAND is not set +CONFIG_MLX5_MPFS=y # CONFIG_MLX90614 is not set CONFIG_MLX_CPLD_PLATFORM=m CONFIG_MLXFW=m @@ -3122,7 +3153,6 @@ CONFIG_MMA8452=m # CONFIG_MMC35240 is not set CONFIG_MMC_ARMMMCI=m CONFIG_MMC_BCM2835=m -CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_CB710=m @@ -3137,7 +3167,6 @@ CONFIG_MMC_DW_ROCKCHIP=m # CONFIG_MMC_MTK is not set CONFIG_MMC_MVSDIO=m CONFIG_MMC_OMAP_HS=m -CONFIG_MMC_QCOM_DML=m CONFIG_MMC_REALTEK_PCI=m CONFIG_MMC_REALTEK_USB=m CONFIG_MMC_RICOH_MMC=y @@ -3525,6 +3554,7 @@ CONFIG_NETLABEL=y CONFIG_NETLINK_DIAG=m CONFIG_NET_MPLS_GSO=m CONFIG_NET_NCSI=y +CONFIG_NET_NSH=m CONFIG_NET_NS=y CONFIG_NET_PACKET_ENGINE=y CONFIG_NET_PKTGEN=m @@ -3595,6 +3625,7 @@ CONFIG_NET_VENDOR_EMULEX=y # CONFIG_NET_VENDOR_FUJITSU is not set # CONFIG_NET_VENDOR_HISILICON is not set # CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_I825XX is not set CONFIG_NET_VENDOR_INTEL=y CONFIG_NET_VENDOR_MARVELL=y @@ -3754,6 +3785,7 @@ CONFIG_NFT_EXTHDR=m CONFIG_NFT_FIB_INET=m CONFIG_NFT_FIB_IPV4=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_HASH=m CONFIG_NFT_LIMIT=m @@ -4059,8 +4091,10 @@ CONFIG_PHY_EXYNOS_DP_VIDEO=m CONFIG_PHY_EXYNOS_MIPI_VIDEO=m CONFIG_PHY_EXYNOS_PCIE=y CONFIG_PHYLIB=y +CONFIG_PHYLINK=m CONFIG_PHY_MESON8B_USB2=m # CONFIG_PHY_MESON_GXL_USB2 is not set +# CONFIG_PHY_MVEBU_CP110_COMPHY is not set CONFIG_PHY_MVEBU_SATA=y # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set @@ -4080,6 +4114,7 @@ CONFIG_PHY_SUN4I_USB=m CONFIG_PHY_SUN9I_USB=m CONFIG_PHY_TEGRA_XUSB=m # CONFIG_PHY_TUSB1210 is not set +# CONFIG_PI433 is not set # CONFIG_PID_IN_CONTEXTIDR is not set CONFIG_PID_NS=y CONFIG_PINCONF=y @@ -4101,8 +4136,11 @@ CONFIG_PINCTRL_DOVE=y # CONFIG_PINCTRL_MSM8994 is not set # CONFIG_PINCTRL_MSM8996 is not set CONFIG_PINCTRL_MVEBU=y +CONFIG_PINCTRL_RK805=m CONFIG_PINCTRL_SAMSUNG=y CONFIG_PINCTRL_SINGLE=y +# CONFIG_PINCTRL_SPRD is not set +# CONFIG_PINCTRL_SPRD_SC9860 is not set # CONFIG_PINCTRL_SUNRISEPOINT is not set # CONFIG_PINCTRL_SX150X is not set CONFIG_PINCTRL=y @@ -4215,6 +4253,7 @@ CONFIG_PWM_SAMSUNG=m CONFIG_PWM_SUN4I=m CONFIG_PWM_SYSFS=y CONFIG_PWM_TEGRA=m +CONFIG_PWM_TIECAP=m CONFIG_PWM=y CONFIG_PWRSEQ_EMMC=y CONFIG_PWRSEQ_SD8787=m @@ -4224,6 +4263,7 @@ CONFIG_PWRSEQ_SIMPLE=y # CONFIG_QCA7000_UART is not set # CONFIG_QCOM_EBI2 is not set # CONFIG_QCOM_EMAC is not set +# CONFIG_QCOM_GLINK_SSR is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set CONFIG_QCOM_PM8XXX_XOADC=m @@ -4257,6 +4297,7 @@ CONFIG_R8169=m CONFIG_R8188EU=m CONFIG_R8712U=m CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162) +CONFIG_R8822BE=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_AZTECH=m CONFIG_RADIO_CADET=m @@ -4333,6 +4374,7 @@ CONFIG_REGULATOR_AD5398=m # CONFIG_REGULATOR_ANATOP is not set CONFIG_REGULATOR_AS3722=m CONFIG_REGULATOR_AXP20X=m +CONFIG_REGULATOR_BD9571MWV=m CONFIG_REGULATOR_DA9210=m CONFIG_REGULATOR_DA9211=m # CONFIG_REGULATOR_DEBUG is not set @@ -4392,8 +4434,10 @@ CONFIG_REISERFS_PROC_INFO=y CONFIG_RELAY=y # CONFIG_RELOCATABLE_TEST is not set CONFIG_REMOTEPROC=m +CONFIG_RESET_ATTACK_MITIGATION=y CONFIG_RESET_CONTROLLER=y CONFIG_RESET_GPIO=y +# CONFIG_RESET_HSDK_V1 is not set # CONFIG_RESET_TI_SCI is not set # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RFD_FTL is not set @@ -4414,6 +4458,7 @@ CONFIG_RMI4_F55=y CONFIG_RMI4_I2C=m CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m +# CONFIG_RMNET is not set CONFIG_ROCKCHIP_ANALOGIX_DP=y CONFIG_ROCKCHIP_CDN_DP=y CONFIG_ROCKCHIP_DW_HDMI=y @@ -4423,6 +4468,7 @@ CONFIG_ROCKCHIP_INNO_HDMI=y CONFIG_ROCKCHIP_IODOMAIN=m CONFIG_ROCKCHIP_IOMMU=y CONFIG_ROCKCHIP_MBOX=y +CONFIG_ROCKCHIP_PHY=m CONFIG_ROCKCHIP_PM_DOMAINS=y CONFIG_ROCKCHIP_SARADC=m CONFIG_ROCKCHIP_THERMAL=m @@ -4433,6 +4479,7 @@ CONFIG_ROSE=m CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPMSG_CHAR is not set # CONFIG_RPMSG_QCOM_GLINK_RPM is not set +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set CONFIG_RPR0521=m CONFIG_RSI_91X=m CONFIG_RSI_DEBUGFS=y @@ -4814,6 +4861,7 @@ CONFIG_SENSORS_GPIO_FAN=m # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m +# CONFIG_SENSORS_IBM_CFFPS is not set CONFIG_SENSORS_IBMPEX=m CONFIG_SENSORS_IIO_HWMON=m CONFIG_SENSORS_INA209=m @@ -4904,6 +4952,7 @@ CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_TPS40422=m +CONFIG_SENSORS_TPS53679=m CONFIG_SENSORS_TSL2550=m # CONFIG_SENSORS_TSL2563 is not set CONFIG_SENSORS_UCD9000=m @@ -4994,6 +5043,7 @@ CONFIG_SERIO_AMBAKMI=m # CONFIG_SERIO_APBPS2 is not set CONFIG_SERIO_ARC_PS2=m # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_GPIO_PS2 is not set CONFIG_SERIO_I8042=y CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_OLPC_APSP is not set @@ -5007,6 +5057,7 @@ CONFIG_SERIO=y CONFIG_SFC_FALCON=m CONFIG_SFC_FALCON_MTD=y # CONFIG_SFC is not set +CONFIG_SFP=m # CONFIG_SGI_IOC4 is not set CONFIG_SGI_PARTITION=y CONFIG_SH_ETH=m @@ -5016,7 +5067,7 @@ CONFIG_SI7020=m # CONFIG_SIGMA is not set CONFIG_SIGMATEL_FIR=m CONFIG_SIGNED_PE_FILE_VERIFICATION=y -CONFIG_SIMPLE_PM_BUS=y +# CONFIG_SIMPLE_PM_BUS is not set CONFIG_SIS190=m CONFIG_SIS900=m # CONFIG_SKFP is not set @@ -5025,6 +5076,7 @@ CONFIG_SKGE_GENESIS=y CONFIG_SKGE=m # CONFIG_SKY2_DEBUG is not set CONFIG_SKY2=m +CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLICOSS is not set @@ -5073,7 +5125,7 @@ CONFIG_SND_AUDIO_GRAPH_CARD=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -CONFIG_SND_BCD2000=m +# CONFIG_SND_BCD2000 is not set CONFIG_SND_BCM2835_SOC_I2S=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m @@ -5137,7 +5189,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=0 CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_HDA_RECONFIG=y @@ -5233,6 +5285,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set CONFIG_SND_SOC_DIO2125=m @@ -5305,7 +5358,7 @@ CONFIG_SND_SOC_SPDIF=m # CONFIG_SND_SOC_TAS571X is not set # CONFIG_SND_SOC_TAS5720 is not set # CONFIG_SND_SOC_TEGRA20_AC97 is not set -# CONFIG_SND_SOC_TEGRA20_DAS is not set +CONFIG_SND_SOC_TEGRA20_DAS=m CONFIG_SND_SOC_TEGRA20_I2S=m # CONFIG_SND_SOC_TEGRA20_SPDIF is not set CONFIG_SND_SOC_TEGRA30_AHUB=m @@ -5329,6 +5382,7 @@ CONFIG_SND_SOC_TPA6130A2=m CONFIG_SND_SOC_TS3A227E=m # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set +CONFIG_SND_SOC_WM8524=m # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set @@ -5460,6 +5514,7 @@ CONFIG_SQUASHFS=m CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_ZSTD=y CONFIG_SRAM=y # CONFIG_SRF04 is not set # CONFIG_SRF08 is not set @@ -5495,8 +5550,10 @@ CONFIG_STMMAC_PLATFORM=m CONFIG_STRICT_DEVMEM=y CONFIG_STRICT_KERNEL_RWX=y CONFIG_STRICT_MODULE_RWX=y +# CONFIG_STRING_SELFTEST is not set CONFIG_STRIP_ASM_SYMS=y # CONFIG_STRIP is not set +CONFIG_SUN4I_A10_CCU=y CONFIG_SUN4I_EMAC=m CONFIG_SUN4I_GPADC=m CONFIG_SUN5I_CCU=y @@ -5506,6 +5563,7 @@ CONFIG_SUN8I_A33_CCU=y CONFIG_SUN8I_A83T_CCU=y CONFIG_SUN8I_DE2_CCU=y CONFIG_SUN8I_H3_CCU=y +CONFIG_SUN8I_R40_CCU=y CONFIG_SUN8I_R_CCU=y CONFIG_SUN8I_V3S_CCU=y CONFIG_SUN9I_A80_CCU=y @@ -5686,6 +5744,8 @@ CONFIG_TIGON3=m CONFIG_TI_MESSAGE_MANAGER=m CONFIG_TINYDRM_MI0283QT=m CONFIG_TINYDRM_MIPI_DBI=m +# CONFIG_TINYDRM_REPAPER is not set +# CONFIG_TINYDRM_ST7586 is not set CONFIG_TIPC=m # CONFIG_TIPC_MEDIA_IB is not set CONFIG_TIPC_MEDIA_UDP=y @@ -6320,6 +6380,7 @@ CONFIG_VIDEO_HEXIUM_ORION=m CONFIG_VIDEO_IVTV=m # CONFIG_VIDEO_M5MOLS is not set # CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set +CONFIG_VIDEO_MESON_AO_CEC=m CONFIG_VIDEO_MEYE=m CONFIG_VIDEO_MUX=m CONFIG_VIDEO_MXB=m @@ -6434,6 +6495,7 @@ CONFIG_W1_SLAVE_DS2438=m CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS2805=m CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_THERM=m @@ -6453,6 +6515,7 @@ CONFIG_WATCHDOG=y CONFIG_WCN36XX=m CONFIG_WDAT_WDT=m CONFIG_WDTPCI=m +CONFIG_WIL6210_DEBUGFS=y CONFIG_WIL6210_ISR_COR=y CONFIG_WIL6210=m # CONFIG_WIL6210_TRACING is not set @@ -6561,6 +6624,7 @@ CONFIG_ZLIB_DEFLATE=y CONFIG_ZLIB_INFLATE=y # CONFIG_ZPA2326 is not set CONFIG_ZRAM=m +# CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y CONFIG_ZSWAP=y diff --git a/kernel-armv7hl.config b/kernel-armv7hl.config index b6cfd9612..b7d0628e4 100644 --- a/kernel-armv7hl.config +++ b/kernel-armv7hl.config @@ -156,7 +156,9 @@ CONFIG_AK8975=m CONFIG_ALI_FIR=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y # CONFIG_ALTERA_MBOX is not set +CONFIG_ALTERA_MSGDMA=m CONFIG_ALTERA_STAPL=m CONFIG_ALTERA_TSE=m CONFIG_ALX=m @@ -360,6 +362,7 @@ CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m CONFIG_ATH10K_SDIO=m # CONFIG_ATH10K_TRACING is not set +CONFIG_ATH10K_USB=m CONFIG_ATH5K_DEBUG=y CONFIG_ATH5K=m # CONFIG_ATH5K_TRACER is not set @@ -499,6 +502,7 @@ CONFIG_BATMAN_ADV_MCAST=y CONFIG_BATMAN_ADV_NC=y CONFIG_BATTERY_AXP20X=m # CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM is not set +CONFIG_BATTERY_BQ27XXX_HDQ=m CONFIG_BATTERY_BQ27XXX_I2C=m CONFIG_BATTERY_BQ27XXX=m CONFIG_BATTERY_DA9052=m @@ -510,6 +514,7 @@ CONFIG_BATTERY_DA9052=m # CONFIG_BATTERY_LEGO_EV3 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set +# CONFIG_BATTERY_MAX1721X is not set CONFIG_BATTERY_RX51=m CONFIG_BATTERY_SBS=m CONFIG_BATTERY_TWL4030_MADC=m @@ -559,7 +564,6 @@ CONFIG_BINFMT_MISC=m CONFIG_BINFMT_SCRIPT=y CONFIG_BLK_CGROUP=y # CONFIG_BLK_CMDLINE_PARSER is not set -CONFIG_BLK_CPQ_CISS_DA=m CONFIG_BLK_DEBUG_FS=y # CONFIG_BLK_DEV_3W_XXXX_RAID is not set CONFIG_BLK_DEV_BSGLIB=y @@ -619,6 +623,7 @@ CONFIG_BNX2=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y CONFIG_BNXT_DCB=y +CONFIG_BNXT_FLOWER_OFFLOAD=y CONFIG_BNXT=m CONFIG_BNXT_SRIOV=y CONFIG_BONDING=m @@ -629,6 +634,7 @@ CONFIG_BONDING=m CONFIG_BOOT_PRINTK_DELAY=y CONFIG_BOUNCE=y CONFIG_BPF_JIT=y +CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m # CONFIG_BRCMDBG is not set @@ -798,11 +804,13 @@ CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set # CONFIG_CC10001_ADC is not set CONFIG_CC_OPTIMIZE_FOR_SIZE=y +# CONFIG_CCS811 is not set # CONFIG_CC_STACKPROTECTOR is not set CONFIG_CC_STACKPROTECTOR_NONE=y CONFIG_CDROM_PKTCDVD_BUFFERS=8 CONFIG_CDROM_PKTCDVD=m # CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEC_PIN=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_CEPH_FSCACHE=y CONFIG_CEPH_FS=m @@ -885,8 +893,8 @@ CONFIG_CIFS_STATS=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_XATTR=y -CONFIG_CISS_SCSI_TAPE=y CONFIG_CLEANCACHE=y +# CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set CONFIG_CLK_SP810=y CONFIG_CLKSRC_VERSATILE=y @@ -1051,7 +1059,9 @@ CONFIG_CRYPTO_DEV_QCE=m CONFIG_CRYPTO_DEV_ROCKCHIP=m CONFIG_CRYPTO_DEV_S5P=m CONFIG_CRYPTO_DEV_SAHARA=m +# CONFIG_CRYPTO_DEV_SP_CCP is not set CONFIG_CRYPTO_DEV_SUN4I_SS=m +CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DH=y CONFIG_CRYPTO_DRBG_CTR=y @@ -1098,7 +1108,7 @@ CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_SHA1_ARM_NEON=y CONFIG_CRYPTO_SHA1_ARM=y CONFIG_CRYPTO_SHA1=y -CONFIG_CRYPTO_SHA256_ARM64=m +CONFIG_CRYPTO_SHA256_ARM64=y CONFIG_CRYPTO_SHA256_ARM=y CONFIG_CRYPTO_SHA256=y # CONFIG_CRYPTO_SHA2_ARM_CE is not set @@ -1286,7 +1296,7 @@ CONFIG_DONGLE=y CONFIG_DOVE_THERMAL=m CONFIG_DP83640_PHY=m CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m +# CONFIG_DP83867_PHY is not set # CONFIG_DPM_WATCHDOG is not set # revisit this in debug CONFIG_DPOT_DAC=m CONFIG_DRAGONRISE_FF=y @@ -1309,6 +1319,7 @@ CONFIG_DRM_CIRRUS_QEMU=m CONFIG_DRM_DP_AUX_CHARDEV=y CONFIG_DRM_DUMB_VGA_DAC=m CONFIG_DRM_DW_HDMI_AHB_AUDIO=m +CONFIG_DRM_DW_HDMI_CEC=m CONFIG_DRM_DW_HDMI_I2S_AUDIO=m CONFIG_DRM_DW_HDMI=m CONFIG_DRM_ETNAVIV=m @@ -1415,6 +1426,7 @@ CONFIG_DRM_SIL_SII8620=m CONFIG_DRM_STI=m # CONFIG_DRM_STM is not set CONFIG_DRM_SUN4I_BACKEND=m +# CONFIG_DRM_SUN4I_HDMI_CEC is not set CONFIG_DRM_SUN4I_HDMI=m CONFIG_DRM_SUN4I=m CONFIG_DRM_SUN8I_MIXER=m @@ -1429,6 +1441,7 @@ CONFIG_DRM_TI_TFP410=m CONFIG_DRM_TOSHIBA_TC358767=m CONFIG_DRM_UDL=m # CONFIG_DRM_VBOXVIDEO is not set +CONFIG_DRM_VC4_HDMI_CEC=y CONFIG_DRM_VC4=m CONFIG_DRM_VGEM=m CONFIG_DRM_VIA=m @@ -1460,6 +1473,7 @@ CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_CORE=m # CONFIG_DVB_CXD2099 is not set CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set CONFIG_DVB_DM1105=m CONFIG_DVB_DYNAMIC_MINORS=y @@ -1614,6 +1628,7 @@ CONFIG_EXTCON_PALMAS=m CONFIG_EXTCON_QCOM_SPMI_MISC=m # CONFIG_EXTCON_RT8973A is not set # CONFIG_EXTCON_SM5502 is not set +CONFIG_EXTCON_USBC_CROS_EC=m CONFIG_EXTCON_USB_GPIO=m CONFIG_EXTCON=y CONFIG_EXTRA_FIRMWARE="" @@ -1829,6 +1844,7 @@ CONFIG_GPIO_74X164=m # CONFIG_GPIO_ALTERA is not set # CONFIG_GPIO_AMDPT is not set CONFIG_GPIO_AXP209=m +CONFIG_GPIO_BD9571MWV=m # CONFIG_GPIO_BT8XX is not set CONFIG_GPIO_DA9052=m CONFIG_GPIO_DA9055=m @@ -1870,6 +1886,7 @@ CONFIG_GPIO_TPS65218=m CONFIG_GPIO_TPS6586X=y CONFIG_GPIO_TPS65910=y CONFIG_GPIO_TPS65912=m +CONFIG_GPIO_TPS68470=y CONFIG_GPIO_TS4800=m # CONFIG_GPIO_TS4900 is not set # CONFIG_GPIO_TS5500 is not set @@ -2081,6 +2098,7 @@ CONFIG_HWMON=y CONFIG_HW_PERF_EVENTS=y CONFIG_HWPOISON_INJECT=m CONFIG_HW_RANDOM_BCM2835=m +CONFIG_HW_RANDOM_IMX_RNGC=m CONFIG_HW_RANDOM_MESON=m CONFIG_HW_RANDOM_MSM=m CONFIG_HW_RANDOM_MXC_RNGA=m @@ -2120,10 +2138,10 @@ CONFIG_I2C_CROS_EC_TUNNEL=m # CONFIG_I2C_DEBUG_BUS is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEMUX_PINCTRL is not set -CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_DESIGNWARE_CORE=y # CONFIG_I2C_DESIGNWARE is not set CONFIG_I2C_DESIGNWARE_PCI=m -CONFIG_I2C_DESIGNWARE_PLATFORM=m +CONFIG_I2C_DESIGNWARE_PLATFORM=y CONFIG_I2C_DESIGNWARE_SLAVE=y CONFIG_I2C_DIOLAN_U2C=m # CONFIG_I2C_EG20T is not set @@ -2258,6 +2276,7 @@ CONFIG_IMX7_PM_DOMAINS=y CONFIG_IMX_DMA=m CONFIG_IMX_GPCV2=y CONFIG_IMX_IPUV3_CORE=m +CONFIG_IMX_REMOTEPROC=m CONFIG_IMX_SDMA=m CONFIG_IMX_THERMAL=m CONFIG_IMX_WEIM=y @@ -2287,6 +2306,7 @@ CONFIG_INET=y # CONFIG_INFINIBAND_CXGB3_DEBUG is not set # CONFIG_INFINIBAND_CXGB3 is not set # CONFIG_INFINIBAND_CXGB4 is not set +# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set # CONFIG_INFINIBAND_I40IW is not set # CONFIG_INFINIBAND_IPOIB_CM is not set # CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set @@ -2370,8 +2390,10 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_PWM_BEEPER=m +# CONFIG_INPUT_PWM_VIBRA is not set # CONFIG_INPUT_REGULATOR_HAPTIC is not set CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_RK805_PWRKEY=m CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_INPUT_SPARSEKMAP=m CONFIG_INPUT_TABLET=y @@ -2558,6 +2580,7 @@ CONFIG_IRDA=m CONFIG_IR_ENE=m CONFIG_IR_FINTEK=m CONFIG_IR_GPIO_CIR=m +CONFIG_IR_GPIO_TX=m CONFIG_IR_HIX5HD2=m CONFIG_IR_IGORPLUGUSB=m CONFIG_IR_IGUANA=m @@ -2573,6 +2596,7 @@ CONFIG_IR_MESON=m CONFIG_IR_NEC_DECODER=m CONFIG_IRNET=m CONFIG_IR_NUVOTON=m +CONFIG_IR_PWM_TX=m CONFIG_IRQ_CROSSBAR=y # CONFIG_IRQ_DOMAIN_DEBUG is not set # CONFIG_IRQSOFF_TRACER is not set @@ -2824,6 +2848,7 @@ CONFIG_LCD_VGG2432A4=m # CONFIG_LDM_DEBUG is not set CONFIG_LDM_PARTITION=y # CONFIG_LEDS_AAT1290 is not set +CONFIG_LEDS_AS3645A=m # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set # CONFIG_LEDS_BD2802 is not set @@ -2927,6 +2952,7 @@ CONFIG_LMP91000=m CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_LOCKD=m +# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set # CONFIG_LOCK_DOWN_KERNEL is not set CONFIG_LOCKD_V4=y # CONFIG_LOCK_STAT is not set @@ -2951,6 +2977,7 @@ CONFIG_LPFC_NVME_INITIATOR=y CONFIG_LPFC_NVME_TARGET=y CONFIG_LSI_ET1011C_PHY=m CONFIG_LSM_MMAP_MIN_ADDR=32768 +# CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set # CONFIG_LTC2497 is not set # CONFIG_LTC2632 is not set @@ -3051,6 +3078,7 @@ CONFIG_MDIO_BUS_MUX=m CONFIG_MDIO_BUS_MUX_MMIOREG=m CONFIG_MDIO_GPIO=m # CONFIG_MDIO_HISI_FEMAC is not set +CONFIG_MDIO_I2C=m # CONFIG_MDIO_OCTEON is not set CONFIG_MDIO_SUN4I=m # CONFIG_MDIO_THUNDER is not set @@ -3104,6 +3132,7 @@ CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MESON_EFUSE=m # CONFIG_MESON_GXBB_WATCHDOG is not set # CONFIG_MESON_GXL_PHY is not set +CONFIG_MESON_GX_SOCINFO=y CONFIG_MESON_SARADC=m CONFIG_MESON_SM=y CONFIG_MESON_WATCHDOG=m @@ -3126,6 +3155,7 @@ CONFIG_MFD_AXP20X_I2C=y CONFIG_MFD_AXP20X_RSB=m CONFIG_MFD_AXP20X=y # CONFIG_MFD_BCM590XX is not set +CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set CONFIG_MFD_CROS_EC_I2C=m @@ -3201,6 +3231,7 @@ CONFIG_MFD_TPS65910=y CONFIG_MFD_TPS65912_I2C=y CONFIG_MFD_TPS65912_SPI=y CONFIG_MFD_TPS65912=y +CONFIG_MFD_TPS68470=y CONFIG_MFD_TPS80031=y CONFIG_MFD_VEXPRESS_SYSREG=y CONFIG_MFD_VIPERBOARD=m @@ -3246,8 +3277,10 @@ CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_CORE_IPOIB=y CONFIG_MLX5_CORE=m # CONFIG_MLX5_EN_IPSEC is not set +CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set # CONFIG_MLX5_INFINIBAND is not set +CONFIG_MLX5_MPFS=y # CONFIG_MLX90614 is not set CONFIG_MLX_CPLD_PLATFORM=m CONFIG_MLXFW=m @@ -3270,7 +3303,6 @@ CONFIG_MMA8452=m # CONFIG_MMC35240 is not set CONFIG_MMC_ARMMMCI=m CONFIG_MMC_BCM2835=m -CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_CB710=m @@ -3287,7 +3319,7 @@ CONFIG_MMC_MVSDIO=m CONFIG_MMC_MXC=m CONFIG_MMC_OMAP_HS=m CONFIG_MMC_OMAP=m -CONFIG_MMC_QCOM_DML=m +CONFIG_MMC_QCOM_DML=y CONFIG_MMC_REALTEK_PCI=m CONFIG_MMC_REALTEK_USB=m CONFIG_MMC_RICOH_MMC=y @@ -3698,6 +3730,7 @@ CONFIG_NETLABEL=y CONFIG_NETLINK_DIAG=m CONFIG_NET_MPLS_GSO=m CONFIG_NET_NCSI=y +CONFIG_NET_NSH=m CONFIG_NET_NS=y CONFIG_NET_PACKET_ENGINE=y CONFIG_NET_PKTGEN=m @@ -3769,6 +3802,7 @@ CONFIG_NET_VENDOR_FREESCALE=y # CONFIG_NET_VENDOR_FUJITSU is not set # CONFIG_NET_VENDOR_HISILICON is not set # CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_I825XX is not set CONFIG_NET_VENDOR_INTEL=y CONFIG_NET_VENDOR_MARVELL=y @@ -3930,6 +3964,7 @@ CONFIG_NFT_EXTHDR=m CONFIG_NFT_FIB_INET=m CONFIG_NFT_FIB_IPV4=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_HASH=m CONFIG_NFT_LIMIT=m @@ -4278,10 +4313,12 @@ CONFIG_PHY_EXYNOS_DP_VIDEO=m CONFIG_PHY_EXYNOS_MIPI_VIDEO=m CONFIG_PHY_EXYNOS_PCIE=y CONFIG_PHYLIB=y +CONFIG_PHYLINK=m CONFIG_PHY_MESON8B_USB2=m # CONFIG_PHY_MESON_GXL_USB2 is not set CONFIG_PHY_MIPHY28LP=m # CONFIG_PHY_MIPHY365X is not set +# CONFIG_PHY_MVEBU_CP110_COMPHY is not set CONFIG_PHY_MVEBU_SATA=y # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set @@ -4307,6 +4344,7 @@ CONFIG_PHY_SUN4I_USB=m CONFIG_PHY_SUN9I_USB=m CONFIG_PHY_TEGRA_XUSB=m # CONFIG_PHY_TUSB1210 is not set +# CONFIG_PI433 is not set # CONFIG_PID_IN_CONTEXTIDR is not set CONFIG_PID_NS=y CONFIG_PINCONF=y @@ -4338,8 +4376,11 @@ CONFIG_PINCTRL_MVEBU=y CONFIG_PINCTRL_PALMAS=y CONFIG_PINCTRL_QCOM_SPMI_PMIC=m CONFIG_PINCTRL_QCOM_SSBI_PMIC=m +CONFIG_PINCTRL_RK805=m CONFIG_PINCTRL_SAMSUNG=y CONFIG_PINCTRL_SINGLE=y +# CONFIG_PINCTRL_SPRD is not set +# CONFIG_PINCTRL_SPRD_SC9860 is not set # CONFIG_PINCTRL_SUNRISEPOINT is not set # CONFIG_PINCTRL_SX150X is not set CONFIG_PINCTRL=y @@ -4482,6 +4523,7 @@ CONFIG_QCOM_CLK_SMD_RPM=m CONFIG_QCOM_COINCELL=m # CONFIG_QCOM_EBI2 is not set # CONFIG_QCOM_EMAC is not set +# CONFIG_QCOM_GLINK_SSR is not set CONFIG_QCOM_GSBI=m # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set @@ -4531,6 +4573,7 @@ CONFIG_R8169=m CONFIG_R8188EU=m CONFIG_R8712U=m CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162) +CONFIG_R8822BE=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_AZTECH=m CONFIG_RADIO_CADET=m @@ -4610,6 +4653,7 @@ CONFIG_REGULATOR_AD5398=m CONFIG_REGULATOR_ANATOP=m CONFIG_REGULATOR_AS3722=m CONFIG_REGULATOR_AXP20X=m +CONFIG_REGULATOR_BD9571MWV=m CONFIG_REGULATOR_DA9052=m CONFIG_REGULATOR_DA9055=m CONFIG_REGULATOR_DA9210=m @@ -4682,8 +4726,10 @@ CONFIG_REISERFS_PROC_INFO=y CONFIG_RELAY=y # CONFIG_RELOCATABLE_TEST is not set CONFIG_REMOTEPROC=m +CONFIG_RESET_ATTACK_MITIGATION=y CONFIG_RESET_CONTROLLER=y CONFIG_RESET_GPIO=y +# CONFIG_RESET_HSDK_V1 is not set # CONFIG_RESET_TI_SCI is not set # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RFD_FTL is not set @@ -4704,6 +4750,7 @@ CONFIG_RMI4_F55=y CONFIG_RMI4_I2C=m CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m +# CONFIG_RMNET is not set CONFIG_ROCKCHIP_ANALOGIX_DP=y CONFIG_ROCKCHIP_CDN_DP=y CONFIG_ROCKCHIP_DW_HDMI=y @@ -4713,6 +4760,7 @@ CONFIG_ROCKCHIP_INNO_HDMI=y CONFIG_ROCKCHIP_IODOMAIN=m CONFIG_ROCKCHIP_IOMMU=y CONFIG_ROCKCHIP_MBOX=y +CONFIG_ROCKCHIP_PHY=m CONFIG_ROCKCHIP_PM_DOMAINS=y CONFIG_ROCKCHIP_SARADC=m CONFIG_ROCKCHIP_THERMAL=m @@ -4724,6 +4772,7 @@ CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPMSG_CHAR is not set CONFIG_RPMSG=m CONFIG_RPMSG_QCOM_GLINK_RPM=m +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set CONFIG_RPMSG_QCOM_SMD=m CONFIG_RPR0521=m CONFIG_RSI_91X=m @@ -5120,6 +5169,7 @@ CONFIG_SENSORS_GPIO_FAN=m # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m +# CONFIG_SENSORS_IBM_CFFPS is not set CONFIG_SENSORS_IBMPEX=m CONFIG_SENSORS_IIO_HWMON=m CONFIG_SENSORS_INA209=m @@ -5211,6 +5261,7 @@ CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_TPS40422=m +CONFIG_SENSORS_TPS53679=m CONFIG_SENSORS_TSL2550=m # CONFIG_SENSORS_TSL2563 is not set CONFIG_SENSORS_TWL4030_MADC=m @@ -5314,6 +5365,7 @@ CONFIG_SERIO_AMBAKMI=m # CONFIG_SERIO_APBPS2 is not set CONFIG_SERIO_ARC_PS2=m # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_GPIO_PS2 is not set CONFIG_SERIO_I8042=y CONFIG_SERIO_LIBPS2=y CONFIG_SERIO_NVEC_PS2=y @@ -5328,6 +5380,7 @@ CONFIG_SERIO=y CONFIG_SFC_FALCON=m CONFIG_SFC_FALCON_MTD=y # CONFIG_SFC is not set +CONFIG_SFP=m # CONFIG_SGI_IOC4 is not set CONFIG_SGI_PARTITION=y CONFIG_SH_ETH=m @@ -5337,7 +5390,7 @@ CONFIG_SI7020=m # CONFIG_SIGMA is not set CONFIG_SIGMATEL_FIR=m CONFIG_SIGNED_PE_FILE_VERIFICATION=y -CONFIG_SIMPLE_PM_BUS=y +# CONFIG_SIMPLE_PM_BUS is not set CONFIG_SIS190=m CONFIG_SIS900=m # CONFIG_SKFP is not set @@ -5346,6 +5399,7 @@ CONFIG_SKGE_GENESIS=y CONFIG_SKGE=m # CONFIG_SKY2_DEBUG is not set CONFIG_SKY2=m +CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLICOSS is not set @@ -5395,7 +5449,7 @@ CONFIG_SND_AUDIO_GRAPH_CARD=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -CONFIG_SND_BCD2000=m +# CONFIG_SND_BCD2000 is not set CONFIG_SND_BCM2835_SOC_I2S=m CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m @@ -5464,7 +5518,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=0 CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_HDA_RECONFIG=y @@ -5576,6 +5630,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set CONFIG_SND_SOC_CS42XX8_I2C=m +CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set CONFIG_SND_SOC_DIO2125=m @@ -5691,6 +5746,7 @@ CONFIG_SND_SOC_TWL4030=m CONFIG_SND_SOC_TWL6040=m # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set +CONFIG_SND_SOC_WM8524=m # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set @@ -5850,6 +5906,7 @@ CONFIG_SQUASHFS=m CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_ZSTD=y CONFIG_SRAM=y # CONFIG_SRF04 is not set # CONFIG_SRF08 is not set @@ -5891,11 +5948,13 @@ CONFIG_ST_REMOTEPROC=m CONFIG_STRICT_DEVMEM=y CONFIG_STRICT_KERNEL_RWX=y CONFIG_STRICT_MODULE_RWX=y +# CONFIG_STRING_SELFTEST is not set CONFIG_STRIP_ASM_SYMS=y # CONFIG_STRIP is not set CONFIG_ST_THERMAL=m CONFIG_ST_THERMAL_MEMMAP=m # CONFIG_ST_THERMAL_SYSCFG is not set +CONFIG_SUN4I_A10_CCU=y CONFIG_SUN4I_EMAC=m CONFIG_SUN4I_GPADC=m CONFIG_SUN5I_CCU=y @@ -5905,6 +5964,7 @@ CONFIG_SUN8I_A33_CCU=y CONFIG_SUN8I_A83T_CCU=y CONFIG_SUN8I_DE2_CCU=y CONFIG_SUN8I_H3_CCU=y +CONFIG_SUN8I_R40_CCU=y CONFIG_SUN8I_R_CCU=y CONFIG_SUN8I_V3S_CCU=y CONFIG_SUN9I_A80_CCU=y @@ -6091,6 +6151,8 @@ CONFIG_TIGON3=m # CONFIG_TIMER_STATS is not set CONFIG_TINYDRM_MI0283QT=m CONFIG_TINYDRM_MIPI_DBI=m +# CONFIG_TINYDRM_REPAPER is not set +# CONFIG_TINYDRM_ST7586 is not set CONFIG_TIPC=m # CONFIG_TIPC_MEDIA_IB is not set CONFIG_TIPC_MEDIA_UDP=y @@ -6757,6 +6819,7 @@ CONFIG_VIDEO_IMX_VDOA=m CONFIG_VIDEO_IVTV=m # CONFIG_VIDEO_M5MOLS is not set # CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set +CONFIG_VIDEO_MESON_AO_CEC=m CONFIG_VIDEO_MEYE=m CONFIG_VIDEO_MUX=m CONFIG_VIDEO_MXB=m @@ -6770,6 +6833,7 @@ CONFIG_VIDEO_OMAP3=m CONFIG_VIDEO_PVRUSB2_DVB=y CONFIG_VIDEO_PVRUSB2=m CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_QCOM_CAMSS=m CONFIG_VIDEO_QCOM_VENUS=m CONFIG_VIDEO_S5P_FIMC=m CONFIG_VIDEO_S5P_MIPI_CSIS=m @@ -6884,6 +6948,7 @@ CONFIG_W1_SLAVE_DS2438=m CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS2805=m CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_THERM=m @@ -6903,6 +6968,7 @@ CONFIG_WATCHDOG=y CONFIG_WCN36XX=m CONFIG_WDAT_WDT=m CONFIG_WDTPCI=m +CONFIG_WIL6210_DEBUGFS=y CONFIG_WIL6210_ISR_COR=y CONFIG_WIL6210=m # CONFIG_WIL6210_TRACING is not set @@ -7001,6 +7067,7 @@ CONFIG_ZLIB_DEFLATE=y CONFIG_ZLIB_INFLATE=y # CONFIG_ZPA2326 is not set CONFIG_ZRAM=m +# CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y CONFIG_ZSWAP=y diff --git a/kernel-i686-PAE.config b/kernel-i686-PAE.config index c41b1366c..45918b967 100644 --- a/kernel-i686-PAE.config +++ b/kernel-i686-PAE.config @@ -197,7 +197,9 @@ CONFIG_ALI_FIR=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m # CONFIG_ALIX is not set +CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y # CONFIG_ALTERA_MBOX is not set +CONFIG_ALTERA_MSGDMA=m CONFIG_ALTERA_STAPL=m CONFIG_ALTERA_TSE=m CONFIG_ALX=m @@ -252,6 +254,7 @@ CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m CONFIG_ATH10K_SDIO=m # CONFIG_ATH10K_TRACING is not set +CONFIG_ATH10K_USB=m CONFIG_ATH5K_DEBUG=y CONFIG_ATH5K=m # CONFIG_ATH5K_TRACER is not set @@ -388,6 +391,7 @@ CONFIG_BATMAN_ADV_NC=y # CONFIG_BATTERY_LEGO_EV3 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set +# CONFIG_BATTERY_MAX1721X is not set CONFIG_BATTERY_OLPC=y # CONFIG_BATTERY_SBS is not set CONFIG_BAYCOM_EPP=m @@ -430,7 +434,6 @@ CONFIG_BINFMT_MISC=m CONFIG_BINFMT_SCRIPT=y CONFIG_BLK_CGROUP=y # CONFIG_BLK_CMDLINE_PARSER is not set -CONFIG_BLK_CPQ_CISS_DA=m CONFIG_BLK_DEBUG_FS=y CONFIG_BLK_DEV_3W_XXXX_RAID=m CONFIG_BLK_DEV_AMD74XX=y @@ -489,6 +492,7 @@ CONFIG_BNX2=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y CONFIG_BNXT_DCB=y +CONFIG_BNXT_FLOWER_OFFLOAD=y CONFIG_BNXT=m CONFIG_BNXT_SRIOV=y CONFIG_BONDING=m @@ -499,6 +503,7 @@ CONFIG_BONDING=m CONFIG_BOOT_PRINTK_DELAY=y CONFIG_BOUNCE=y CONFIG_BPF_JIT=y +CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m # CONFIG_BRCMDBG is not set @@ -658,11 +663,13 @@ CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set # CONFIG_CC10001_ADC is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +# CONFIG_CCS811 is not set CONFIG_CC_STACKPROTECTOR_STRONG=y CONFIG_CC_STACKPROTECTOR=y CONFIG_CDROM_PKTCDVD_BUFFERS=8 CONFIG_CDROM_PKTCDVD=m # CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEC_PIN=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_CEPH_FSCACHE=y CONFIG_CEPH_FS=m @@ -740,9 +747,10 @@ CONFIG_CIFS_STATS=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_XATTR=y -CONFIG_CISS_SCSI_TAPE=y CONFIG_CLEANCACHE=y +# CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_CLOCK_THERMAL is not set CONFIG_CLS_U32_MARK=y CONFIG_CLS_U32_PERF=y CONFIG_CM32181=m @@ -860,6 +868,7 @@ CONFIG_CRYPTO_DEV_QAT_C62X=m CONFIG_CRYPTO_DEV_QAT_C62XVF=m CONFIG_CRYPTO_DEV_QAT_DH895xCC=m CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m +# CONFIG_CRYPTO_DEV_SP_CCP is not set CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DH=y CONFIG_CRYPTO_DRBG_CTR=y @@ -1024,6 +1033,7 @@ CONFIG_DEV_APPLETALK=m # CONFIG_DEVFREQ_GOV_POWERSAVE is not set CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m # CONFIG_DEVFREQ_GOV_USERSPACE is not set +# CONFIG_DEVFREQ_THERMAL is not set # CONFIG_DEVKMEM is not set CONFIG_DEVMEM=y CONFIG_DEVPORT=y @@ -1081,7 +1091,7 @@ CONFIG_DNS_RESOLVER=m CONFIG_DONGLE=y CONFIG_DP83640_PHY=m CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m +# CONFIG_DP83867_PHY is not set # CONFIG_DPM_WATCHDOG is not set # revisit this in debug CONFIG_DPOT_DAC=m CONFIG_DPTF_POWER=m @@ -1196,6 +1206,7 @@ CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_CORE=m # CONFIG_DVB_CXD2099 is not set CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set CONFIG_DVB_DM1105=m CONFIG_DVB_DYNAMIC_MINORS=y @@ -1589,6 +1600,7 @@ CONFIG_GIRBIL_DONGLE=m # CONFIG_GPIO_ALTERA is not set # CONFIG_GPIO_AMD8111 is not set # CONFIG_GPIO_AMDPT is not set +CONFIG_GPIO_BD9571MWV=m # CONFIG_GPIO_BT8XX is not set CONFIG_GPIO_CRYSTAL_COVE=y # CONFIG_GPIO_CS5535 is not set @@ -1624,6 +1636,7 @@ CONFIG_GPIO_SCH=m # CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_SYSFS is not set # CONFIG_GPIO_TPIC2810 is not set +CONFIG_GPIO_TPS68470=y # CONFIG_GPIO_TS4900 is not set # CONFIG_GPIO_TS5500 is not set CONFIG_GPIO_VIPERBOARD=m @@ -1857,6 +1870,7 @@ CONFIG_HYPERV=m CONFIG_HYPERV_NET=m CONFIG_HYPERV_STORAGE=m CONFIG_HYPERV_UTILS=m +CONFIG_HYPERV_VSOCKETS=m CONFIG_HYSDN_CAPI=y CONFIG_HYSDN=m CONFIG_HZ_1000=y @@ -2028,6 +2042,7 @@ CONFIG_INET=y # CONFIG_INFINIBAND_CXGB3_DEBUG is not set CONFIG_INFINIBAND_CXGB3=m CONFIG_INFINIBAND_CXGB4=m +# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set CONFIG_INFINIBAND_I40IW=m CONFIG_INFINIBAND_IPOIB_CM=y CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y @@ -2102,7 +2117,9 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_PWM_BEEPER=m +# CONFIG_INPUT_PWM_VIBRA is not set CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_RK805_PWRKEY=m CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_INPUT_SPARSEKMAP=m CONFIG_INPUT_TABLET=y @@ -2142,6 +2159,7 @@ CONFIG_INTEL_POWERCLAMP=m CONFIG_INTEL_PUNIT_IPC=m CONFIG_INTEL_RAPL=m CONFIG_INTEL_RDT_A=y +CONFIG_INTEL_RDT=y CONFIG_INTEL_RST=m # CONFIG_INTEL_SCU_IPC is not set CONFIG_INTEL_SMARTCONNECT=y @@ -2193,7 +2211,7 @@ CONFIG_IP_DCCP_CCID2=m # CONFIG_IP_DCCP_CCID3_DEBUG is not set CONFIG_IP_DCCP_CCID3=y # CONFIG_IP_DCCP_DEBUG is not set -CONFIG_IP_DCCP=m +# CONFIG_IP_DCCP is not set CONFIG_IPDDP_ENCAP=y CONFIG_IPDDP=m CONFIG_IP_FIB_TRIE_STATS=y @@ -2320,6 +2338,7 @@ CONFIG_IRDA=m CONFIG_IR_ENE=m CONFIG_IR_FINTEK=m CONFIG_IR_GPIO_CIR=m +CONFIG_IR_GPIO_TX=m CONFIG_IR_HIX5HD2=m CONFIG_IR_IGORPLUGUSB=m CONFIG_IR_IGUANA=m @@ -2334,6 +2353,7 @@ CONFIG_IR_MCEUSB=m CONFIG_IR_NEC_DECODER=m CONFIG_IRNET=m CONFIG_IR_NUVOTON=m +CONFIG_IR_PWM_TX=m # CONFIG_IRQ_DOMAIN_DEBUG is not set # CONFIG_IRQSOFF_TRACER is not set CONFIG_IRQ_TIME_ACCOUNTING=y @@ -2565,6 +2585,7 @@ CONFIG_LCD_PLATFORM=m # CONFIG_LDM_DEBUG is not set CONFIG_LDM_PARTITION=y # CONFIG_LEDS_AAT1290 is not set +CONFIG_LEDS_AS3645A=m # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set # CONFIG_LEDS_BD2802 is not set @@ -2665,6 +2686,7 @@ CONFIG_LOAD_UEFI_KEYS=y CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_LOCKD=m +# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set CONFIG_LOCK_DOWN_KERNEL=y CONFIG_LOCKD_V4=y # CONFIG_LOCK_STAT is not set @@ -2689,6 +2711,7 @@ CONFIG_LPFC_NVME_INITIATOR=y CONFIG_LPFC_NVME_TARGET=y CONFIG_LSI_ET1011C_PHY=m CONFIG_LSM_MMAP_MIN_ADDR=65536 +# CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set # CONFIG_LTC2497 is not set # CONFIG_LTC2632 is not set @@ -2752,7 +2775,7 @@ CONFIG_MAX30100=m # CONFIG_MAX9611 is not set # CONFIG_MAXIM_THERMOCOUPLE is not set CONFIG_MAX_RAW_DEVS=8192 -CONFIG_MAXSMP=y +# CONFIG_MAXSMP is not set # CONFIG_MC3230 is not set # CONFIG_MCB is not set # CONFIG_MCE_AMD_INJ is not set @@ -2776,6 +2799,7 @@ CONFIG_MDIO_BITBANG=m # CONFIG_MDIO_BUS_MUX_MMIOREG is not set # CONFIG_MDIO_GPIO is not set # CONFIG_MDIO_HISI_FEMAC is not set +CONFIG_MDIO_I2C=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set CONFIG_MD_LINEAR=m @@ -2840,6 +2864,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_AXP20X_I2C is not set # CONFIG_MFD_AXP20X is not set # CONFIG_MFD_BCM590XX is not set +CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set # CONFIG_MFD_CROS_EC is not set @@ -2907,6 +2932,7 @@ CONFIG_MFD_SM501=m # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912 is not set # CONFIG_MFD_TPS65912_SPI is not set +CONFIG_MFD_TPS68470=y # CONFIG_MFD_TPS80031 is not set CONFIG_MFD_VIPERBOARD=m CONFIG_MFD_VX855=m @@ -2956,8 +2982,10 @@ CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_CORE_IPOIB=y CONFIG_MLX5_CORE=m # CONFIG_MLX5_EN_IPSEC is not set +CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set # CONFIG_MLX5_INFINIBAND is not set +CONFIG_MLX5_MPFS=y # CONFIG_MLX90614 is not set CONFIG_MLX_CPLD_PLATFORM=m CONFIG_MLXFW=m @@ -2978,7 +3006,6 @@ CONFIG_MMA7660=m # CONFIG_MMA9551 is not set # CONFIG_MMA9553 is not set # CONFIG_MMC35240 is not set -CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_CB710=m @@ -3339,6 +3366,7 @@ CONFIG_NETLABEL=y CONFIG_NETLINK_DIAG=m CONFIG_NET_MPLS_GSO=m CONFIG_NET_NCSI=y +CONFIG_NET_NSH=m CONFIG_NET_NS=y CONFIG_NET_PACKET_ENGINE=y CONFIG_NET_PKTGEN=m @@ -3408,6 +3436,7 @@ CONFIG_NET_VENDOR_EXAR=y # CONFIG_NET_VENDOR_FUJITSU is not set # CONFIG_NET_VENDOR_HISILICON is not set # CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_I825XX is not set CONFIG_NET_VENDOR_INTEL=y CONFIG_NET_VENDOR_MARVELL=y @@ -3569,6 +3598,7 @@ CONFIG_NFT_EXTHDR=m CONFIG_NFT_FIB_INET=m CONFIG_NFT_FIB_IPV4=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_HASH=m CONFIG_NFT_LIMIT=m @@ -3871,6 +3901,8 @@ CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PHONET is not set # CONFIG_PHY_CPCAP_USB is not set CONFIG_PHYLIB=y +CONFIG_PHYLINK=m +# CONFIG_PHY_MVEBU_CP110_COMPHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set # CONFIG_PHY_QCOM_USB_HSIC is not set @@ -3880,6 +3912,7 @@ CONFIG_PHYSICAL_START=0x400000 # CONFIG_PHY_ST_SPEAR1310_MIPHY is not set # CONFIG_PHY_ST_SPEAR1340_MIPHY is not set # CONFIG_PHY_TUSB1210 is not set +# CONFIG_PI433 is not set CONFIG_PID_NS=y CONFIG_PINCONF=y # CONFIG_PINCTRL_AMD is not set @@ -3887,10 +3920,15 @@ CONFIG_PINCTRL_BAYTRAIL=y CONFIG_PINCTRL_BROXTON=m # CONFIG_PINCTRL_CANNONLAKE is not set CONFIG_PINCTRL_CHERRYVIEW=y +CONFIG_PINCTRL_DENVERTON=m # CONFIG_PINCTRL_GEMINILAKE is not set # CONFIG_PINCTRL_IPQ8074 is not set +CONFIG_PINCTRL_LEWISBURG=m # CONFIG_PINCTRL_MCP23S08 is not set +CONFIG_PINCTRL_RK805=m # CONFIG_PINCTRL_SINGLE is not set +# CONFIG_PINCTRL_SPRD is not set +# CONFIG_PINCTRL_SPRD_SC9860 is not set CONFIG_PINCTRL_SUNRISEPOINT=m # CONFIG_PINCTRL_SX150X is not set CONFIG_PINCTRL=y @@ -3909,7 +3947,7 @@ CONFIG_PM_DEVFREQ=y # CONFIG_PMIC_ADP5520 is not set # CONFIG_PMIC_DA903X is not set CONFIG_PMIC_OPREGION=y -# CONFIG_PM_OPP is not set +CONFIG_PM_OPP=y CONFIG_PM_STD_PARTITION="" CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_TRACE_RTC=y @@ -4001,6 +4039,7 @@ CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000_SPI is not set # CONFIG_QCA7000_UART is not set # CONFIG_QCOM_EMAC is not set +# CONFIG_QCOM_GLINK_SSR is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set CONFIG_QEDE=m @@ -4030,6 +4069,7 @@ CONFIG_R8169=m # CONFIG_R8188EU is not set CONFIG_R8712U=m CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162) +CONFIG_R8822BE=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_AZTECH=m CONFIG_RADIO_CADET=m @@ -4098,6 +4138,7 @@ CONFIG_REALTEK_PHY=m # CONFIG_REFCOUNT_FULL is not set CONFIG_REGMAP_I2C=y CONFIG_REGMAP=y +CONFIG_REGULATOR_BD9571MWV=m # CONFIG_REGULATOR_DEBUG is not set # CONFIG_REGULATOR is not set # CONFIG_REGULATOR_TPS65132 is not set @@ -4112,6 +4153,8 @@ CONFIG_RELAY=y # CONFIG_RELOCATABLE_TEST is not set CONFIG_RELOCATABLE=y CONFIG_REMOTEPROC=m +CONFIG_RESET_ATTACK_MITIGATION=y +# CONFIG_RESET_HSDK_V1 is not set # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RFD_FTL is not set CONFIG_RFKILL_GPIO=m @@ -4131,6 +4174,8 @@ CONFIG_RMI4_F55=y CONFIG_RMI4_I2C=m CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m +# CONFIG_RMNET is not set +# CONFIG_ROCKCHIP_PHY is not set CONFIG_ROCKER=m CONFIG_ROCKETPORT=m CONFIG_ROMFS_FS=m @@ -4138,6 +4183,7 @@ CONFIG_ROSE=m CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPMSG_CHAR is not set # CONFIG_RPMSG_QCOM_GLINK_RPM is not set +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set CONFIG_RPR0521=m CONFIG_RSI_91X=m CONFIG_RSI_DEBUGFS=y @@ -4515,6 +4561,7 @@ CONFIG_SENSORS_HDAPS=m CONFIG_SENSORS_I5500=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_IBMAEM=m +# CONFIG_SENSORS_IBM_CFFPS is not set CONFIG_SENSORS_IBMPEX=m # CONFIG_SENSORS_IIO_HWMON is not set CONFIG_SENSORS_INA209=m @@ -4606,6 +4653,7 @@ CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_TPS40422=m +CONFIG_SENSORS_TPS53679=m CONFIG_SENSORS_TSL2550=m # CONFIG_SENSORS_TSL2563 is not set CONFIG_SENSORS_UCD9000=m @@ -4679,6 +4727,7 @@ CONFIG_SERIO_ALTERA_PS2=m # CONFIG_SERIO_APBPS2 is not set CONFIG_SERIO_ARC_PS2=m # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_GPIO_PS2 is not set CONFIG_SERIO_I8042=y CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_OLPC_APSP is not set @@ -4692,6 +4741,7 @@ CONFIG_SFC_FALCON=m CONFIG_SFC_FALCON_MTD=y # CONFIG_SFC is not set CONFIG_SFI=y +CONFIG_SFP=m # CONFIG_SGI_IOC4 is not set CONFIG_SGI_PARTITION=y CONFIG_SH_ETH=m @@ -4711,6 +4761,7 @@ CONFIG_SKGE_GENESIS=y CONFIG_SKGE=m # CONFIG_SKY2_DEBUG is not set CONFIG_SKY2=m +CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLICOSS is not set @@ -4755,7 +4806,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -CONFIG_SND_BCD2000=m +# CONFIG_SND_BCD2000 is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -4818,7 +4869,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=0 CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_HDA_RECONFIG=y @@ -4907,6 +4958,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set CONFIG_SND_SOC_DIO2125=m @@ -4994,6 +5046,7 @@ CONFIG_SND_SOC_SSM4567=m CONFIG_SND_SOC_TS3A227E=m # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set +CONFIG_SND_SOC_WM8524=m # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set @@ -5093,6 +5146,7 @@ CONFIG_SQUASHFS=m CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_ZSTD=y # CONFIG_SRAM is not set # CONFIG_SRF04 is not set # CONFIG_SRF08 is not set @@ -5127,6 +5181,7 @@ CONFIG_STMMAC_ETH=m # CONFIG_STMMAC_PLATFORM is not set # CONFIG_STM_SOURCE_CONSOLE is not set CONFIG_STRICT_DEVMEM=y +# CONFIG_STRING_SELFTEST is not set CONFIG_STRIP_ASM_SYMS=y # CONFIG_STRIP is not set CONFIG_SUNDANCE=m @@ -5956,6 +6011,7 @@ CONFIG_W1_SLAVE_DS2438=m CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS2805=m CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_THERM=m @@ -5975,6 +6031,7 @@ CONFIG_WATCHDOG=y CONFIG_WCN36XX=m CONFIG_WDAT_WDT=m CONFIG_WDTPCI=m +CONFIG_WIL6210_DEBUGFS=y CONFIG_WIL6210_ISR_COR=y CONFIG_WIL6210=m # CONFIG_WIL6210_TRACING is not set @@ -6098,6 +6155,7 @@ CONFIG_XEN_NETDEV_BACKEND=m CONFIG_XEN_NETDEV_FRONTEND=m CONFIG_XEN_PCIDEV_BACKEND=m CONFIG_XEN_PCIDEV_FRONTEND=m +# CONFIG_XEN_PVCALLS_BACKEND is not set CONFIG_XEN_PVHVM=y CONFIG_XEN_PVH=y CONFIG_XEN_PV=y @@ -6151,6 +6209,7 @@ CONFIG_ZLIB_INFLATE=y CONFIG_ZONE_DMA=y # CONFIG_ZPA2326 is not set CONFIG_ZRAM=m +# CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y CONFIG_ZSWAP=y diff --git a/kernel-i686-PAEdebug.config b/kernel-i686-PAEdebug.config index 1020a8ce0..9bb1564fc 100644 --- a/kernel-i686-PAEdebug.config +++ b/kernel-i686-PAEdebug.config @@ -197,7 +197,9 @@ CONFIG_ALI_FIR=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m # CONFIG_ALIX is not set +CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y # CONFIG_ALTERA_MBOX is not set +CONFIG_ALTERA_MSGDMA=m CONFIG_ALTERA_STAPL=m CONFIG_ALTERA_TSE=m CONFIG_ALX=m @@ -253,6 +255,7 @@ CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m CONFIG_ATH10K_SDIO=m # CONFIG_ATH10K_TRACING is not set +CONFIG_ATH10K_USB=m CONFIG_ATH5K_DEBUG=y CONFIG_ATH5K=m # CONFIG_ATH5K_TRACER is not set @@ -389,6 +392,7 @@ CONFIG_BATMAN_ADV_NC=y # CONFIG_BATTERY_LEGO_EV3 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set +# CONFIG_BATTERY_MAX1721X is not set CONFIG_BATTERY_OLPC=y # CONFIG_BATTERY_SBS is not set CONFIG_BAYCOM_EPP=m @@ -431,7 +435,6 @@ CONFIG_BINFMT_MISC=m CONFIG_BINFMT_SCRIPT=y CONFIG_BLK_CGROUP=y # CONFIG_BLK_CMDLINE_PARSER is not set -CONFIG_BLK_CPQ_CISS_DA=m CONFIG_BLK_DEBUG_FS=y CONFIG_BLK_DEV_3W_XXXX_RAID=m CONFIG_BLK_DEV_AMD74XX=y @@ -490,6 +493,7 @@ CONFIG_BNX2=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y CONFIG_BNXT_DCB=y +CONFIG_BNXT_FLOWER_OFFLOAD=y CONFIG_BNXT=m CONFIG_BNXT_SRIOV=y CONFIG_BONDING=m @@ -500,6 +504,7 @@ CONFIG_BONDING=m CONFIG_BOOT_PRINTK_DELAY=y CONFIG_BOUNCE=y CONFIG_BPF_JIT=y +CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m # CONFIG_BRCMDBG is not set @@ -659,11 +664,13 @@ CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set # CONFIG_CC10001_ADC is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +# CONFIG_CCS811 is not set CONFIG_CC_STACKPROTECTOR_STRONG=y CONFIG_CC_STACKPROTECTOR=y CONFIG_CDROM_PKTCDVD_BUFFERS=8 CONFIG_CDROM_PKTCDVD=m # CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEC_PIN=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_CEPH_FSCACHE=y CONFIG_CEPH_FS=m @@ -741,9 +748,10 @@ CONFIG_CIFS_STATS=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_XATTR=y -CONFIG_CISS_SCSI_TAPE=y CONFIG_CLEANCACHE=y +# CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_CLOCK_THERMAL is not set CONFIG_CLS_U32_MARK=y CONFIG_CLS_U32_PERF=y CONFIG_CM32181=m @@ -862,6 +870,7 @@ CONFIG_CRYPTO_DEV_QAT_C62X=m CONFIG_CRYPTO_DEV_QAT_C62XVF=m CONFIG_CRYPTO_DEV_QAT_DH895xCC=m CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m +# CONFIG_CRYPTO_DEV_SP_CCP is not set CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DH=y CONFIG_CRYPTO_DRBG_CTR=y @@ -1034,6 +1043,7 @@ CONFIG_DEV_APPLETALK=m # CONFIG_DEVFREQ_GOV_POWERSAVE is not set CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m # CONFIG_DEVFREQ_GOV_USERSPACE is not set +# CONFIG_DEVFREQ_THERMAL is not set # CONFIG_DEVKMEM is not set CONFIG_DEVMEM=y CONFIG_DEVPORT=y @@ -1092,7 +1102,7 @@ CONFIG_DNS_RESOLVER=m CONFIG_DONGLE=y CONFIG_DP83640_PHY=m CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m +# CONFIG_DP83867_PHY is not set # CONFIG_DPM_WATCHDOG is not set # revisit this in debug CONFIG_DPOT_DAC=m CONFIG_DPTF_POWER=m @@ -1207,6 +1217,7 @@ CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_CORE=m # CONFIG_DVB_CXD2099 is not set CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set CONFIG_DVB_DM1105=m CONFIG_DVB_DYNAMIC_MINORS=y @@ -1607,6 +1618,7 @@ CONFIG_GIRBIL_DONGLE=m # CONFIG_GPIO_ALTERA is not set # CONFIG_GPIO_AMD8111 is not set # CONFIG_GPIO_AMDPT is not set +CONFIG_GPIO_BD9571MWV=m # CONFIG_GPIO_BT8XX is not set CONFIG_GPIO_CRYSTAL_COVE=y # CONFIG_GPIO_CS5535 is not set @@ -1642,6 +1654,7 @@ CONFIG_GPIO_SCH=m # CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_SYSFS is not set # CONFIG_GPIO_TPIC2810 is not set +CONFIG_GPIO_TPS68470=y # CONFIG_GPIO_TS4900 is not set # CONFIG_GPIO_TS5500 is not set CONFIG_GPIO_VIPERBOARD=m @@ -1875,6 +1888,7 @@ CONFIG_HYPERV=m CONFIG_HYPERV_NET=m CONFIG_HYPERV_STORAGE=m CONFIG_HYPERV_UTILS=m +CONFIG_HYPERV_VSOCKETS=m CONFIG_HYSDN_CAPI=y CONFIG_HYSDN=m CONFIG_HZ_1000=y @@ -2046,6 +2060,7 @@ CONFIG_INET=y # CONFIG_INFINIBAND_CXGB3_DEBUG is not set CONFIG_INFINIBAND_CXGB3=m CONFIG_INFINIBAND_CXGB4=m +# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set CONFIG_INFINIBAND_I40IW=m CONFIG_INFINIBAND_IPOIB_CM=y CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y @@ -2120,7 +2135,9 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_PWM_BEEPER=m +# CONFIG_INPUT_PWM_VIBRA is not set CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_RK805_PWRKEY=m CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_INPUT_SPARSEKMAP=m CONFIG_INPUT_TABLET=y @@ -2160,6 +2177,7 @@ CONFIG_INTEL_POWERCLAMP=m CONFIG_INTEL_PUNIT_IPC=m CONFIG_INTEL_RAPL=m CONFIG_INTEL_RDT_A=y +CONFIG_INTEL_RDT=y CONFIG_INTEL_RST=m # CONFIG_INTEL_SCU_IPC is not set CONFIG_INTEL_SMARTCONNECT=y @@ -2211,7 +2229,7 @@ CONFIG_IP_DCCP_CCID2=m # CONFIG_IP_DCCP_CCID3_DEBUG is not set CONFIG_IP_DCCP_CCID3=y # CONFIG_IP_DCCP_DEBUG is not set -CONFIG_IP_DCCP=m +# CONFIG_IP_DCCP is not set CONFIG_IPDDP_ENCAP=y CONFIG_IPDDP=m CONFIG_IP_FIB_TRIE_STATS=y @@ -2338,6 +2356,7 @@ CONFIG_IRDA=m CONFIG_IR_ENE=m CONFIG_IR_FINTEK=m CONFIG_IR_GPIO_CIR=m +CONFIG_IR_GPIO_TX=m CONFIG_IR_HIX5HD2=m CONFIG_IR_IGORPLUGUSB=m CONFIG_IR_IGUANA=m @@ -2352,6 +2371,7 @@ CONFIG_IR_MCEUSB=m CONFIG_IR_NEC_DECODER=m CONFIG_IRNET=m CONFIG_IR_NUVOTON=m +CONFIG_IR_PWM_TX=m # CONFIG_IRQ_DOMAIN_DEBUG is not set # CONFIG_IRQSOFF_TRACER is not set CONFIG_IRQ_TIME_ACCOUNTING=y @@ -2585,6 +2605,7 @@ CONFIG_LCD_PLATFORM=m # CONFIG_LDM_DEBUG is not set CONFIG_LDM_PARTITION=y # CONFIG_LEDS_AAT1290 is not set +CONFIG_LEDS_AS3645A=m # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set # CONFIG_LEDS_BD2802 is not set @@ -2685,6 +2706,7 @@ CONFIG_LOAD_UEFI_KEYS=y CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_LOCKD=m +# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set CONFIG_LOCK_DOWN_KERNEL=y CONFIG_LOCKD_V4=y CONFIG_LOCK_STAT=y @@ -2709,6 +2731,7 @@ CONFIG_LPFC_NVME_INITIATOR=y CONFIG_LPFC_NVME_TARGET=y CONFIG_LSI_ET1011C_PHY=m CONFIG_LSM_MMAP_MIN_ADDR=65536 +# CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set # CONFIG_LTC2497 is not set # CONFIG_LTC2632 is not set @@ -2796,6 +2819,7 @@ CONFIG_MDIO_BITBANG=m # CONFIG_MDIO_BUS_MUX_MMIOREG is not set # CONFIG_MDIO_GPIO is not set # CONFIG_MDIO_HISI_FEMAC is not set +CONFIG_MDIO_I2C=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set CONFIG_MD_LINEAR=m @@ -2860,6 +2884,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_AXP20X_I2C is not set # CONFIG_MFD_AXP20X is not set # CONFIG_MFD_BCM590XX is not set +CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set # CONFIG_MFD_CROS_EC is not set @@ -2927,6 +2952,7 @@ CONFIG_MFD_SM501=m # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912 is not set # CONFIG_MFD_TPS65912_SPI is not set +CONFIG_MFD_TPS68470=y # CONFIG_MFD_TPS80031 is not set CONFIG_MFD_VIPERBOARD=m CONFIG_MFD_VX855=m @@ -2976,8 +3002,10 @@ CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_CORE_IPOIB=y CONFIG_MLX5_CORE=m # CONFIG_MLX5_EN_IPSEC is not set +CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set # CONFIG_MLX5_INFINIBAND is not set +CONFIG_MLX5_MPFS=y # CONFIG_MLX90614 is not set CONFIG_MLX_CPLD_PLATFORM=m CONFIG_MLXFW=m @@ -2998,7 +3026,6 @@ CONFIG_MMA7660=m # CONFIG_MMA9551 is not set # CONFIG_MMA9553 is not set # CONFIG_MMC35240 is not set -CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_CB710=m @@ -3359,6 +3386,7 @@ CONFIG_NETLABEL=y CONFIG_NETLINK_DIAG=m CONFIG_NET_MPLS_GSO=m CONFIG_NET_NCSI=y +CONFIG_NET_NSH=m CONFIG_NET_NS=y CONFIG_NET_PACKET_ENGINE=y CONFIG_NET_PKTGEN=m @@ -3428,6 +3456,7 @@ CONFIG_NET_VENDOR_EXAR=y # CONFIG_NET_VENDOR_FUJITSU is not set # CONFIG_NET_VENDOR_HISILICON is not set # CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_I825XX is not set CONFIG_NET_VENDOR_INTEL=y CONFIG_NET_VENDOR_MARVELL=y @@ -3589,6 +3618,7 @@ CONFIG_NFT_EXTHDR=m CONFIG_NFT_FIB_INET=m CONFIG_NFT_FIB_IPV4=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_HASH=m CONFIG_NFT_LIMIT=m @@ -3891,6 +3921,8 @@ CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PHONET is not set # CONFIG_PHY_CPCAP_USB is not set CONFIG_PHYLIB=y +CONFIG_PHYLINK=m +# CONFIG_PHY_MVEBU_CP110_COMPHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set # CONFIG_PHY_QCOM_USB_HSIC is not set @@ -3900,6 +3932,7 @@ CONFIG_PHYSICAL_START=0x400000 # CONFIG_PHY_ST_SPEAR1310_MIPHY is not set # CONFIG_PHY_ST_SPEAR1340_MIPHY is not set # CONFIG_PHY_TUSB1210 is not set +# CONFIG_PI433 is not set CONFIG_PID_NS=y CONFIG_PINCONF=y # CONFIG_PINCTRL_AMD is not set @@ -3907,10 +3940,15 @@ CONFIG_PINCTRL_BAYTRAIL=y CONFIG_PINCTRL_BROXTON=m # CONFIG_PINCTRL_CANNONLAKE is not set CONFIG_PINCTRL_CHERRYVIEW=y +CONFIG_PINCTRL_DENVERTON=m # CONFIG_PINCTRL_GEMINILAKE is not set # CONFIG_PINCTRL_IPQ8074 is not set +CONFIG_PINCTRL_LEWISBURG=m # CONFIG_PINCTRL_MCP23S08 is not set +CONFIG_PINCTRL_RK805=m # CONFIG_PINCTRL_SINGLE is not set +# CONFIG_PINCTRL_SPRD is not set +# CONFIG_PINCTRL_SPRD_SC9860 is not set CONFIG_PINCTRL_SUNRISEPOINT=m # CONFIG_PINCTRL_SX150X is not set CONFIG_PINCTRL=y @@ -3929,7 +3967,7 @@ CONFIG_PM_DEVFREQ=y # CONFIG_PMIC_ADP5520 is not set # CONFIG_PMIC_DA903X is not set CONFIG_PMIC_OPREGION=y -# CONFIG_PM_OPP is not set +CONFIG_PM_OPP=y CONFIG_PM_STD_PARTITION="" CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_TRACE_RTC=y @@ -4022,6 +4060,7 @@ CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000_SPI is not set # CONFIG_QCA7000_UART is not set # CONFIG_QCOM_EMAC is not set +# CONFIG_QCOM_GLINK_SSR is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set CONFIG_QEDE=m @@ -4051,6 +4090,7 @@ CONFIG_R8169=m # CONFIG_R8188EU is not set CONFIG_R8712U=m CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162) +CONFIG_R8822BE=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_AZTECH=m CONFIG_RADIO_CADET=m @@ -4119,6 +4159,7 @@ CONFIG_REALTEK_PHY=m CONFIG_REFCOUNT_FULL=y CONFIG_REGMAP_I2C=y CONFIG_REGMAP=y +CONFIG_REGULATOR_BD9571MWV=m # CONFIG_REGULATOR_DEBUG is not set # CONFIG_REGULATOR is not set # CONFIG_REGULATOR_TPS65132 is not set @@ -4133,6 +4174,8 @@ CONFIG_RELAY=y # CONFIG_RELOCATABLE_TEST is not set CONFIG_RELOCATABLE=y CONFIG_REMOTEPROC=m +CONFIG_RESET_ATTACK_MITIGATION=y +# CONFIG_RESET_HSDK_V1 is not set # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RFD_FTL is not set CONFIG_RFKILL_GPIO=m @@ -4152,6 +4195,8 @@ CONFIG_RMI4_F55=y CONFIG_RMI4_I2C=m CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m +# CONFIG_RMNET is not set +# CONFIG_ROCKCHIP_PHY is not set CONFIG_ROCKER=m CONFIG_ROCKETPORT=m CONFIG_ROMFS_FS=m @@ -4159,6 +4204,7 @@ CONFIG_ROSE=m CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPMSG_CHAR is not set # CONFIG_RPMSG_QCOM_GLINK_RPM is not set +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set CONFIG_RPR0521=m CONFIG_RSI_91X=m CONFIG_RSI_DEBUGFS=y @@ -4536,6 +4582,7 @@ CONFIG_SENSORS_HDAPS=m CONFIG_SENSORS_I5500=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_IBMAEM=m +# CONFIG_SENSORS_IBM_CFFPS is not set CONFIG_SENSORS_IBMPEX=m # CONFIG_SENSORS_IIO_HWMON is not set CONFIG_SENSORS_INA209=m @@ -4627,6 +4674,7 @@ CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_TPS40422=m +CONFIG_SENSORS_TPS53679=m CONFIG_SENSORS_TSL2550=m # CONFIG_SENSORS_TSL2563 is not set CONFIG_SENSORS_UCD9000=m @@ -4700,6 +4748,7 @@ CONFIG_SERIO_ALTERA_PS2=m # CONFIG_SERIO_APBPS2 is not set CONFIG_SERIO_ARC_PS2=m # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_GPIO_PS2 is not set CONFIG_SERIO_I8042=y CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_OLPC_APSP is not set @@ -4713,6 +4762,7 @@ CONFIG_SFC_FALCON=m CONFIG_SFC_FALCON_MTD=y # CONFIG_SFC is not set CONFIG_SFI=y +CONFIG_SFP=m # CONFIG_SGI_IOC4 is not set CONFIG_SGI_PARTITION=y CONFIG_SH_ETH=m @@ -4732,6 +4782,7 @@ CONFIG_SKGE_GENESIS=y CONFIG_SKGE=m # CONFIG_SKY2_DEBUG is not set CONFIG_SKY2=m +CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLICOSS is not set @@ -4776,7 +4827,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -CONFIG_SND_BCD2000=m +# CONFIG_SND_BCD2000 is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -4839,7 +4890,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=0 CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_HDA_RECONFIG=y @@ -4929,6 +4980,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set CONFIG_SND_SOC_DIO2125=m @@ -5016,6 +5068,7 @@ CONFIG_SND_SOC_SSM4567=m CONFIG_SND_SOC_TS3A227E=m # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set +CONFIG_SND_SOC_WM8524=m # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set @@ -5115,6 +5168,7 @@ CONFIG_SQUASHFS=m CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_ZSTD=y # CONFIG_SRAM is not set # CONFIG_SRF04 is not set # CONFIG_SRF08 is not set @@ -5149,6 +5203,7 @@ CONFIG_STMMAC_ETH=m # CONFIG_STMMAC_PLATFORM is not set # CONFIG_STM_SOURCE_CONSOLE is not set CONFIG_STRICT_DEVMEM=y +# CONFIG_STRING_SELFTEST is not set CONFIG_STRIP_ASM_SYMS=y # CONFIG_STRIP is not set CONFIG_SUNDANCE=m @@ -5978,6 +6033,7 @@ CONFIG_W1_SLAVE_DS2438=m CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS2805=m CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_THERM=m @@ -5997,6 +6053,7 @@ CONFIG_WATCHDOG=y CONFIG_WCN36XX=m CONFIG_WDAT_WDT=m CONFIG_WDTPCI=m +CONFIG_WIL6210_DEBUGFS=y CONFIG_WIL6210_ISR_COR=y CONFIG_WIL6210=m # CONFIG_WIL6210_TRACING is not set @@ -6120,6 +6177,7 @@ CONFIG_XEN_NETDEV_BACKEND=m CONFIG_XEN_NETDEV_FRONTEND=m CONFIG_XEN_PCIDEV_BACKEND=m CONFIG_XEN_PCIDEV_FRONTEND=m +# CONFIG_XEN_PVCALLS_BACKEND is not set CONFIG_XEN_PVHVM=y CONFIG_XEN_PVH=y CONFIG_XEN_PV=y @@ -6173,6 +6231,7 @@ CONFIG_ZLIB_INFLATE=y CONFIG_ZONE_DMA=y # CONFIG_ZPA2326 is not set CONFIG_ZRAM=m +# CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y CONFIG_ZSWAP=y diff --git a/kernel-i686-debug.config b/kernel-i686-debug.config index 8e739d7fc..1a81d84c1 100644 --- a/kernel-i686-debug.config +++ b/kernel-i686-debug.config @@ -197,7 +197,9 @@ CONFIG_ALI_FIR=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m # CONFIG_ALIX is not set +CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y # CONFIG_ALTERA_MBOX is not set +CONFIG_ALTERA_MSGDMA=m CONFIG_ALTERA_STAPL=m CONFIG_ALTERA_TSE=m CONFIG_ALX=m @@ -253,6 +255,7 @@ CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m CONFIG_ATH10K_SDIO=m # CONFIG_ATH10K_TRACING is not set +CONFIG_ATH10K_USB=m CONFIG_ATH5K_DEBUG=y CONFIG_ATH5K=m # CONFIG_ATH5K_TRACER is not set @@ -389,6 +392,7 @@ CONFIG_BATMAN_ADV_NC=y # CONFIG_BATTERY_LEGO_EV3 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set +# CONFIG_BATTERY_MAX1721X is not set CONFIG_BATTERY_OLPC=y # CONFIG_BATTERY_SBS is not set CONFIG_BAYCOM_EPP=m @@ -431,7 +435,6 @@ CONFIG_BINFMT_MISC=m CONFIG_BINFMT_SCRIPT=y CONFIG_BLK_CGROUP=y # CONFIG_BLK_CMDLINE_PARSER is not set -CONFIG_BLK_CPQ_CISS_DA=m CONFIG_BLK_DEBUG_FS=y CONFIG_BLK_DEV_3W_XXXX_RAID=m CONFIG_BLK_DEV_AMD74XX=y @@ -490,6 +493,7 @@ CONFIG_BNX2=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y CONFIG_BNXT_DCB=y +CONFIG_BNXT_FLOWER_OFFLOAD=y CONFIG_BNXT=m CONFIG_BNXT_SRIOV=y CONFIG_BONDING=m @@ -500,6 +504,7 @@ CONFIG_BONDING=m CONFIG_BOOT_PRINTK_DELAY=y CONFIG_BOUNCE=y CONFIG_BPF_JIT=y +CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m # CONFIG_BRCMDBG is not set @@ -659,11 +664,13 @@ CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set # CONFIG_CC10001_ADC is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +# CONFIG_CCS811 is not set CONFIG_CC_STACKPROTECTOR_STRONG=y CONFIG_CC_STACKPROTECTOR=y CONFIG_CDROM_PKTCDVD_BUFFERS=8 CONFIG_CDROM_PKTCDVD=m # CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEC_PIN=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_CEPH_FSCACHE=y CONFIG_CEPH_FS=m @@ -741,9 +748,10 @@ CONFIG_CIFS_STATS=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_XATTR=y -CONFIG_CISS_SCSI_TAPE=y CONFIG_CLEANCACHE=y +# CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_CLOCK_THERMAL is not set CONFIG_CLS_U32_MARK=y CONFIG_CLS_U32_PERF=y CONFIG_CM32181=m @@ -862,6 +870,7 @@ CONFIG_CRYPTO_DEV_QAT_C62X=m CONFIG_CRYPTO_DEV_QAT_C62XVF=m CONFIG_CRYPTO_DEV_QAT_DH895xCC=m CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m +# CONFIG_CRYPTO_DEV_SP_CCP is not set CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DH=y CONFIG_CRYPTO_DRBG_CTR=y @@ -1034,6 +1043,7 @@ CONFIG_DEV_APPLETALK=m # CONFIG_DEVFREQ_GOV_POWERSAVE is not set CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m # CONFIG_DEVFREQ_GOV_USERSPACE is not set +# CONFIG_DEVFREQ_THERMAL is not set # CONFIG_DEVKMEM is not set CONFIG_DEVMEM=y CONFIG_DEVPORT=y @@ -1092,7 +1102,7 @@ CONFIG_DNS_RESOLVER=m CONFIG_DONGLE=y CONFIG_DP83640_PHY=m CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m +# CONFIG_DP83867_PHY is not set # CONFIG_DPM_WATCHDOG is not set # revisit this in debug CONFIG_DPOT_DAC=m CONFIG_DPTF_POWER=m @@ -1207,6 +1217,7 @@ CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_CORE=m # CONFIG_DVB_CXD2099 is not set CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set CONFIG_DVB_DM1105=m CONFIG_DVB_DYNAMIC_MINORS=y @@ -1607,6 +1618,7 @@ CONFIG_GIRBIL_DONGLE=m # CONFIG_GPIO_ALTERA is not set # CONFIG_GPIO_AMD8111 is not set # CONFIG_GPIO_AMDPT is not set +CONFIG_GPIO_BD9571MWV=m # CONFIG_GPIO_BT8XX is not set CONFIG_GPIO_CRYSTAL_COVE=y CONFIG_GPIO_CS5535=y @@ -1642,6 +1654,7 @@ CONFIG_GPIO_SCH=m # CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_SYSFS is not set # CONFIG_GPIO_TPIC2810 is not set +CONFIG_GPIO_TPS68470=y # CONFIG_GPIO_TS4900 is not set # CONFIG_GPIO_TS5500 is not set CONFIG_GPIO_VIPERBOARD=m @@ -1875,6 +1888,7 @@ CONFIG_HYPERV=m CONFIG_HYPERV_NET=m CONFIG_HYPERV_STORAGE=m CONFIG_HYPERV_UTILS=m +CONFIG_HYPERV_VSOCKETS=m CONFIG_HYSDN_CAPI=y CONFIG_HYSDN=m CONFIG_HZ_1000=y @@ -2046,6 +2060,7 @@ CONFIG_INET=y # CONFIG_INFINIBAND_CXGB3_DEBUG is not set CONFIG_INFINIBAND_CXGB3=m CONFIG_INFINIBAND_CXGB4=m +# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set CONFIG_INFINIBAND_I40IW=m CONFIG_INFINIBAND_IPOIB_CM=y CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y @@ -2120,7 +2135,9 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_PWM_BEEPER=m +# CONFIG_INPUT_PWM_VIBRA is not set CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_RK805_PWRKEY=m CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_INPUT_SPARSEKMAP=m CONFIG_INPUT_TABLET=y @@ -2160,6 +2177,7 @@ CONFIG_INTEL_POWERCLAMP=m CONFIG_INTEL_PUNIT_IPC=m CONFIG_INTEL_RAPL=m CONFIG_INTEL_RDT_A=y +CONFIG_INTEL_RDT=y CONFIG_INTEL_RST=m # CONFIG_INTEL_SCU_IPC is not set CONFIG_INTEL_SMARTCONNECT=y @@ -2211,7 +2229,7 @@ CONFIG_IP_DCCP_CCID2=m # CONFIG_IP_DCCP_CCID3_DEBUG is not set CONFIG_IP_DCCP_CCID3=y # CONFIG_IP_DCCP_DEBUG is not set -CONFIG_IP_DCCP=m +# CONFIG_IP_DCCP is not set CONFIG_IPDDP_ENCAP=y CONFIG_IPDDP=m CONFIG_IP_FIB_TRIE_STATS=y @@ -2338,6 +2356,7 @@ CONFIG_IRDA=m CONFIG_IR_ENE=m CONFIG_IR_FINTEK=m CONFIG_IR_GPIO_CIR=m +CONFIG_IR_GPIO_TX=m CONFIG_IR_HIX5HD2=m CONFIG_IR_IGORPLUGUSB=m CONFIG_IR_IGUANA=m @@ -2352,6 +2371,7 @@ CONFIG_IR_MCEUSB=m CONFIG_IR_NEC_DECODER=m CONFIG_IRNET=m CONFIG_IR_NUVOTON=m +CONFIG_IR_PWM_TX=m # CONFIG_IRQ_DOMAIN_DEBUG is not set # CONFIG_IRQSOFF_TRACER is not set CONFIG_IRQ_TIME_ACCOUNTING=y @@ -2585,6 +2605,7 @@ CONFIG_LCD_PLATFORM=m # CONFIG_LDM_DEBUG is not set CONFIG_LDM_PARTITION=y # CONFIG_LEDS_AAT1290 is not set +CONFIG_LEDS_AS3645A=m # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set # CONFIG_LEDS_BD2802 is not set @@ -2685,6 +2706,7 @@ CONFIG_LOAD_UEFI_KEYS=y CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_LOCKD=m +# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set CONFIG_LOCK_DOWN_KERNEL=y CONFIG_LOCKD_V4=y CONFIG_LOCK_STAT=y @@ -2709,6 +2731,7 @@ CONFIG_LPFC_NVME_INITIATOR=y CONFIG_LPFC_NVME_TARGET=y CONFIG_LSI_ET1011C_PHY=m CONFIG_LSM_MMAP_MIN_ADDR=65536 +# CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set # CONFIG_LTC2497 is not set # CONFIG_LTC2632 is not set @@ -2796,6 +2819,7 @@ CONFIG_MDIO_BITBANG=m # CONFIG_MDIO_BUS_MUX_MMIOREG is not set # CONFIG_MDIO_GPIO is not set # CONFIG_MDIO_HISI_FEMAC is not set +CONFIG_MDIO_I2C=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set CONFIG_MD_LINEAR=m @@ -2860,6 +2884,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_AXP20X_I2C is not set # CONFIG_MFD_AXP20X is not set # CONFIG_MFD_BCM590XX is not set +CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set # CONFIG_MFD_CROS_EC is not set @@ -2927,6 +2952,7 @@ CONFIG_MFD_SM501=m # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912 is not set # CONFIG_MFD_TPS65912_SPI is not set +CONFIG_MFD_TPS68470=y # CONFIG_MFD_TPS80031 is not set CONFIG_MFD_VIPERBOARD=m CONFIG_MFD_VX855=m @@ -2976,8 +3002,10 @@ CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_CORE_IPOIB=y CONFIG_MLX5_CORE=m # CONFIG_MLX5_EN_IPSEC is not set +CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set # CONFIG_MLX5_INFINIBAND is not set +CONFIG_MLX5_MPFS=y # CONFIG_MLX90614 is not set CONFIG_MLX_CPLD_PLATFORM=m CONFIG_MLXFW=m @@ -2998,7 +3026,6 @@ CONFIG_MMA7660=m # CONFIG_MMA9551 is not set # CONFIG_MMA9553 is not set # CONFIG_MMC35240 is not set -CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_CB710=m @@ -3359,6 +3386,7 @@ CONFIG_NETLABEL=y CONFIG_NETLINK_DIAG=m CONFIG_NET_MPLS_GSO=m CONFIG_NET_NCSI=y +CONFIG_NET_NSH=m CONFIG_NET_NS=y CONFIG_NET_PACKET_ENGINE=y CONFIG_NET_PKTGEN=m @@ -3428,6 +3456,7 @@ CONFIG_NET_VENDOR_EXAR=y # CONFIG_NET_VENDOR_FUJITSU is not set # CONFIG_NET_VENDOR_HISILICON is not set # CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_I825XX is not set CONFIG_NET_VENDOR_INTEL=y CONFIG_NET_VENDOR_MARVELL=y @@ -3589,6 +3618,7 @@ CONFIG_NFT_EXTHDR=m CONFIG_NFT_FIB_INET=m CONFIG_NFT_FIB_IPV4=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_HASH=m CONFIG_NFT_LIMIT=m @@ -3891,6 +3921,8 @@ CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PHONET is not set # CONFIG_PHY_CPCAP_USB is not set CONFIG_PHYLIB=y +CONFIG_PHYLINK=m +# CONFIG_PHY_MVEBU_CP110_COMPHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set # CONFIG_PHY_QCOM_USB_HSIC is not set @@ -3900,6 +3932,7 @@ CONFIG_PHYSICAL_START=0x400000 # CONFIG_PHY_ST_SPEAR1310_MIPHY is not set # CONFIG_PHY_ST_SPEAR1340_MIPHY is not set # CONFIG_PHY_TUSB1210 is not set +# CONFIG_PI433 is not set CONFIG_PID_NS=y CONFIG_PINCONF=y # CONFIG_PINCTRL_AMD is not set @@ -3907,10 +3940,15 @@ CONFIG_PINCTRL_BAYTRAIL=y CONFIG_PINCTRL_BROXTON=m # CONFIG_PINCTRL_CANNONLAKE is not set CONFIG_PINCTRL_CHERRYVIEW=y +CONFIG_PINCTRL_DENVERTON=m # CONFIG_PINCTRL_GEMINILAKE is not set # CONFIG_PINCTRL_IPQ8074 is not set +CONFIG_PINCTRL_LEWISBURG=m # CONFIG_PINCTRL_MCP23S08 is not set +CONFIG_PINCTRL_RK805=m # CONFIG_PINCTRL_SINGLE is not set +# CONFIG_PINCTRL_SPRD is not set +# CONFIG_PINCTRL_SPRD_SC9860 is not set CONFIG_PINCTRL_SUNRISEPOINT=m # CONFIG_PINCTRL_SX150X is not set CONFIG_PINCTRL=y @@ -3929,7 +3967,7 @@ CONFIG_PM_DEVFREQ=y # CONFIG_PMIC_ADP5520 is not set # CONFIG_PMIC_DA903X is not set CONFIG_PMIC_OPREGION=y -# CONFIG_PM_OPP is not set +CONFIG_PM_OPP=y CONFIG_PM_STD_PARTITION="" CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_TRACE_RTC=y @@ -4022,6 +4060,7 @@ CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000_SPI is not set # CONFIG_QCA7000_UART is not set # CONFIG_QCOM_EMAC is not set +# CONFIG_QCOM_GLINK_SSR is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set CONFIG_QEDE=m @@ -4051,6 +4090,7 @@ CONFIG_R8169=m # CONFIG_R8188EU is not set CONFIG_R8712U=m CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162) +CONFIG_R8822BE=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_AZTECH=m CONFIG_RADIO_CADET=m @@ -4119,6 +4159,7 @@ CONFIG_REALTEK_PHY=m CONFIG_REFCOUNT_FULL=y CONFIG_REGMAP_I2C=y CONFIG_REGMAP=y +CONFIG_REGULATOR_BD9571MWV=m # CONFIG_REGULATOR_DEBUG is not set # CONFIG_REGULATOR is not set # CONFIG_REGULATOR_TPS65132 is not set @@ -4133,6 +4174,8 @@ CONFIG_RELAY=y # CONFIG_RELOCATABLE_TEST is not set CONFIG_RELOCATABLE=y CONFIG_REMOTEPROC=m +CONFIG_RESET_ATTACK_MITIGATION=y +# CONFIG_RESET_HSDK_V1 is not set # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RFD_FTL is not set CONFIG_RFKILL_GPIO=m @@ -4152,6 +4195,8 @@ CONFIG_RMI4_F55=y CONFIG_RMI4_I2C=m CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m +# CONFIG_RMNET is not set +# CONFIG_ROCKCHIP_PHY is not set CONFIG_ROCKER=m CONFIG_ROCKETPORT=m CONFIG_ROMFS_FS=m @@ -4159,6 +4204,7 @@ CONFIG_ROSE=m CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPMSG_CHAR is not set # CONFIG_RPMSG_QCOM_GLINK_RPM is not set +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set CONFIG_RPR0521=m CONFIG_RSI_91X=m CONFIG_RSI_DEBUGFS=y @@ -4536,6 +4582,7 @@ CONFIG_SENSORS_HDAPS=m CONFIG_SENSORS_I5500=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_IBMAEM=m +# CONFIG_SENSORS_IBM_CFFPS is not set CONFIG_SENSORS_IBMPEX=m # CONFIG_SENSORS_IIO_HWMON is not set CONFIG_SENSORS_INA209=m @@ -4627,6 +4674,7 @@ CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_TPS40422=m +CONFIG_SENSORS_TPS53679=m CONFIG_SENSORS_TSL2550=m # CONFIG_SENSORS_TSL2563 is not set CONFIG_SENSORS_UCD9000=m @@ -4700,6 +4748,7 @@ CONFIG_SERIO_ALTERA_PS2=m # CONFIG_SERIO_APBPS2 is not set CONFIG_SERIO_ARC_PS2=m # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_GPIO_PS2 is not set CONFIG_SERIO_I8042=y CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_OLPC_APSP is not set @@ -4713,6 +4762,7 @@ CONFIG_SFC_FALCON=m CONFIG_SFC_FALCON_MTD=y # CONFIG_SFC is not set CONFIG_SFI=y +CONFIG_SFP=m # CONFIG_SGI_IOC4 is not set CONFIG_SGI_PARTITION=y CONFIG_SH_ETH=m @@ -4732,6 +4782,7 @@ CONFIG_SKGE_GENESIS=y CONFIG_SKGE=m # CONFIG_SKY2_DEBUG is not set CONFIG_SKY2=m +CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLICOSS is not set @@ -4776,7 +4827,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -CONFIG_SND_BCD2000=m +# CONFIG_SND_BCD2000 is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -4839,7 +4890,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=0 CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_HDA_RECONFIG=y @@ -4929,6 +4980,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set CONFIG_SND_SOC_DIO2125=m @@ -5016,6 +5068,7 @@ CONFIG_SND_SOC_SSM4567=m CONFIG_SND_SOC_TS3A227E=m # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set +CONFIG_SND_SOC_WM8524=m # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set @@ -5115,6 +5168,7 @@ CONFIG_SQUASHFS=m CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_ZSTD=y # CONFIG_SRAM is not set # CONFIG_SRF04 is not set # CONFIG_SRF08 is not set @@ -5149,6 +5203,7 @@ CONFIG_STMMAC_ETH=m # CONFIG_STMMAC_PLATFORM is not set # CONFIG_STM_SOURCE_CONSOLE is not set CONFIG_STRICT_DEVMEM=y +# CONFIG_STRING_SELFTEST is not set CONFIG_STRIP_ASM_SYMS=y # CONFIG_STRIP is not set CONFIG_SUNDANCE=m @@ -5978,6 +6033,7 @@ CONFIG_W1_SLAVE_DS2438=m CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS2805=m CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_THERM=m @@ -5997,6 +6053,7 @@ CONFIG_WATCHDOG=y CONFIG_WCN36XX=m CONFIG_WDAT_WDT=m CONFIG_WDTPCI=m +CONFIG_WIL6210_DEBUGFS=y CONFIG_WIL6210_ISR_COR=y CONFIG_WIL6210=m # CONFIG_WIL6210_TRACING is not set @@ -6119,6 +6176,7 @@ CONFIG_XEN_NETDEV_BACKEND=m CONFIG_XEN_NETDEV_FRONTEND=m CONFIG_XEN_PCIDEV_BACKEND=m CONFIG_XEN_PCIDEV_FRONTEND=m +# CONFIG_XEN_PVCALLS_BACKEND is not set CONFIG_XEN_PVHVM=y CONFIG_XEN_PVH=y CONFIG_XEN_PV=y @@ -6171,6 +6229,7 @@ CONFIG_ZLIB_INFLATE=y CONFIG_ZONE_DMA=y # CONFIG_ZPA2326 is not set CONFIG_ZRAM=m +# CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y CONFIG_ZSWAP=y diff --git a/kernel-i686.config b/kernel-i686.config index 323dc8e1c..6549136f6 100644 --- a/kernel-i686.config +++ b/kernel-i686.config @@ -197,7 +197,9 @@ CONFIG_ALI_FIR=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m # CONFIG_ALIX is not set +CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y # CONFIG_ALTERA_MBOX is not set +CONFIG_ALTERA_MSGDMA=m CONFIG_ALTERA_STAPL=m CONFIG_ALTERA_TSE=m CONFIG_ALX=m @@ -252,6 +254,7 @@ CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m CONFIG_ATH10K_SDIO=m # CONFIG_ATH10K_TRACING is not set +CONFIG_ATH10K_USB=m CONFIG_ATH5K_DEBUG=y CONFIG_ATH5K=m # CONFIG_ATH5K_TRACER is not set @@ -388,6 +391,7 @@ CONFIG_BATMAN_ADV_NC=y # CONFIG_BATTERY_LEGO_EV3 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set +# CONFIG_BATTERY_MAX1721X is not set CONFIG_BATTERY_OLPC=y # CONFIG_BATTERY_SBS is not set CONFIG_BAYCOM_EPP=m @@ -430,7 +434,6 @@ CONFIG_BINFMT_MISC=m CONFIG_BINFMT_SCRIPT=y CONFIG_BLK_CGROUP=y # CONFIG_BLK_CMDLINE_PARSER is not set -CONFIG_BLK_CPQ_CISS_DA=m CONFIG_BLK_DEBUG_FS=y CONFIG_BLK_DEV_3W_XXXX_RAID=m CONFIG_BLK_DEV_AMD74XX=y @@ -489,6 +492,7 @@ CONFIG_BNX2=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y CONFIG_BNXT_DCB=y +CONFIG_BNXT_FLOWER_OFFLOAD=y CONFIG_BNXT=m CONFIG_BNXT_SRIOV=y CONFIG_BONDING=m @@ -499,6 +503,7 @@ CONFIG_BONDING=m CONFIG_BOOT_PRINTK_DELAY=y CONFIG_BOUNCE=y CONFIG_BPF_JIT=y +CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m # CONFIG_BRCMDBG is not set @@ -658,11 +663,13 @@ CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set # CONFIG_CC10001_ADC is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +# CONFIG_CCS811 is not set CONFIG_CC_STACKPROTECTOR_STRONG=y CONFIG_CC_STACKPROTECTOR=y CONFIG_CDROM_PKTCDVD_BUFFERS=8 CONFIG_CDROM_PKTCDVD=m # CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEC_PIN=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_CEPH_FSCACHE=y CONFIG_CEPH_FS=m @@ -740,9 +747,10 @@ CONFIG_CIFS_STATS=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_XATTR=y -CONFIG_CISS_SCSI_TAPE=y CONFIG_CLEANCACHE=y +# CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_CLOCK_THERMAL is not set CONFIG_CLS_U32_MARK=y CONFIG_CLS_U32_PERF=y CONFIG_CM32181=m @@ -860,6 +868,7 @@ CONFIG_CRYPTO_DEV_QAT_C62X=m CONFIG_CRYPTO_DEV_QAT_C62XVF=m CONFIG_CRYPTO_DEV_QAT_DH895xCC=m CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m +# CONFIG_CRYPTO_DEV_SP_CCP is not set CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DH=y CONFIG_CRYPTO_DRBG_CTR=y @@ -1024,6 +1033,7 @@ CONFIG_DEV_APPLETALK=m # CONFIG_DEVFREQ_GOV_POWERSAVE is not set CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m # CONFIG_DEVFREQ_GOV_USERSPACE is not set +# CONFIG_DEVFREQ_THERMAL is not set # CONFIG_DEVKMEM is not set CONFIG_DEVMEM=y CONFIG_DEVPORT=y @@ -1081,7 +1091,7 @@ CONFIG_DNS_RESOLVER=m CONFIG_DONGLE=y CONFIG_DP83640_PHY=m CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m +# CONFIG_DP83867_PHY is not set # CONFIG_DPM_WATCHDOG is not set # revisit this in debug CONFIG_DPOT_DAC=m CONFIG_DPTF_POWER=m @@ -1196,6 +1206,7 @@ CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_CORE=m # CONFIG_DVB_CXD2099 is not set CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set CONFIG_DVB_DM1105=m CONFIG_DVB_DYNAMIC_MINORS=y @@ -1589,6 +1600,7 @@ CONFIG_GIRBIL_DONGLE=m # CONFIG_GPIO_ALTERA is not set # CONFIG_GPIO_AMD8111 is not set # CONFIG_GPIO_AMDPT is not set +CONFIG_GPIO_BD9571MWV=m # CONFIG_GPIO_BT8XX is not set CONFIG_GPIO_CRYSTAL_COVE=y CONFIG_GPIO_CS5535=y @@ -1624,6 +1636,7 @@ CONFIG_GPIO_SCH=m # CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_SYSFS is not set # CONFIG_GPIO_TPIC2810 is not set +CONFIG_GPIO_TPS68470=y # CONFIG_GPIO_TS4900 is not set # CONFIG_GPIO_TS5500 is not set CONFIG_GPIO_VIPERBOARD=m @@ -1857,6 +1870,7 @@ CONFIG_HYPERV=m CONFIG_HYPERV_NET=m CONFIG_HYPERV_STORAGE=m CONFIG_HYPERV_UTILS=m +CONFIG_HYPERV_VSOCKETS=m CONFIG_HYSDN_CAPI=y CONFIG_HYSDN=m CONFIG_HZ_1000=y @@ -2028,6 +2042,7 @@ CONFIG_INET=y # CONFIG_INFINIBAND_CXGB3_DEBUG is not set CONFIG_INFINIBAND_CXGB3=m CONFIG_INFINIBAND_CXGB4=m +# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set CONFIG_INFINIBAND_I40IW=m CONFIG_INFINIBAND_IPOIB_CM=y CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y @@ -2102,7 +2117,9 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_PWM_BEEPER=m +# CONFIG_INPUT_PWM_VIBRA is not set CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_RK805_PWRKEY=m CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_INPUT_SPARSEKMAP=m CONFIG_INPUT_TABLET=y @@ -2142,6 +2159,7 @@ CONFIG_INTEL_POWERCLAMP=m CONFIG_INTEL_PUNIT_IPC=m CONFIG_INTEL_RAPL=m CONFIG_INTEL_RDT_A=y +CONFIG_INTEL_RDT=y CONFIG_INTEL_RST=m # CONFIG_INTEL_SCU_IPC is not set CONFIG_INTEL_SMARTCONNECT=y @@ -2193,7 +2211,7 @@ CONFIG_IP_DCCP_CCID2=m # CONFIG_IP_DCCP_CCID3_DEBUG is not set CONFIG_IP_DCCP_CCID3=y # CONFIG_IP_DCCP_DEBUG is not set -CONFIG_IP_DCCP=m +# CONFIG_IP_DCCP is not set CONFIG_IPDDP_ENCAP=y CONFIG_IPDDP=m CONFIG_IP_FIB_TRIE_STATS=y @@ -2320,6 +2338,7 @@ CONFIG_IRDA=m CONFIG_IR_ENE=m CONFIG_IR_FINTEK=m CONFIG_IR_GPIO_CIR=m +CONFIG_IR_GPIO_TX=m CONFIG_IR_HIX5HD2=m CONFIG_IR_IGORPLUGUSB=m CONFIG_IR_IGUANA=m @@ -2334,6 +2353,7 @@ CONFIG_IR_MCEUSB=m CONFIG_IR_NEC_DECODER=m CONFIG_IRNET=m CONFIG_IR_NUVOTON=m +CONFIG_IR_PWM_TX=m # CONFIG_IRQ_DOMAIN_DEBUG is not set # CONFIG_IRQSOFF_TRACER is not set CONFIG_IRQ_TIME_ACCOUNTING=y @@ -2565,6 +2585,7 @@ CONFIG_LCD_PLATFORM=m # CONFIG_LDM_DEBUG is not set CONFIG_LDM_PARTITION=y # CONFIG_LEDS_AAT1290 is not set +CONFIG_LEDS_AS3645A=m # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set # CONFIG_LEDS_BD2802 is not set @@ -2665,6 +2686,7 @@ CONFIG_LOAD_UEFI_KEYS=y CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_LOCKD=m +# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set CONFIG_LOCK_DOWN_KERNEL=y CONFIG_LOCKD_V4=y # CONFIG_LOCK_STAT is not set @@ -2689,6 +2711,7 @@ CONFIG_LPFC_NVME_INITIATOR=y CONFIG_LPFC_NVME_TARGET=y CONFIG_LSI_ET1011C_PHY=m CONFIG_LSM_MMAP_MIN_ADDR=65536 +# CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set # CONFIG_LTC2497 is not set # CONFIG_LTC2632 is not set @@ -2752,7 +2775,7 @@ CONFIG_MAX30100=m # CONFIG_MAX9611 is not set # CONFIG_MAXIM_THERMOCOUPLE is not set CONFIG_MAX_RAW_DEVS=8192 -CONFIG_MAXSMP=y +# CONFIG_MAXSMP is not set # CONFIG_MC3230 is not set # CONFIG_MCB is not set # CONFIG_MCE_AMD_INJ is not set @@ -2776,6 +2799,7 @@ CONFIG_MDIO_BITBANG=m # CONFIG_MDIO_BUS_MUX_MMIOREG is not set # CONFIG_MDIO_GPIO is not set # CONFIG_MDIO_HISI_FEMAC is not set +CONFIG_MDIO_I2C=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set CONFIG_MD_LINEAR=m @@ -2840,6 +2864,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_AXP20X_I2C is not set # CONFIG_MFD_AXP20X is not set # CONFIG_MFD_BCM590XX is not set +CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set # CONFIG_MFD_CROS_EC is not set @@ -2907,6 +2932,7 @@ CONFIG_MFD_SM501=m # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912 is not set # CONFIG_MFD_TPS65912_SPI is not set +CONFIG_MFD_TPS68470=y # CONFIG_MFD_TPS80031 is not set CONFIG_MFD_VIPERBOARD=m CONFIG_MFD_VX855=m @@ -2956,8 +2982,10 @@ CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_CORE_IPOIB=y CONFIG_MLX5_CORE=m # CONFIG_MLX5_EN_IPSEC is not set +CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set # CONFIG_MLX5_INFINIBAND is not set +CONFIG_MLX5_MPFS=y # CONFIG_MLX90614 is not set CONFIG_MLX_CPLD_PLATFORM=m CONFIG_MLXFW=m @@ -2978,7 +3006,6 @@ CONFIG_MMA7660=m # CONFIG_MMA9551 is not set # CONFIG_MMA9553 is not set # CONFIG_MMC35240 is not set -CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_CB710=m @@ -3339,6 +3366,7 @@ CONFIG_NETLABEL=y CONFIG_NETLINK_DIAG=m CONFIG_NET_MPLS_GSO=m CONFIG_NET_NCSI=y +CONFIG_NET_NSH=m CONFIG_NET_NS=y CONFIG_NET_PACKET_ENGINE=y CONFIG_NET_PKTGEN=m @@ -3408,6 +3436,7 @@ CONFIG_NET_VENDOR_EXAR=y # CONFIG_NET_VENDOR_FUJITSU is not set # CONFIG_NET_VENDOR_HISILICON is not set # CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_I825XX is not set CONFIG_NET_VENDOR_INTEL=y CONFIG_NET_VENDOR_MARVELL=y @@ -3569,6 +3598,7 @@ CONFIG_NFT_EXTHDR=m CONFIG_NFT_FIB_INET=m CONFIG_NFT_FIB_IPV4=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_HASH=m CONFIG_NFT_LIMIT=m @@ -3871,6 +3901,8 @@ CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PHONET is not set # CONFIG_PHY_CPCAP_USB is not set CONFIG_PHYLIB=y +CONFIG_PHYLINK=m +# CONFIG_PHY_MVEBU_CP110_COMPHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set # CONFIG_PHY_QCOM_USB_HSIC is not set @@ -3880,6 +3912,7 @@ CONFIG_PHYSICAL_START=0x400000 # CONFIG_PHY_ST_SPEAR1310_MIPHY is not set # CONFIG_PHY_ST_SPEAR1340_MIPHY is not set # CONFIG_PHY_TUSB1210 is not set +# CONFIG_PI433 is not set CONFIG_PID_NS=y CONFIG_PINCONF=y # CONFIG_PINCTRL_AMD is not set @@ -3887,10 +3920,15 @@ CONFIG_PINCTRL_BAYTRAIL=y CONFIG_PINCTRL_BROXTON=m # CONFIG_PINCTRL_CANNONLAKE is not set CONFIG_PINCTRL_CHERRYVIEW=y +CONFIG_PINCTRL_DENVERTON=m # CONFIG_PINCTRL_GEMINILAKE is not set # CONFIG_PINCTRL_IPQ8074 is not set +CONFIG_PINCTRL_LEWISBURG=m # CONFIG_PINCTRL_MCP23S08 is not set +CONFIG_PINCTRL_RK805=m # CONFIG_PINCTRL_SINGLE is not set +# CONFIG_PINCTRL_SPRD is not set +# CONFIG_PINCTRL_SPRD_SC9860 is not set CONFIG_PINCTRL_SUNRISEPOINT=m # CONFIG_PINCTRL_SX150X is not set CONFIG_PINCTRL=y @@ -3909,7 +3947,7 @@ CONFIG_PM_DEVFREQ=y # CONFIG_PMIC_ADP5520 is not set # CONFIG_PMIC_DA903X is not set CONFIG_PMIC_OPREGION=y -# CONFIG_PM_OPP is not set +CONFIG_PM_OPP=y CONFIG_PM_STD_PARTITION="" CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_TRACE_RTC=y @@ -4001,6 +4039,7 @@ CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000_SPI is not set # CONFIG_QCA7000_UART is not set # CONFIG_QCOM_EMAC is not set +# CONFIG_QCOM_GLINK_SSR is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set CONFIG_QEDE=m @@ -4030,6 +4069,7 @@ CONFIG_R8169=m # CONFIG_R8188EU is not set CONFIG_R8712U=m CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162) +CONFIG_R8822BE=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_AZTECH=m CONFIG_RADIO_CADET=m @@ -4098,6 +4138,7 @@ CONFIG_REALTEK_PHY=m # CONFIG_REFCOUNT_FULL is not set CONFIG_REGMAP_I2C=y CONFIG_REGMAP=y +CONFIG_REGULATOR_BD9571MWV=m # CONFIG_REGULATOR_DEBUG is not set # CONFIG_REGULATOR is not set # CONFIG_REGULATOR_TPS65132 is not set @@ -4112,6 +4153,8 @@ CONFIG_RELAY=y # CONFIG_RELOCATABLE_TEST is not set CONFIG_RELOCATABLE=y CONFIG_REMOTEPROC=m +CONFIG_RESET_ATTACK_MITIGATION=y +# CONFIG_RESET_HSDK_V1 is not set # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RFD_FTL is not set CONFIG_RFKILL_GPIO=m @@ -4131,6 +4174,8 @@ CONFIG_RMI4_F55=y CONFIG_RMI4_I2C=m CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m +# CONFIG_RMNET is not set +# CONFIG_ROCKCHIP_PHY is not set CONFIG_ROCKER=m CONFIG_ROCKETPORT=m CONFIG_ROMFS_FS=m @@ -4138,6 +4183,7 @@ CONFIG_ROSE=m CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPMSG_CHAR is not set # CONFIG_RPMSG_QCOM_GLINK_RPM is not set +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set CONFIG_RPR0521=m CONFIG_RSI_91X=m CONFIG_RSI_DEBUGFS=y @@ -4515,6 +4561,7 @@ CONFIG_SENSORS_HDAPS=m CONFIG_SENSORS_I5500=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_IBMAEM=m +# CONFIG_SENSORS_IBM_CFFPS is not set CONFIG_SENSORS_IBMPEX=m # CONFIG_SENSORS_IIO_HWMON is not set CONFIG_SENSORS_INA209=m @@ -4606,6 +4653,7 @@ CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_TPS40422=m +CONFIG_SENSORS_TPS53679=m CONFIG_SENSORS_TSL2550=m # CONFIG_SENSORS_TSL2563 is not set CONFIG_SENSORS_UCD9000=m @@ -4679,6 +4727,7 @@ CONFIG_SERIO_ALTERA_PS2=m # CONFIG_SERIO_APBPS2 is not set CONFIG_SERIO_ARC_PS2=m # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_GPIO_PS2 is not set CONFIG_SERIO_I8042=y CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_OLPC_APSP is not set @@ -4692,6 +4741,7 @@ CONFIG_SFC_FALCON=m CONFIG_SFC_FALCON_MTD=y # CONFIG_SFC is not set CONFIG_SFI=y +CONFIG_SFP=m # CONFIG_SGI_IOC4 is not set CONFIG_SGI_PARTITION=y CONFIG_SH_ETH=m @@ -4711,6 +4761,7 @@ CONFIG_SKGE_GENESIS=y CONFIG_SKGE=m # CONFIG_SKY2_DEBUG is not set CONFIG_SKY2=m +CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLICOSS is not set @@ -4755,7 +4806,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -CONFIG_SND_BCD2000=m +# CONFIG_SND_BCD2000 is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -4818,7 +4869,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=0 CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_HDA_RECONFIG=y @@ -4907,6 +4958,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set CONFIG_SND_SOC_DIO2125=m @@ -4994,6 +5046,7 @@ CONFIG_SND_SOC_SSM4567=m CONFIG_SND_SOC_TS3A227E=m # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set +CONFIG_SND_SOC_WM8524=m # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set @@ -5093,6 +5146,7 @@ CONFIG_SQUASHFS=m CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_ZSTD=y # CONFIG_SRAM is not set # CONFIG_SRF04 is not set # CONFIG_SRF08 is not set @@ -5127,6 +5181,7 @@ CONFIG_STMMAC_ETH=m # CONFIG_STMMAC_PLATFORM is not set # CONFIG_STM_SOURCE_CONSOLE is not set CONFIG_STRICT_DEVMEM=y +# CONFIG_STRING_SELFTEST is not set CONFIG_STRIP_ASM_SYMS=y # CONFIG_STRIP is not set CONFIG_SUNDANCE=m @@ -5956,6 +6011,7 @@ CONFIG_W1_SLAVE_DS2438=m CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS2805=m CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_THERM=m @@ -5975,6 +6031,7 @@ CONFIG_WATCHDOG=y CONFIG_WCN36XX=m CONFIG_WDAT_WDT=m CONFIG_WDTPCI=m +CONFIG_WIL6210_DEBUGFS=y CONFIG_WIL6210_ISR_COR=y CONFIG_WIL6210=m # CONFIG_WIL6210_TRACING is not set @@ -6097,6 +6154,7 @@ CONFIG_XEN_NETDEV_BACKEND=m CONFIG_XEN_NETDEV_FRONTEND=m CONFIG_XEN_PCIDEV_BACKEND=m CONFIG_XEN_PCIDEV_FRONTEND=m +# CONFIG_XEN_PVCALLS_BACKEND is not set CONFIG_XEN_PVHVM=y CONFIG_XEN_PVH=y CONFIG_XEN_PV=y @@ -6149,6 +6207,7 @@ CONFIG_ZLIB_INFLATE=y CONFIG_ZONE_DMA=y # CONFIG_ZPA2326 is not set CONFIG_ZRAM=m +# CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y CONFIG_ZSWAP=y diff --git a/kernel-ppc64-debug.config b/kernel-ppc64-debug.config index 0c7047250..06bb87cad 100644 --- a/kernel-ppc64-debug.config +++ b/kernel-ppc64-debug.config @@ -153,7 +153,9 @@ CONFIG_AIX_PARTITION=y CONFIG_ALI_FIR=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y # CONFIG_ALTERA_MBOX is not set +CONFIG_ALTERA_MSGDMA=m CONFIG_ALTERA_STAPL=m CONFIG_ALTERA_TSE=m CONFIG_ALTIVEC=y @@ -201,6 +203,7 @@ CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m CONFIG_ATH10K_SDIO=m # CONFIG_ATH10K_TRACING is not set +CONFIG_ATH10K_USB=m CONFIG_ATH5K_DEBUG=y CONFIG_ATH5K=m # CONFIG_ATH5K_TRACER is not set @@ -336,6 +339,7 @@ CONFIG_BATMAN_ADV_NC=y # CONFIG_BATTERY_LEGO_EV3 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set +# CONFIG_BATTERY_MAX1721X is not set # CONFIG_BATTERY_SBS is not set CONFIG_BAYCOM_EPP=m CONFIG_BAYCOM_PAR=m @@ -377,7 +381,6 @@ CONFIG_BINFMT_MISC=m CONFIG_BINFMT_SCRIPT=y CONFIG_BLK_CGROUP=y # CONFIG_BLK_CMDLINE_PARSER is not set -CONFIG_BLK_CPQ_CISS_DA=m CONFIG_BLK_DEBUG_FS=y CONFIG_BLK_DEV_3W_XXXX_RAID=m # CONFIG_BLK_DEV_AEC62XX is not set @@ -474,6 +477,7 @@ CONFIG_BNX2=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y CONFIG_BNXT_DCB=y +CONFIG_BNXT_FLOWER_OFFLOAD=y CONFIG_BNXT=m CONFIG_BNXT_SRIOV=y CONFIG_BONDING=m @@ -485,6 +489,7 @@ CONFIG_BOOT_PRINTK_DELAY=y CONFIG_BOOTX_TEXT=y CONFIG_BOUNCE=y CONFIG_BPF_JIT=y +CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m # CONFIG_BRCMDBG is not set @@ -646,9 +651,11 @@ CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set # CONFIG_CC10001_ADC is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +# CONFIG_CCS811 is not set CONFIG_CDROM_PKTCDVD_BUFFERS=8 CONFIG_CDROM_PKTCDVD=m # CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEC_PIN=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_CEPH_FSCACHE=y CONFIG_CEPH_FS=m @@ -724,9 +731,10 @@ CONFIG_CIFS_STATS=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_XATTR=y -CONFIG_CISS_SCSI_TAPE=y CONFIG_CLEANCACHE=y +# CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_CLOCK_THERMAL is not set CONFIG_CLS_U32_MARK=y CONFIG_CLS_U32_PERF=y CONFIG_CM32181=m @@ -840,6 +848,7 @@ CONFIG_CRYPTO_DEV_NX_COMPRESS_POWERNV=m CONFIG_CRYPTO_DEV_NX_COMPRESS_PSERIES=m CONFIG_CRYPTO_DEV_NX_ENCRYPT=m CONFIG_CRYPTO_DEV_NX=y +# CONFIG_CRYPTO_DEV_SP_CCP is not set CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DEV_VMX_ENCRYPT=m CONFIG_CRYPTO_DEV_VMX=y @@ -1005,6 +1014,7 @@ CONFIG_DEV_DAX_PMEM=m # CONFIG_DEVFREQ_GOV_POWERSAVE is not set CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m # CONFIG_DEVFREQ_GOV_USERSPACE is not set +# CONFIG_DEVFREQ_THERMAL is not set # CONFIG_DEVKMEM is not set CONFIG_DEVMEM=y CONFIG_DEVPORT=y @@ -1061,7 +1071,7 @@ CONFIG_DNS_RESOLVER=m CONFIG_DONGLE=y CONFIG_DP83640_PHY=m CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m +# CONFIG_DP83867_PHY is not set # CONFIG_DPM_WATCHDOG is not set # revisit this in debug CONFIG_DPOT_DAC=m CONFIG_DRAGONRISE_FF=y @@ -1162,6 +1172,7 @@ CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_CORE=m # CONFIG_DVB_CXD2099 is not set CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set CONFIG_DVB_DM1105=m CONFIG_DVB_DYNAMIC_MINORS=y @@ -1522,6 +1533,7 @@ CONFIG_GIRBIL_DONGLE=m # CONFIG_GPIO_ADP5588 is not set # CONFIG_GPIO_ALTERA is not set # CONFIG_GPIO_AMDPT is not set +CONFIG_GPIO_BD9571MWV=m # CONFIG_GPIO_BT8XX is not set # CONFIG_GPIO_DWAPB is not set CONFIG_GPIO_EXAR=m @@ -1548,6 +1560,7 @@ CONFIG_GPIO_PCI_IDIO_16=m # CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_SYSFS is not set # CONFIG_GPIO_TPIC2810 is not set +CONFIG_GPIO_TPS68470=y # CONFIG_GPIO_TS4900 is not set # CONFIG_GPIO_TS5500 is not set # CONFIG_GPIO_UCB1400 is not set @@ -1941,6 +1954,7 @@ CONFIG_INET=y # CONFIG_INFINIBAND_CXGB3_DEBUG is not set CONFIG_INFINIBAND_CXGB3=m CONFIG_INFINIBAND_CXGB4=m +# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set CONFIG_INFINIBAND_I40IW=m CONFIG_INFINIBAND_IPOIB_CM=y CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y @@ -2015,7 +2029,9 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_PWM_BEEPER=m +# CONFIG_INPUT_PWM_VIBRA is not set CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_RK805_PWRKEY=m CONFIG_INPUT_SPARSEKMAP=m CONFIG_INPUT_TABLET=y CONFIG_INPUT_TOUCHSCREEN=y @@ -2068,7 +2084,7 @@ CONFIG_IP_DCCP_CCID2=m # CONFIG_IP_DCCP_CCID3_DEBUG is not set CONFIG_IP_DCCP_CCID3=y # CONFIG_IP_DCCP_DEBUG is not set -CONFIG_IP_DCCP=m +# CONFIG_IP_DCCP is not set CONFIG_IPDDP_ENCAP=y CONFIG_IPDDP=m CONFIG_IP_FIB_TRIE_STATS=y @@ -2191,6 +2207,7 @@ CONFIG_IRDA=m CONFIG_IR_ENE=m CONFIG_IR_FINTEK=m CONFIG_IR_GPIO_CIR=m +CONFIG_IR_GPIO_TX=m CONFIG_IR_HIX5HD2=m CONFIG_IR_IGORPLUGUSB=m CONFIG_IR_IGUANA=m @@ -2205,6 +2222,7 @@ CONFIG_IR_MCEUSB=m CONFIG_IR_NEC_DECODER=m CONFIG_IRNET=m CONFIG_IR_NUVOTON=m +CONFIG_IR_PWM_TX=m CONFIG_IRQ_ALL_CPUS=y # CONFIG_IRQ_DOMAIN_DEBUG is not set # CONFIG_IRQSOFF_TRACER is not set @@ -2437,6 +2455,7 @@ CONFIG_LCD_PLATFORM=m # CONFIG_LDM_DEBUG is not set CONFIG_LDM_PARTITION=y # CONFIG_LEDS_AAT1290 is not set +CONFIG_LEDS_AS3645A=m # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set # CONFIG_LEDS_BD2802 is not set @@ -2535,6 +2554,7 @@ CONFIG_LMP91000=m CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_LOCKD=m +# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set # CONFIG_LOCK_DOWN_KERNEL is not set CONFIG_LOCKD_V4=y CONFIG_LOCK_STAT=y @@ -2560,6 +2580,7 @@ CONFIG_LPFC_NVME_INITIATOR=y CONFIG_LPFC_NVME_TARGET=y CONFIG_LSI_ET1011C_PHY=m CONFIG_LSM_MMAP_MIN_ADDR=65536 +# CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set # CONFIG_LTC2497 is not set # CONFIG_LTC2632 is not set @@ -2641,6 +2662,7 @@ CONFIG_MDIO_BITBANG=m # CONFIG_MDIO_BUS_MUX_MMIOREG is not set CONFIG_MDIO_GPIO=m # CONFIG_MDIO_HISI_FEMAC is not set +CONFIG_MDIO_I2C=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set CONFIG_MD_LINEAR=m @@ -2709,6 +2731,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_AXP20X_I2C is not set # CONFIG_MFD_AXP20X is not set # CONFIG_MFD_BCM590XX is not set +CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=m # CONFIG_MFD_CPCAP is not set # CONFIG_MFD_CROS_EC is not set @@ -2773,6 +2796,7 @@ CONFIG_MFD_SM501=m # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912 is not set # CONFIG_MFD_TPS65912_SPI is not set +CONFIG_MFD_TPS68470=y # CONFIG_MFD_TPS80031 is not set CONFIG_MFD_VIPERBOARD=m CONFIG_MFD_VX855=m @@ -2817,8 +2841,10 @@ CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_CORE_IPOIB=y CONFIG_MLX5_CORE=m # CONFIG_MLX5_EN_IPSEC is not set +CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set CONFIG_MLX5_INFINIBAND=m +CONFIG_MLX5_MPFS=y # CONFIG_MLX90614 is not set CONFIG_MLX_CPLD_PLATFORM=m CONFIG_MLXFW=m @@ -2839,7 +2865,6 @@ CONFIG_MMA7660=m # CONFIG_MMA9551 is not set # CONFIG_MMA9553 is not set # CONFIG_MMC35240 is not set -CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_CB710=m @@ -3185,6 +3210,7 @@ CONFIG_NETLABEL=y CONFIG_NETLINK_DIAG=m CONFIG_NET_MPLS_GSO=m CONFIG_NET_NCSI=y +CONFIG_NET_NSH=m CONFIG_NET_NS=y CONFIG_NET_PACKET_ENGINE=y CONFIG_NET_PKTGEN=m @@ -3253,6 +3279,7 @@ CONFIG_NET_VENDOR_EXAR=y # CONFIG_NET_VENDOR_FUJITSU is not set # CONFIG_NET_VENDOR_HISILICON is not set # CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_I825XX is not set CONFIG_NET_VENDOR_IBM=y CONFIG_NET_VENDOR_INTEL=y @@ -3415,6 +3442,7 @@ CONFIG_NFT_EXTHDR=m CONFIG_NFT_FIB_INET=m CONFIG_NFT_FIB_IPV4=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_HASH=m CONFIG_NFT_LIMIT=m @@ -3683,6 +3711,8 @@ CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PHONET is not set # CONFIG_PHY_CPCAP_USB is not set CONFIG_PHYLIB=y +CONFIG_PHYLINK=m +# CONFIG_PHY_MVEBU_CP110_COMPHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set # CONFIG_PHY_QCOM_USB_HSIC is not set @@ -3690,12 +3720,16 @@ CONFIG_PHYLIB=y # CONFIG_PHY_ST_SPEAR1310_MIPHY is not set # CONFIG_PHY_ST_SPEAR1340_MIPHY is not set # CONFIG_PHY_TUSB1210 is not set +# CONFIG_PI433 is not set CONFIG_PID_NS=y # CONFIG_PINCONF is not set # CONFIG_PINCTRL_CANNONLAKE is not set # CONFIG_PINCTRL_IPQ8074 is not set # CONFIG_PINCTRL is not set # CONFIG_PINCTRL_MCP23S08 is not set +CONFIG_PINCTRL_RK805=m +# CONFIG_PINCTRL_SPRD is not set +# CONFIG_PINCTRL_SPRD_SC9860 is not set # CONFIG_PINCTRL_SX150X is not set # CONFIG_PINMUX is not set CONFIG_PKCS7_MESSAGE_PARSER=y @@ -3715,7 +3749,7 @@ CONFIG_PM_DEBUG=y CONFIG_PM_DEVFREQ=y # CONFIG_PMIC_ADP5520 is not set # CONFIG_PMIC_DA903X is not set -# CONFIG_PM_OPP is not set +CONFIG_PM_OPP=y CONFIG_PM_STD_PARTITION="" CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_TRACE_RTC=y @@ -3760,6 +3794,7 @@ CONFIG_PPC_EMULATED_STATS=y # CONFIG_PPC_ICSWX_USE_SIGILL is not set CONFIG_PPC_ICSWX=y CONFIG_PPC_MAPLE=y +# CONFIG_PPC_MEMTRACE is not set # CONFIG_PPC_MPC5200_LPBFIFO is not set CONFIG_PPC_OF_BOOT_TRAMPOLINE=y # CONFIG_PPC_PASEMI is not set @@ -3774,6 +3809,7 @@ CONFIG_PPC_SMLPAR=y CONFIG_PPC_SPLPAR=y CONFIG_PPC_SUBPAGE_PROT=y CONFIG_PPC_TRANSACTIONAL_MEM=y +CONFIG_PPC_VAS=y CONFIG_PPC=y CONFIG_PPDEV=m CONFIG_PPP_ASYNC=m @@ -3836,6 +3872,7 @@ CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000_SPI is not set # CONFIG_QCA7000_UART is not set # CONFIG_QCOM_EMAC is not set +# CONFIG_QCOM_GLINK_SSR is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set CONFIG_QEDE=m @@ -3865,6 +3902,7 @@ CONFIG_R8169=m # CONFIG_R8188EU is not set CONFIG_R8712U=m CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162) +CONFIG_R8822BE=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_AZTECH=m CONFIG_RADIO_CADET=m @@ -3932,6 +3970,7 @@ CONFIG_REALTEK_PHY=m CONFIG_REFCOUNT_FULL=y CONFIG_REGMAP_I2C=m CONFIG_REGMAP=y +CONFIG_REGULATOR_BD9571MWV=m # CONFIG_REGULATOR_DEBUG is not set # CONFIG_REGULATOR is not set # CONFIG_REGULATOR_TPS65132 is not set @@ -3946,6 +3985,8 @@ CONFIG_RELAY=y # CONFIG_RELOCATABLE_TEST is not set CONFIG_RELOCATABLE=y CONFIG_REMOTEPROC=m +CONFIG_RESET_ATTACK_MITIGATION=y +# CONFIG_RESET_HSDK_V1 is not set # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RFD_FTL is not set CONFIG_RFKILL_GPIO=m @@ -3965,6 +4006,8 @@ CONFIG_RMI4_F55=y CONFIG_RMI4_I2C=m CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m +# CONFIG_RMNET is not set +# CONFIG_ROCKCHIP_PHY is not set CONFIG_ROCKER=m CONFIG_ROCKETPORT=m CONFIG_ROMFS_FS=m @@ -3972,6 +4015,7 @@ CONFIG_ROSE=m CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPMSG_CHAR is not set # CONFIG_RPMSG_QCOM_GLINK_RPM is not set +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set CONFIG_RPR0521=m CONFIG_RSI_91X=m CONFIG_RSI_DEBUGFS=y @@ -4343,6 +4387,7 @@ CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBM_CFFPS=m CONFIG_SENSORS_IBMPEX=m CONFIG_SENSORS_IBMPOWERNV=y # CONFIG_SENSORS_IIO_HWMON is not set @@ -4433,6 +4478,7 @@ CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_TPS40422=m +CONFIG_SENSORS_TPS53679=m CONFIG_SENSORS_TSL2550=m # CONFIG_SENSORS_TSL2563 is not set CONFIG_SENSORS_UCD9000=m @@ -4508,6 +4554,7 @@ CONFIG_SERIO_ALTERA_PS2=m # CONFIG_SERIO_APBPS2 is not set CONFIG_SERIO_ARC_PS2=m # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_GPIO_PS2 is not set CONFIG_SERIO_I8042=y CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_OLPC_APSP is not set @@ -4521,6 +4568,7 @@ CONFIG_SERIO=y CONFIG_SFC_FALCON=m CONFIG_SFC_FALCON_MTD=y # CONFIG_SFC is not set +CONFIG_SFP=m # CONFIG_SGI_IOC4 is not set CONFIG_SGI_PARTITION=y CONFIG_SH_ETH=m @@ -4540,6 +4588,7 @@ CONFIG_SKGE_GENESIS=y CONFIG_SKGE=m # CONFIG_SKY2_DEBUG is not set CONFIG_SKY2=m +CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLICOSS is not set @@ -4590,7 +4639,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -CONFIG_SND_BCD2000=m +# CONFIG_SND_BCD2000 is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -4653,7 +4702,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=0 CONFIG_SND_HDA_INPUT_BEEP=y # CONFIG_SND_HDA_INTEL is not set CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_HDA_RECONFIG=y @@ -4745,6 +4794,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set CONFIG_SND_SOC_DIO2125=m @@ -4807,6 +4857,7 @@ CONFIG_SND_SOC_SPDIF=m # CONFIG_SND_SOC_TS3A227E is not set # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set +CONFIG_SND_SOC_WM8524=m # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set @@ -4901,6 +4952,7 @@ CONFIG_SQUASHFS=m CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_ZSTD=y # CONFIG_SRAM is not set # CONFIG_SRF04 is not set # CONFIG_SRF08 is not set @@ -4934,6 +4986,7 @@ CONFIG_STMMAC_ETH=m # CONFIG_STMMAC_PLATFORM is not set # CONFIG_STM_SOURCE_CONSOLE is not set CONFIG_STRICT_DEVMEM=y +# CONFIG_STRING_SELFTEST is not set CONFIG_STRIP_ASM_SYMS=y # CONFIG_STRIP is not set CONFIG_SUNDANCE=m @@ -5748,6 +5801,7 @@ CONFIG_W1_SLAVE_DS2438=m CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS2805=m CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_THERM=m @@ -5768,6 +5822,7 @@ CONFIG_WATCHDOG=y CONFIG_WCN36XX=m CONFIG_WDAT_WDT=m CONFIG_WDTPCI=m +CONFIG_WIL6210_DEBUGFS=y CONFIG_WIL6210_ISR_COR=y CONFIG_WIL6210=m # CONFIG_WIL6210_TRACING is not set @@ -5869,6 +5924,7 @@ CONFIG_ZLIB_INFLATE=y # CONFIG_ZONE_DEVICE is not set # CONFIG_ZPA2326 is not set CONFIG_ZRAM=m +# CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y CONFIG_ZSWAP=y diff --git a/kernel-ppc64.config b/kernel-ppc64.config index 1d697184b..e6e9c4e43 100644 --- a/kernel-ppc64.config +++ b/kernel-ppc64.config @@ -153,7 +153,9 @@ CONFIG_AIX_PARTITION=y CONFIG_ALI_FIR=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y # CONFIG_ALTERA_MBOX is not set +CONFIG_ALTERA_MSGDMA=m CONFIG_ALTERA_STAPL=m CONFIG_ALTERA_TSE=m CONFIG_ALTIVEC=y @@ -200,6 +202,7 @@ CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m CONFIG_ATH10K_SDIO=m # CONFIG_ATH10K_TRACING is not set +CONFIG_ATH10K_USB=m CONFIG_ATH5K_DEBUG=y CONFIG_ATH5K=m # CONFIG_ATH5K_TRACER is not set @@ -335,6 +338,7 @@ CONFIG_BATMAN_ADV_NC=y # CONFIG_BATTERY_LEGO_EV3 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set +# CONFIG_BATTERY_MAX1721X is not set # CONFIG_BATTERY_SBS is not set CONFIG_BAYCOM_EPP=m CONFIG_BAYCOM_PAR=m @@ -376,7 +380,6 @@ CONFIG_BINFMT_MISC=m CONFIG_BINFMT_SCRIPT=y CONFIG_BLK_CGROUP=y # CONFIG_BLK_CMDLINE_PARSER is not set -CONFIG_BLK_CPQ_CISS_DA=m CONFIG_BLK_DEBUG_FS=y CONFIG_BLK_DEV_3W_XXXX_RAID=m # CONFIG_BLK_DEV_AEC62XX is not set @@ -473,6 +476,7 @@ CONFIG_BNX2=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y CONFIG_BNXT_DCB=y +CONFIG_BNXT_FLOWER_OFFLOAD=y CONFIG_BNXT=m CONFIG_BNXT_SRIOV=y CONFIG_BONDING=m @@ -484,6 +488,7 @@ CONFIG_BOOT_PRINTK_DELAY=y CONFIG_BOOTX_TEXT=y CONFIG_BOUNCE=y CONFIG_BPF_JIT=y +CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m # CONFIG_BRCMDBG is not set @@ -645,9 +650,11 @@ CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set # CONFIG_CC10001_ADC is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +# CONFIG_CCS811 is not set CONFIG_CDROM_PKTCDVD_BUFFERS=8 CONFIG_CDROM_PKTCDVD=m # CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEC_PIN=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_CEPH_FSCACHE=y CONFIG_CEPH_FS=m @@ -723,9 +730,10 @@ CONFIG_CIFS_STATS=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_XATTR=y -CONFIG_CISS_SCSI_TAPE=y CONFIG_CLEANCACHE=y +# CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_CLOCK_THERMAL is not set CONFIG_CLS_U32_MARK=y CONFIG_CLS_U32_PERF=y CONFIG_CM32181=m @@ -838,6 +846,7 @@ CONFIG_CRYPTO_DEV_NX_COMPRESS_POWERNV=m CONFIG_CRYPTO_DEV_NX_COMPRESS_PSERIES=m CONFIG_CRYPTO_DEV_NX_ENCRYPT=m CONFIG_CRYPTO_DEV_NX=y +# CONFIG_CRYPTO_DEV_SP_CCP is not set CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DEV_VMX_ENCRYPT=m CONFIG_CRYPTO_DEV_VMX=y @@ -995,6 +1004,7 @@ CONFIG_DEV_DAX_PMEM=m # CONFIG_DEVFREQ_GOV_POWERSAVE is not set CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m # CONFIG_DEVFREQ_GOV_USERSPACE is not set +# CONFIG_DEVFREQ_THERMAL is not set # CONFIG_DEVKMEM is not set CONFIG_DEVMEM=y CONFIG_DEVPORT=y @@ -1050,7 +1060,7 @@ CONFIG_DNS_RESOLVER=m CONFIG_DONGLE=y CONFIG_DP83640_PHY=m CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m +# CONFIG_DP83867_PHY is not set # CONFIG_DPM_WATCHDOG is not set # revisit this in debug CONFIG_DPOT_DAC=m CONFIG_DRAGONRISE_FF=y @@ -1151,6 +1161,7 @@ CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_CORE=m # CONFIG_DVB_CXD2099 is not set CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set CONFIG_DVB_DM1105=m CONFIG_DVB_DYNAMIC_MINORS=y @@ -1504,6 +1515,7 @@ CONFIG_GIRBIL_DONGLE=m # CONFIG_GPIO_ADP5588 is not set # CONFIG_GPIO_ALTERA is not set # CONFIG_GPIO_AMDPT is not set +CONFIG_GPIO_BD9571MWV=m # CONFIG_GPIO_BT8XX is not set # CONFIG_GPIO_DWAPB is not set CONFIG_GPIO_EXAR=m @@ -1530,6 +1542,7 @@ CONFIG_GPIO_PCI_IDIO_16=m # CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_SYSFS is not set # CONFIG_GPIO_TPIC2810 is not set +CONFIG_GPIO_TPS68470=y # CONFIG_GPIO_TS4900 is not set # CONFIG_GPIO_TS5500 is not set # CONFIG_GPIO_UCB1400 is not set @@ -1923,6 +1936,7 @@ CONFIG_INET=y # CONFIG_INFINIBAND_CXGB3_DEBUG is not set CONFIG_INFINIBAND_CXGB3=m CONFIG_INFINIBAND_CXGB4=m +# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set CONFIG_INFINIBAND_I40IW=m CONFIG_INFINIBAND_IPOIB_CM=y CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y @@ -1997,7 +2011,9 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_PWM_BEEPER=m +# CONFIG_INPUT_PWM_VIBRA is not set CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_RK805_PWRKEY=m CONFIG_INPUT_SPARSEKMAP=m CONFIG_INPUT_TABLET=y CONFIG_INPUT_TOUCHSCREEN=y @@ -2050,7 +2066,7 @@ CONFIG_IP_DCCP_CCID2=m # CONFIG_IP_DCCP_CCID3_DEBUG is not set CONFIG_IP_DCCP_CCID3=y # CONFIG_IP_DCCP_DEBUG is not set -CONFIG_IP_DCCP=m +# CONFIG_IP_DCCP is not set CONFIG_IPDDP_ENCAP=y CONFIG_IPDDP=m CONFIG_IP_FIB_TRIE_STATS=y @@ -2173,6 +2189,7 @@ CONFIG_IRDA=m CONFIG_IR_ENE=m CONFIG_IR_FINTEK=m CONFIG_IR_GPIO_CIR=m +CONFIG_IR_GPIO_TX=m CONFIG_IR_HIX5HD2=m CONFIG_IR_IGORPLUGUSB=m CONFIG_IR_IGUANA=m @@ -2187,6 +2204,7 @@ CONFIG_IR_MCEUSB=m CONFIG_IR_NEC_DECODER=m CONFIG_IRNET=m CONFIG_IR_NUVOTON=m +CONFIG_IR_PWM_TX=m CONFIG_IRQ_ALL_CPUS=y # CONFIG_IRQ_DOMAIN_DEBUG is not set # CONFIG_IRQSOFF_TRACER is not set @@ -2417,6 +2435,7 @@ CONFIG_LCD_PLATFORM=m # CONFIG_LDM_DEBUG is not set CONFIG_LDM_PARTITION=y # CONFIG_LEDS_AAT1290 is not set +CONFIG_LEDS_AS3645A=m # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set # CONFIG_LEDS_BD2802 is not set @@ -2515,6 +2534,7 @@ CONFIG_LMP91000=m CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_LOCKD=m +# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set # CONFIG_LOCK_DOWN_KERNEL is not set CONFIG_LOCKD_V4=y # CONFIG_LOCK_STAT is not set @@ -2540,6 +2560,7 @@ CONFIG_LPFC_NVME_INITIATOR=y CONFIG_LPFC_NVME_TARGET=y CONFIG_LSI_ET1011C_PHY=m CONFIG_LSM_MMAP_MIN_ADDR=65536 +# CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set # CONFIG_LTC2497 is not set # CONFIG_LTC2632 is not set @@ -2620,6 +2641,7 @@ CONFIG_MDIO_BITBANG=m # CONFIG_MDIO_BUS_MUX_MMIOREG is not set CONFIG_MDIO_GPIO=m # CONFIG_MDIO_HISI_FEMAC is not set +CONFIG_MDIO_I2C=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set CONFIG_MD_LINEAR=m @@ -2688,6 +2710,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_AXP20X_I2C is not set # CONFIG_MFD_AXP20X is not set # CONFIG_MFD_BCM590XX is not set +CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=m # CONFIG_MFD_CPCAP is not set # CONFIG_MFD_CROS_EC is not set @@ -2752,6 +2775,7 @@ CONFIG_MFD_SM501=m # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912 is not set # CONFIG_MFD_TPS65912_SPI is not set +CONFIG_MFD_TPS68470=y # CONFIG_MFD_TPS80031 is not set CONFIG_MFD_VIPERBOARD=m CONFIG_MFD_VX855=m @@ -2796,8 +2820,10 @@ CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_CORE_IPOIB=y CONFIG_MLX5_CORE=m # CONFIG_MLX5_EN_IPSEC is not set +CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set CONFIG_MLX5_INFINIBAND=m +CONFIG_MLX5_MPFS=y # CONFIG_MLX90614 is not set CONFIG_MLX_CPLD_PLATFORM=m CONFIG_MLXFW=m @@ -2818,7 +2844,6 @@ CONFIG_MMA7660=m # CONFIG_MMA9551 is not set # CONFIG_MMA9553 is not set # CONFIG_MMC35240 is not set -CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_CB710=m @@ -3163,6 +3188,7 @@ CONFIG_NETLABEL=y CONFIG_NETLINK_DIAG=m CONFIG_NET_MPLS_GSO=m CONFIG_NET_NCSI=y +CONFIG_NET_NSH=m CONFIG_NET_NS=y CONFIG_NET_PACKET_ENGINE=y CONFIG_NET_PKTGEN=m @@ -3231,6 +3257,7 @@ CONFIG_NET_VENDOR_EXAR=y # CONFIG_NET_VENDOR_FUJITSU is not set # CONFIG_NET_VENDOR_HISILICON is not set # CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_I825XX is not set CONFIG_NET_VENDOR_IBM=y CONFIG_NET_VENDOR_INTEL=y @@ -3393,6 +3420,7 @@ CONFIG_NFT_EXTHDR=m CONFIG_NFT_FIB_INET=m CONFIG_NFT_FIB_IPV4=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_HASH=m CONFIG_NFT_LIMIT=m @@ -3661,6 +3689,8 @@ CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PHONET is not set # CONFIG_PHY_CPCAP_USB is not set CONFIG_PHYLIB=y +CONFIG_PHYLINK=m +# CONFIG_PHY_MVEBU_CP110_COMPHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set # CONFIG_PHY_QCOM_USB_HSIC is not set @@ -3668,12 +3698,16 @@ CONFIG_PHYLIB=y # CONFIG_PHY_ST_SPEAR1310_MIPHY is not set # CONFIG_PHY_ST_SPEAR1340_MIPHY is not set # CONFIG_PHY_TUSB1210 is not set +# CONFIG_PI433 is not set CONFIG_PID_NS=y # CONFIG_PINCONF is not set # CONFIG_PINCTRL_CANNONLAKE is not set # CONFIG_PINCTRL_IPQ8074 is not set # CONFIG_PINCTRL is not set # CONFIG_PINCTRL_MCP23S08 is not set +CONFIG_PINCTRL_RK805=m +# CONFIG_PINCTRL_SPRD is not set +# CONFIG_PINCTRL_SPRD_SC9860 is not set # CONFIG_PINCTRL_SX150X is not set # CONFIG_PINMUX is not set CONFIG_PKCS7_MESSAGE_PARSER=y @@ -3693,7 +3727,7 @@ CONFIG_PM_DEBUG=y CONFIG_PM_DEVFREQ=y # CONFIG_PMIC_ADP5520 is not set # CONFIG_PMIC_DA903X is not set -# CONFIG_PM_OPP is not set +CONFIG_PM_OPP=y CONFIG_PM_STD_PARTITION="" CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_TRACE_RTC=y @@ -3738,6 +3772,7 @@ CONFIG_PPC_EMULATED_STATS=y # CONFIG_PPC_ICSWX_USE_SIGILL is not set CONFIG_PPC_ICSWX=y CONFIG_PPC_MAPLE=y +# CONFIG_PPC_MEMTRACE is not set # CONFIG_PPC_MPC5200_LPBFIFO is not set CONFIG_PPC_OF_BOOT_TRAMPOLINE=y # CONFIG_PPC_PASEMI is not set @@ -3752,6 +3787,7 @@ CONFIG_PPC_SMLPAR=y CONFIG_PPC_SPLPAR=y CONFIG_PPC_SUBPAGE_PROT=y CONFIG_PPC_TRANSACTIONAL_MEM=y +CONFIG_PPC_VAS=y CONFIG_PPC=y CONFIG_PPDEV=m CONFIG_PPP_ASYNC=m @@ -3813,6 +3849,7 @@ CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000_SPI is not set # CONFIG_QCA7000_UART is not set # CONFIG_QCOM_EMAC is not set +# CONFIG_QCOM_GLINK_SSR is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set CONFIG_QEDE=m @@ -3842,6 +3879,7 @@ CONFIG_R8169=m # CONFIG_R8188EU is not set CONFIG_R8712U=m CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162) +CONFIG_R8822BE=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_AZTECH=m CONFIG_RADIO_CADET=m @@ -3909,6 +3947,7 @@ CONFIG_REALTEK_PHY=m # CONFIG_REFCOUNT_FULL is not set CONFIG_REGMAP_I2C=m CONFIG_REGMAP=y +CONFIG_REGULATOR_BD9571MWV=m # CONFIG_REGULATOR_DEBUG is not set # CONFIG_REGULATOR is not set # CONFIG_REGULATOR_TPS65132 is not set @@ -3923,6 +3962,8 @@ CONFIG_RELAY=y # CONFIG_RELOCATABLE_TEST is not set CONFIG_RELOCATABLE=y CONFIG_REMOTEPROC=m +CONFIG_RESET_ATTACK_MITIGATION=y +# CONFIG_RESET_HSDK_V1 is not set # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RFD_FTL is not set CONFIG_RFKILL_GPIO=m @@ -3942,6 +3983,8 @@ CONFIG_RMI4_F55=y CONFIG_RMI4_I2C=m CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m +# CONFIG_RMNET is not set +# CONFIG_ROCKCHIP_PHY is not set CONFIG_ROCKER=m CONFIG_ROCKETPORT=m CONFIG_ROMFS_FS=m @@ -3949,6 +3992,7 @@ CONFIG_ROSE=m CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPMSG_CHAR is not set # CONFIG_RPMSG_QCOM_GLINK_RPM is not set +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set CONFIG_RPR0521=m CONFIG_RSI_91X=m CONFIG_RSI_DEBUGFS=y @@ -4320,6 +4364,7 @@ CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBM_CFFPS=m CONFIG_SENSORS_IBMPEX=m CONFIG_SENSORS_IBMPOWERNV=y # CONFIG_SENSORS_IIO_HWMON is not set @@ -4410,6 +4455,7 @@ CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_TPS40422=m +CONFIG_SENSORS_TPS53679=m CONFIG_SENSORS_TSL2550=m # CONFIG_SENSORS_TSL2563 is not set CONFIG_SENSORS_UCD9000=m @@ -4485,6 +4531,7 @@ CONFIG_SERIO_ALTERA_PS2=m # CONFIG_SERIO_APBPS2 is not set CONFIG_SERIO_ARC_PS2=m # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_GPIO_PS2 is not set CONFIG_SERIO_I8042=y CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_OLPC_APSP is not set @@ -4498,6 +4545,7 @@ CONFIG_SERIO=y CONFIG_SFC_FALCON=m CONFIG_SFC_FALCON_MTD=y # CONFIG_SFC is not set +CONFIG_SFP=m # CONFIG_SGI_IOC4 is not set CONFIG_SGI_PARTITION=y CONFIG_SH_ETH=m @@ -4517,6 +4565,7 @@ CONFIG_SKGE_GENESIS=y CONFIG_SKGE=m # CONFIG_SKY2_DEBUG is not set CONFIG_SKY2=m +CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLICOSS is not set @@ -4567,7 +4616,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -CONFIG_SND_BCD2000=m +# CONFIG_SND_BCD2000 is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -4630,7 +4679,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=0 CONFIG_SND_HDA_INPUT_BEEP=y # CONFIG_SND_HDA_INTEL is not set CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_HDA_RECONFIG=y @@ -4721,6 +4770,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set CONFIG_SND_SOC_DIO2125=m @@ -4783,6 +4833,7 @@ CONFIG_SND_SOC_SPDIF=m # CONFIG_SND_SOC_TS3A227E is not set # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set +CONFIG_SND_SOC_WM8524=m # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set @@ -4877,6 +4928,7 @@ CONFIG_SQUASHFS=m CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_ZSTD=y # CONFIG_SRAM is not set # CONFIG_SRF04 is not set # CONFIG_SRF08 is not set @@ -4910,6 +4962,7 @@ CONFIG_STMMAC_ETH=m # CONFIG_STMMAC_PLATFORM is not set # CONFIG_STM_SOURCE_CONSOLE is not set CONFIG_STRICT_DEVMEM=y +# CONFIG_STRING_SELFTEST is not set CONFIG_STRIP_ASM_SYMS=y # CONFIG_STRIP is not set CONFIG_SUNDANCE=m @@ -5724,6 +5777,7 @@ CONFIG_W1_SLAVE_DS2438=m CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS2805=m CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_THERM=m @@ -5744,6 +5798,7 @@ CONFIG_WATCHDOG=y CONFIG_WCN36XX=m CONFIG_WDAT_WDT=m CONFIG_WDTPCI=m +CONFIG_WIL6210_DEBUGFS=y CONFIG_WIL6210_ISR_COR=y CONFIG_WIL6210=m # CONFIG_WIL6210_TRACING is not set @@ -5845,6 +5900,7 @@ CONFIG_ZLIB_INFLATE=y # CONFIG_ZONE_DEVICE is not set # CONFIG_ZPA2326 is not set CONFIG_ZRAM=m +# CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y CONFIG_ZSWAP=y diff --git a/kernel-ppc64le-debug.config b/kernel-ppc64le-debug.config index 33fbd04f8..66c67d2c5 100644 --- a/kernel-ppc64le-debug.config +++ b/kernel-ppc64le-debug.config @@ -148,7 +148,9 @@ CONFIG_AIX_PARTITION=y CONFIG_ALI_FIR=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y # CONFIG_ALTERA_MBOX is not set +CONFIG_ALTERA_MSGDMA=m CONFIG_ALTERA_STAPL=m CONFIG_ALTERA_TSE=m CONFIG_ALTIVEC=y @@ -194,6 +196,7 @@ CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m CONFIG_ATH10K_SDIO=m # CONFIG_ATH10K_TRACING is not set +CONFIG_ATH10K_USB=m CONFIG_ATH5K_DEBUG=y CONFIG_ATH5K=m # CONFIG_ATH5K_TRACER is not set @@ -329,6 +332,7 @@ CONFIG_BATMAN_ADV_NC=y # CONFIG_BATTERY_LEGO_EV3 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set +# CONFIG_BATTERY_MAX1721X is not set # CONFIG_BATTERY_SBS is not set CONFIG_BAYCOM_EPP=m CONFIG_BAYCOM_PAR=m @@ -370,7 +374,6 @@ CONFIG_BINFMT_MISC=m CONFIG_BINFMT_SCRIPT=y CONFIG_BLK_CGROUP=y # CONFIG_BLK_CMDLINE_PARSER is not set -CONFIG_BLK_CPQ_CISS_DA=m CONFIG_BLK_DEBUG_FS=y CONFIG_BLK_DEV_3W_XXXX_RAID=m CONFIG_BLK_DEV_BSGLIB=y @@ -430,6 +433,7 @@ CONFIG_BNX2=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y CONFIG_BNXT_DCB=y +CONFIG_BNXT_FLOWER_OFFLOAD=y CONFIG_BNXT=m CONFIG_BNXT_SRIOV=y CONFIG_BONDING=m @@ -441,6 +445,7 @@ CONFIG_BOOT_PRINTK_DELAY=y CONFIG_BOOTX_TEXT=y CONFIG_BOUNCE=y CONFIG_BPF_JIT=y +CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m # CONFIG_BRCMDBG is not set @@ -602,9 +607,11 @@ CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set # CONFIG_CC10001_ADC is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +# CONFIG_CCS811 is not set CONFIG_CDROM_PKTCDVD_BUFFERS=8 CONFIG_CDROM_PKTCDVD=m # CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEC_PIN=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_CEPH_FSCACHE=y CONFIG_CEPH_FS=m @@ -680,9 +687,10 @@ CONFIG_CIFS_STATS=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_XATTR=y -CONFIG_CISS_SCSI_TAPE=y CONFIG_CLEANCACHE=y +# CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_CLOCK_THERMAL is not set CONFIG_CLS_U32_MARK=y CONFIG_CLS_U32_PERF=y CONFIG_CM32181=m @@ -794,6 +802,7 @@ CONFIG_CRYPTO_DEV_NX_COMPRESS_POWERNV=m CONFIG_CRYPTO_DEV_NX_COMPRESS_PSERIES=m CONFIG_CRYPTO_DEV_NX_ENCRYPT=m CONFIG_CRYPTO_DEV_NX=y +# CONFIG_CRYPTO_DEV_SP_CCP is not set CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DEV_VMX_ENCRYPT=m CONFIG_CRYPTO_DEV_VMX=y @@ -959,6 +968,7 @@ CONFIG_DEV_DAX_PMEM=m # CONFIG_DEVFREQ_GOV_POWERSAVE is not set CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m # CONFIG_DEVFREQ_GOV_USERSPACE is not set +# CONFIG_DEVFREQ_THERMAL is not set # CONFIG_DEVKMEM is not set CONFIG_DEVMEM=y CONFIG_DEVPORT=y @@ -1016,7 +1026,7 @@ CONFIG_DNS_RESOLVER=m CONFIG_DONGLE=y CONFIG_DP83640_PHY=m CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m +# CONFIG_DP83867_PHY is not set # CONFIG_DPM_WATCHDOG is not set # revisit this in debug CONFIG_DPOT_DAC=m CONFIG_DRAGONRISE_FF=y @@ -1117,6 +1127,7 @@ CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_CORE=m # CONFIG_DVB_CXD2099 is not set CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set CONFIG_DVB_DM1105=m CONFIG_DVB_DYNAMIC_MINORS=y @@ -1475,6 +1486,7 @@ CONFIG_GIRBIL_DONGLE=m # CONFIG_GPIO_ADP5588 is not set # CONFIG_GPIO_ALTERA is not set # CONFIG_GPIO_AMDPT is not set +CONFIG_GPIO_BD9571MWV=m # CONFIG_GPIO_BT8XX is not set # CONFIG_GPIO_DWAPB is not set CONFIG_GPIO_EXAR=m @@ -1501,6 +1513,7 @@ CONFIG_GPIO_PCI_IDIO_16=m # CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_SYSFS is not set # CONFIG_GPIO_TPIC2810 is not set +CONFIG_GPIO_TPS68470=y # CONFIG_GPIO_TS4900 is not set # CONFIG_GPIO_TS5500 is not set # CONFIG_GPIO_UCB1400 is not set @@ -1886,6 +1899,7 @@ CONFIG_INET=y # CONFIG_INFINIBAND_CXGB3_DEBUG is not set CONFIG_INFINIBAND_CXGB3=m CONFIG_INFINIBAND_CXGB4=m +# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set CONFIG_INFINIBAND_I40IW=m CONFIG_INFINIBAND_IPOIB_CM=y CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y @@ -1960,7 +1974,9 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_PWM_BEEPER=m +# CONFIG_INPUT_PWM_VIBRA is not set CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_RK805_PWRKEY=m CONFIG_INPUT_SPARSEKMAP=m CONFIG_INPUT_TABLET=y CONFIG_INPUT_TOUCHSCREEN=y @@ -2013,7 +2029,7 @@ CONFIG_IP_DCCP_CCID2=m # CONFIG_IP_DCCP_CCID3_DEBUG is not set CONFIG_IP_DCCP_CCID3=y # CONFIG_IP_DCCP_DEBUG is not set -CONFIG_IP_DCCP=m +# CONFIG_IP_DCCP is not set CONFIG_IPDDP_ENCAP=y CONFIG_IPDDP=m CONFIG_IP_FIB_TRIE_STATS=y @@ -2136,6 +2152,7 @@ CONFIG_IRDA=m CONFIG_IR_ENE=m CONFIG_IR_FINTEK=m CONFIG_IR_GPIO_CIR=m +CONFIG_IR_GPIO_TX=m CONFIG_IR_HIX5HD2=m CONFIG_IR_IGORPLUGUSB=m CONFIG_IR_IGUANA=m @@ -2150,6 +2167,7 @@ CONFIG_IR_MCEUSB=m CONFIG_IR_NEC_DECODER=m CONFIG_IRNET=m CONFIG_IR_NUVOTON=m +CONFIG_IR_PWM_TX=m CONFIG_IRQ_ALL_CPUS=y # CONFIG_IRQ_DOMAIN_DEBUG is not set # CONFIG_IRQSOFF_TRACER is not set @@ -2382,6 +2400,7 @@ CONFIG_LCD_PLATFORM=m # CONFIG_LDM_DEBUG is not set CONFIG_LDM_PARTITION=y # CONFIG_LEDS_AAT1290 is not set +CONFIG_LEDS_AS3645A=m # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set # CONFIG_LEDS_BD2802 is not set @@ -2480,6 +2499,7 @@ CONFIG_LMP91000=m CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_LOCKD=m +# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set # CONFIG_LOCK_DOWN_KERNEL is not set CONFIG_LOCKD_V4=y CONFIG_LOCK_STAT=y @@ -2505,6 +2525,7 @@ CONFIG_LPFC_NVME_INITIATOR=y CONFIG_LPFC_NVME_TARGET=y CONFIG_LSI_ET1011C_PHY=m CONFIG_LSM_MMAP_MIN_ADDR=65536 +# CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set # CONFIG_LTC2497 is not set # CONFIG_LTC2632 is not set @@ -2586,6 +2607,7 @@ CONFIG_MDIO_BITBANG=m # CONFIG_MDIO_BUS_MUX_MMIOREG is not set CONFIG_MDIO_GPIO=m # CONFIG_MDIO_HISI_FEMAC is not set +CONFIG_MDIO_I2C=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set CONFIG_MD_LINEAR=m @@ -2654,6 +2676,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_AXP20X_I2C is not set # CONFIG_MFD_AXP20X is not set # CONFIG_MFD_BCM590XX is not set +CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=m # CONFIG_MFD_CPCAP is not set # CONFIG_MFD_CROS_EC is not set @@ -2718,6 +2741,7 @@ CONFIG_MFD_SM501=m # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912 is not set # CONFIG_MFD_TPS65912_SPI is not set +CONFIG_MFD_TPS68470=y # CONFIG_MFD_TPS80031 is not set CONFIG_MFD_VIPERBOARD=m CONFIG_MFD_VX855=m @@ -2762,8 +2786,10 @@ CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_CORE_IPOIB=y CONFIG_MLX5_CORE=m # CONFIG_MLX5_EN_IPSEC is not set +CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set CONFIG_MLX5_INFINIBAND=m +CONFIG_MLX5_MPFS=y # CONFIG_MLX90614 is not set CONFIG_MLX_CPLD_PLATFORM=m CONFIG_MLXFW=m @@ -2784,7 +2810,6 @@ CONFIG_MMA7660=m # CONFIG_MMA9551 is not set # CONFIG_MMA9553 is not set # CONFIG_MMC35240 is not set -CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_CB710=m @@ -3129,6 +3154,7 @@ CONFIG_NETLABEL=y CONFIG_NETLINK_DIAG=m CONFIG_NET_MPLS_GSO=m CONFIG_NET_NCSI=y +CONFIG_NET_NSH=m CONFIG_NET_NS=y CONFIG_NET_PACKET_ENGINE=y CONFIG_NET_PKTGEN=m @@ -3197,6 +3223,7 @@ CONFIG_NET_VENDOR_EXAR=y # CONFIG_NET_VENDOR_FUJITSU is not set # CONFIG_NET_VENDOR_HISILICON is not set # CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_I825XX is not set CONFIG_NET_VENDOR_IBM=y CONFIG_NET_VENDOR_INTEL=y @@ -3359,6 +3386,7 @@ CONFIG_NFT_EXTHDR=m CONFIG_NFT_FIB_INET=m CONFIG_NFT_FIB_IPV4=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_HASH=m CONFIG_NFT_LIMIT=m @@ -3625,6 +3653,8 @@ CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PHONET is not set # CONFIG_PHY_CPCAP_USB is not set CONFIG_PHYLIB=y +CONFIG_PHYLINK=m +# CONFIG_PHY_MVEBU_CP110_COMPHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set # CONFIG_PHY_QCOM_USB_HSIC is not set @@ -3632,12 +3662,16 @@ CONFIG_PHYLIB=y # CONFIG_PHY_ST_SPEAR1310_MIPHY is not set # CONFIG_PHY_ST_SPEAR1340_MIPHY is not set # CONFIG_PHY_TUSB1210 is not set +# CONFIG_PI433 is not set CONFIG_PID_NS=y # CONFIG_PINCONF is not set # CONFIG_PINCTRL_CANNONLAKE is not set # CONFIG_PINCTRL_IPQ8074 is not set # CONFIG_PINCTRL is not set # CONFIG_PINCTRL_MCP23S08 is not set +CONFIG_PINCTRL_RK805=m +# CONFIG_PINCTRL_SPRD is not set +# CONFIG_PINCTRL_SPRD_SC9860 is not set # CONFIG_PINCTRL_SX150X is not set # CONFIG_PINMUX is not set CONFIG_PKCS7_MESSAGE_PARSER=y @@ -3653,7 +3687,7 @@ CONFIG_PM_DEBUG=y CONFIG_PM_DEVFREQ=y # CONFIG_PMIC_ADP5520 is not set # CONFIG_PMIC_DA903X is not set -# CONFIG_PM_OPP is not set +CONFIG_PM_OPP=y CONFIG_PM_STD_PARTITION="" CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_TRACE_RTC=y @@ -3699,6 +3733,7 @@ CONFIG_PPC_EMULATED_STATS=y # CONFIG_PPC_ICSWX_USE_SIGILL is not set CONFIG_PPC_ICSWX=y # CONFIG_PPC_MAPLE is not set +# CONFIG_PPC_MEMTRACE is not set # CONFIG_PPC_MPC5200_LPBFIFO is not set CONFIG_PPC_OF_BOOT_TRAMPOLINE=y # CONFIG_PPC_PASEMI is not set @@ -3713,6 +3748,7 @@ CONFIG_PPC_SMLPAR=y CONFIG_PPC_SPLPAR=y CONFIG_PPC_SUBPAGE_PROT=y CONFIG_PPC_TRANSACTIONAL_MEM=y +CONFIG_PPC_VAS=y CONFIG_PPC=y CONFIG_PPDEV=m CONFIG_PPP_ASYNC=m @@ -3775,6 +3811,7 @@ CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000_SPI is not set # CONFIG_QCA7000_UART is not set # CONFIG_QCOM_EMAC is not set +# CONFIG_QCOM_GLINK_SSR is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set CONFIG_QEDE=m @@ -3804,6 +3841,7 @@ CONFIG_R8169=m # CONFIG_R8188EU is not set CONFIG_R8712U=m CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162) +CONFIG_R8822BE=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_AZTECH=m CONFIG_RADIO_CADET=m @@ -3871,6 +3909,7 @@ CONFIG_REALTEK_PHY=m CONFIG_REFCOUNT_FULL=y CONFIG_REGMAP_I2C=m CONFIG_REGMAP=y +CONFIG_REGULATOR_BD9571MWV=m # CONFIG_REGULATOR_DEBUG is not set # CONFIG_REGULATOR is not set # CONFIG_REGULATOR_TPS65132 is not set @@ -3885,6 +3924,8 @@ CONFIG_RELAY=y # CONFIG_RELOCATABLE_TEST is not set CONFIG_RELOCATABLE=y CONFIG_REMOTEPROC=m +CONFIG_RESET_ATTACK_MITIGATION=y +# CONFIG_RESET_HSDK_V1 is not set # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RFD_FTL is not set CONFIG_RFKILL_GPIO=m @@ -3904,6 +3945,8 @@ CONFIG_RMI4_F55=y CONFIG_RMI4_I2C=m CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m +# CONFIG_RMNET is not set +# CONFIG_ROCKCHIP_PHY is not set CONFIG_ROCKER=m CONFIG_ROCKETPORT=m CONFIG_ROMFS_FS=m @@ -3911,6 +3954,7 @@ CONFIG_ROSE=m CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPMSG_CHAR is not set # CONFIG_RPMSG_QCOM_GLINK_RPM is not set +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set CONFIG_RPR0521=m CONFIG_RSI_91X=m CONFIG_RSI_DEBUGFS=y @@ -4282,6 +4326,7 @@ CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBM_CFFPS=m CONFIG_SENSORS_IBMPEX=m CONFIG_SENSORS_IBMPOWERNV=y # CONFIG_SENSORS_IIO_HWMON is not set @@ -4372,6 +4417,7 @@ CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_TPS40422=m +CONFIG_SENSORS_TPS53679=m CONFIG_SENSORS_TSL2550=m # CONFIG_SENSORS_TSL2563 is not set CONFIG_SENSORS_UCD9000=m @@ -4445,6 +4491,7 @@ CONFIG_SERIO_ALTERA_PS2=m # CONFIG_SERIO_APBPS2 is not set CONFIG_SERIO_ARC_PS2=m # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_GPIO_PS2 is not set CONFIG_SERIO_I8042=y CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_OLPC_APSP is not set @@ -4458,6 +4505,7 @@ CONFIG_SERIO=y CONFIG_SFC_FALCON=m CONFIG_SFC_FALCON_MTD=y # CONFIG_SFC is not set +CONFIG_SFP=m # CONFIG_SGI_IOC4 is not set CONFIG_SGI_PARTITION=y CONFIG_SH_ETH=m @@ -4477,6 +4525,7 @@ CONFIG_SKGE_GENESIS=y CONFIG_SKGE=m # CONFIG_SKY2_DEBUG is not set CONFIG_SKY2=m +CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLICOSS is not set @@ -4520,7 +4569,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -CONFIG_SND_BCD2000=m +# CONFIG_SND_BCD2000 is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -4583,7 +4632,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=0 CONFIG_SND_HDA_INPUT_BEEP=y # CONFIG_SND_HDA_INTEL is not set CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_HDA_RECONFIG=y @@ -4673,6 +4722,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set CONFIG_SND_SOC_DIO2125=m @@ -4735,6 +4785,7 @@ CONFIG_SND_SOC_SPDIF=m # CONFIG_SND_SOC_TS3A227E is not set # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set +CONFIG_SND_SOC_WM8524=m # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set @@ -4829,6 +4880,7 @@ CONFIG_SQUASHFS=m CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_ZSTD=y # CONFIG_SRAM is not set # CONFIG_SRF04 is not set # CONFIG_SRF08 is not set @@ -4862,6 +4914,7 @@ CONFIG_STMMAC_ETH=m # CONFIG_STMMAC_PLATFORM is not set # CONFIG_STM_SOURCE_CONSOLE is not set CONFIG_STRICT_DEVMEM=y +# CONFIG_STRING_SELFTEST is not set CONFIG_STRIP_ASM_SYMS=y # CONFIG_STRIP is not set CONFIG_SUNDANCE=m @@ -5676,6 +5729,7 @@ CONFIG_W1_SLAVE_DS2438=m CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS2805=m CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_THERM=m @@ -5696,6 +5750,7 @@ CONFIG_WATCHDOG=y CONFIG_WCN36XX=m CONFIG_WDAT_WDT=m CONFIG_WDTPCI=m +CONFIG_WIL6210_DEBUGFS=y CONFIG_WIL6210_ISR_COR=y CONFIG_WIL6210=m # CONFIG_WIL6210_TRACING is not set @@ -5791,6 +5846,7 @@ CONFIG_ZLIB_INFLATE=y # CONFIG_ZONE_DEVICE is not set # CONFIG_ZPA2326 is not set CONFIG_ZRAM=m +# CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y CONFIG_ZSWAP=y diff --git a/kernel-ppc64le.config b/kernel-ppc64le.config index f668b8e62..0d18af253 100644 --- a/kernel-ppc64le.config +++ b/kernel-ppc64le.config @@ -148,7 +148,9 @@ CONFIG_AIX_PARTITION=y CONFIG_ALI_FIR=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y # CONFIG_ALTERA_MBOX is not set +CONFIG_ALTERA_MSGDMA=m CONFIG_ALTERA_STAPL=m CONFIG_ALTERA_TSE=m CONFIG_ALTIVEC=y @@ -193,6 +195,7 @@ CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m CONFIG_ATH10K_SDIO=m # CONFIG_ATH10K_TRACING is not set +CONFIG_ATH10K_USB=m CONFIG_ATH5K_DEBUG=y CONFIG_ATH5K=m # CONFIG_ATH5K_TRACER is not set @@ -328,6 +331,7 @@ CONFIG_BATMAN_ADV_NC=y # CONFIG_BATTERY_LEGO_EV3 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set +# CONFIG_BATTERY_MAX1721X is not set # CONFIG_BATTERY_SBS is not set CONFIG_BAYCOM_EPP=m CONFIG_BAYCOM_PAR=m @@ -369,7 +373,6 @@ CONFIG_BINFMT_MISC=m CONFIG_BINFMT_SCRIPT=y CONFIG_BLK_CGROUP=y # CONFIG_BLK_CMDLINE_PARSER is not set -CONFIG_BLK_CPQ_CISS_DA=m CONFIG_BLK_DEBUG_FS=y CONFIG_BLK_DEV_3W_XXXX_RAID=m CONFIG_BLK_DEV_BSGLIB=y @@ -429,6 +432,7 @@ CONFIG_BNX2=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y CONFIG_BNXT_DCB=y +CONFIG_BNXT_FLOWER_OFFLOAD=y CONFIG_BNXT=m CONFIG_BNXT_SRIOV=y CONFIG_BONDING=m @@ -440,6 +444,7 @@ CONFIG_BOOT_PRINTK_DELAY=y CONFIG_BOOTX_TEXT=y CONFIG_BOUNCE=y CONFIG_BPF_JIT=y +CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m # CONFIG_BRCMDBG is not set @@ -601,9 +606,11 @@ CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set # CONFIG_CC10001_ADC is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +# CONFIG_CCS811 is not set CONFIG_CDROM_PKTCDVD_BUFFERS=8 CONFIG_CDROM_PKTCDVD=m # CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEC_PIN=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_CEPH_FSCACHE=y CONFIG_CEPH_FS=m @@ -679,9 +686,10 @@ CONFIG_CIFS_STATS=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_XATTR=y -CONFIG_CISS_SCSI_TAPE=y CONFIG_CLEANCACHE=y +# CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_CLOCK_THERMAL is not set CONFIG_CLS_U32_MARK=y CONFIG_CLS_U32_PERF=y CONFIG_CM32181=m @@ -792,6 +800,7 @@ CONFIG_CRYPTO_DEV_NX_COMPRESS_POWERNV=m CONFIG_CRYPTO_DEV_NX_COMPRESS_PSERIES=m CONFIG_CRYPTO_DEV_NX_ENCRYPT=m CONFIG_CRYPTO_DEV_NX=y +# CONFIG_CRYPTO_DEV_SP_CCP is not set CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DEV_VMX_ENCRYPT=m CONFIG_CRYPTO_DEV_VMX=y @@ -949,6 +958,7 @@ CONFIG_DEV_DAX_PMEM=m # CONFIG_DEVFREQ_GOV_POWERSAVE is not set CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m # CONFIG_DEVFREQ_GOV_USERSPACE is not set +# CONFIG_DEVFREQ_THERMAL is not set # CONFIG_DEVKMEM is not set CONFIG_DEVMEM=y CONFIG_DEVPORT=y @@ -1005,7 +1015,7 @@ CONFIG_DNS_RESOLVER=m CONFIG_DONGLE=y CONFIG_DP83640_PHY=m CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m +# CONFIG_DP83867_PHY is not set # CONFIG_DPM_WATCHDOG is not set # revisit this in debug CONFIG_DPOT_DAC=m CONFIG_DRAGONRISE_FF=y @@ -1106,6 +1116,7 @@ CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_CORE=m # CONFIG_DVB_CXD2099 is not set CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set CONFIG_DVB_DM1105=m CONFIG_DVB_DYNAMIC_MINORS=y @@ -1457,6 +1468,7 @@ CONFIG_GIRBIL_DONGLE=m # CONFIG_GPIO_ADP5588 is not set # CONFIG_GPIO_ALTERA is not set # CONFIG_GPIO_AMDPT is not set +CONFIG_GPIO_BD9571MWV=m # CONFIG_GPIO_BT8XX is not set # CONFIG_GPIO_DWAPB is not set CONFIG_GPIO_EXAR=m @@ -1483,6 +1495,7 @@ CONFIG_GPIO_PCI_IDIO_16=m # CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_SYSFS is not set # CONFIG_GPIO_TPIC2810 is not set +CONFIG_GPIO_TPS68470=y # CONFIG_GPIO_TS4900 is not set # CONFIG_GPIO_TS5500 is not set # CONFIG_GPIO_UCB1400 is not set @@ -1868,6 +1881,7 @@ CONFIG_INET=y # CONFIG_INFINIBAND_CXGB3_DEBUG is not set CONFIG_INFINIBAND_CXGB3=m CONFIG_INFINIBAND_CXGB4=m +# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set CONFIG_INFINIBAND_I40IW=m CONFIG_INFINIBAND_IPOIB_CM=y CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y @@ -1942,7 +1956,9 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_PWM_BEEPER=m +# CONFIG_INPUT_PWM_VIBRA is not set CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_RK805_PWRKEY=m CONFIG_INPUT_SPARSEKMAP=m CONFIG_INPUT_TABLET=y CONFIG_INPUT_TOUCHSCREEN=y @@ -1995,7 +2011,7 @@ CONFIG_IP_DCCP_CCID2=m # CONFIG_IP_DCCP_CCID3_DEBUG is not set CONFIG_IP_DCCP_CCID3=y # CONFIG_IP_DCCP_DEBUG is not set -CONFIG_IP_DCCP=m +# CONFIG_IP_DCCP is not set CONFIG_IPDDP_ENCAP=y CONFIG_IPDDP=m CONFIG_IP_FIB_TRIE_STATS=y @@ -2118,6 +2134,7 @@ CONFIG_IRDA=m CONFIG_IR_ENE=m CONFIG_IR_FINTEK=m CONFIG_IR_GPIO_CIR=m +CONFIG_IR_GPIO_TX=m CONFIG_IR_HIX5HD2=m CONFIG_IR_IGORPLUGUSB=m CONFIG_IR_IGUANA=m @@ -2132,6 +2149,7 @@ CONFIG_IR_MCEUSB=m CONFIG_IR_NEC_DECODER=m CONFIG_IRNET=m CONFIG_IR_NUVOTON=m +CONFIG_IR_PWM_TX=m CONFIG_IRQ_ALL_CPUS=y # CONFIG_IRQ_DOMAIN_DEBUG is not set # CONFIG_IRQSOFF_TRACER is not set @@ -2362,6 +2380,7 @@ CONFIG_LCD_PLATFORM=m # CONFIG_LDM_DEBUG is not set CONFIG_LDM_PARTITION=y # CONFIG_LEDS_AAT1290 is not set +CONFIG_LEDS_AS3645A=m # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set # CONFIG_LEDS_BD2802 is not set @@ -2460,6 +2479,7 @@ CONFIG_LMP91000=m CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_LOCKD=m +# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set # CONFIG_LOCK_DOWN_KERNEL is not set CONFIG_LOCKD_V4=y # CONFIG_LOCK_STAT is not set @@ -2485,6 +2505,7 @@ CONFIG_LPFC_NVME_INITIATOR=y CONFIG_LPFC_NVME_TARGET=y CONFIG_LSI_ET1011C_PHY=m CONFIG_LSM_MMAP_MIN_ADDR=65536 +# CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set # CONFIG_LTC2497 is not set # CONFIG_LTC2632 is not set @@ -2565,6 +2586,7 @@ CONFIG_MDIO_BITBANG=m # CONFIG_MDIO_BUS_MUX_MMIOREG is not set CONFIG_MDIO_GPIO=m # CONFIG_MDIO_HISI_FEMAC is not set +CONFIG_MDIO_I2C=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set CONFIG_MD_LINEAR=m @@ -2633,6 +2655,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_AXP20X_I2C is not set # CONFIG_MFD_AXP20X is not set # CONFIG_MFD_BCM590XX is not set +CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=m # CONFIG_MFD_CPCAP is not set # CONFIG_MFD_CROS_EC is not set @@ -2697,6 +2720,7 @@ CONFIG_MFD_SM501=m # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912 is not set # CONFIG_MFD_TPS65912_SPI is not set +CONFIG_MFD_TPS68470=y # CONFIG_MFD_TPS80031 is not set CONFIG_MFD_VIPERBOARD=m CONFIG_MFD_VX855=m @@ -2741,8 +2765,10 @@ CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_CORE_IPOIB=y CONFIG_MLX5_CORE=m # CONFIG_MLX5_EN_IPSEC is not set +CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set CONFIG_MLX5_INFINIBAND=m +CONFIG_MLX5_MPFS=y # CONFIG_MLX90614 is not set CONFIG_MLX_CPLD_PLATFORM=m CONFIG_MLXFW=m @@ -2763,7 +2789,6 @@ CONFIG_MMA7660=m # CONFIG_MMA9551 is not set # CONFIG_MMA9553 is not set # CONFIG_MMC35240 is not set -CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_CB710=m @@ -3107,6 +3132,7 @@ CONFIG_NETLABEL=y CONFIG_NETLINK_DIAG=m CONFIG_NET_MPLS_GSO=m CONFIG_NET_NCSI=y +CONFIG_NET_NSH=m CONFIG_NET_NS=y CONFIG_NET_PACKET_ENGINE=y CONFIG_NET_PKTGEN=m @@ -3175,6 +3201,7 @@ CONFIG_NET_VENDOR_EXAR=y # CONFIG_NET_VENDOR_FUJITSU is not set # CONFIG_NET_VENDOR_HISILICON is not set # CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_I825XX is not set CONFIG_NET_VENDOR_IBM=y CONFIG_NET_VENDOR_INTEL=y @@ -3337,6 +3364,7 @@ CONFIG_NFT_EXTHDR=m CONFIG_NFT_FIB_INET=m CONFIG_NFT_FIB_IPV4=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_HASH=m CONFIG_NFT_LIMIT=m @@ -3603,6 +3631,8 @@ CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PHONET is not set # CONFIG_PHY_CPCAP_USB is not set CONFIG_PHYLIB=y +CONFIG_PHYLINK=m +# CONFIG_PHY_MVEBU_CP110_COMPHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set # CONFIG_PHY_QCOM_USB_HSIC is not set @@ -3610,12 +3640,16 @@ CONFIG_PHYLIB=y # CONFIG_PHY_ST_SPEAR1310_MIPHY is not set # CONFIG_PHY_ST_SPEAR1340_MIPHY is not set # CONFIG_PHY_TUSB1210 is not set +# CONFIG_PI433 is not set CONFIG_PID_NS=y # CONFIG_PINCONF is not set # CONFIG_PINCTRL_CANNONLAKE is not set # CONFIG_PINCTRL_IPQ8074 is not set # CONFIG_PINCTRL is not set # CONFIG_PINCTRL_MCP23S08 is not set +CONFIG_PINCTRL_RK805=m +# CONFIG_PINCTRL_SPRD is not set +# CONFIG_PINCTRL_SPRD_SC9860 is not set # CONFIG_PINCTRL_SX150X is not set # CONFIG_PINMUX is not set CONFIG_PKCS7_MESSAGE_PARSER=y @@ -3631,7 +3665,7 @@ CONFIG_PM_DEBUG=y CONFIG_PM_DEVFREQ=y # CONFIG_PMIC_ADP5520 is not set # CONFIG_PMIC_DA903X is not set -# CONFIG_PM_OPP is not set +CONFIG_PM_OPP=y CONFIG_PM_STD_PARTITION="" CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_TRACE_RTC=y @@ -3677,6 +3711,7 @@ CONFIG_PPC_EMULATED_STATS=y # CONFIG_PPC_ICSWX_USE_SIGILL is not set CONFIG_PPC_ICSWX=y # CONFIG_PPC_MAPLE is not set +# CONFIG_PPC_MEMTRACE is not set # CONFIG_PPC_MPC5200_LPBFIFO is not set CONFIG_PPC_OF_BOOT_TRAMPOLINE=y # CONFIG_PPC_PASEMI is not set @@ -3691,6 +3726,7 @@ CONFIG_PPC_SMLPAR=y CONFIG_PPC_SPLPAR=y CONFIG_PPC_SUBPAGE_PROT=y CONFIG_PPC_TRANSACTIONAL_MEM=y +CONFIG_PPC_VAS=y CONFIG_PPC=y CONFIG_PPDEV=m CONFIG_PPP_ASYNC=m @@ -3752,6 +3788,7 @@ CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000_SPI is not set # CONFIG_QCA7000_UART is not set # CONFIG_QCOM_EMAC is not set +# CONFIG_QCOM_GLINK_SSR is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set CONFIG_QEDE=m @@ -3781,6 +3818,7 @@ CONFIG_R8169=m # CONFIG_R8188EU is not set CONFIG_R8712U=m CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162) +CONFIG_R8822BE=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_AZTECH=m CONFIG_RADIO_CADET=m @@ -3848,6 +3886,7 @@ CONFIG_REALTEK_PHY=m # CONFIG_REFCOUNT_FULL is not set CONFIG_REGMAP_I2C=m CONFIG_REGMAP=y +CONFIG_REGULATOR_BD9571MWV=m # CONFIG_REGULATOR_DEBUG is not set # CONFIG_REGULATOR is not set # CONFIG_REGULATOR_TPS65132 is not set @@ -3862,6 +3901,8 @@ CONFIG_RELAY=y # CONFIG_RELOCATABLE_TEST is not set CONFIG_RELOCATABLE=y CONFIG_REMOTEPROC=m +CONFIG_RESET_ATTACK_MITIGATION=y +# CONFIG_RESET_HSDK_V1 is not set # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RFD_FTL is not set CONFIG_RFKILL_GPIO=m @@ -3881,6 +3922,8 @@ CONFIG_RMI4_F55=y CONFIG_RMI4_I2C=m CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m +# CONFIG_RMNET is not set +# CONFIG_ROCKCHIP_PHY is not set CONFIG_ROCKER=m CONFIG_ROCKETPORT=m CONFIG_ROMFS_FS=m @@ -3888,6 +3931,7 @@ CONFIG_ROSE=m CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPMSG_CHAR is not set # CONFIG_RPMSG_QCOM_GLINK_RPM is not set +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set CONFIG_RPR0521=m CONFIG_RSI_91X=m CONFIG_RSI_DEBUGFS=y @@ -4259,6 +4303,7 @@ CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBM_CFFPS=m CONFIG_SENSORS_IBMPEX=m CONFIG_SENSORS_IBMPOWERNV=y # CONFIG_SENSORS_IIO_HWMON is not set @@ -4349,6 +4394,7 @@ CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_TPS40422=m +CONFIG_SENSORS_TPS53679=m CONFIG_SENSORS_TSL2550=m # CONFIG_SENSORS_TSL2563 is not set CONFIG_SENSORS_UCD9000=m @@ -4422,6 +4468,7 @@ CONFIG_SERIO_ALTERA_PS2=m # CONFIG_SERIO_APBPS2 is not set CONFIG_SERIO_ARC_PS2=m # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_GPIO_PS2 is not set CONFIG_SERIO_I8042=y CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_OLPC_APSP is not set @@ -4435,6 +4482,7 @@ CONFIG_SERIO=y CONFIG_SFC_FALCON=m CONFIG_SFC_FALCON_MTD=y # CONFIG_SFC is not set +CONFIG_SFP=m # CONFIG_SGI_IOC4 is not set CONFIG_SGI_PARTITION=y CONFIG_SH_ETH=m @@ -4454,6 +4502,7 @@ CONFIG_SKGE_GENESIS=y CONFIG_SKGE=m # CONFIG_SKY2_DEBUG is not set CONFIG_SKY2=m +CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLICOSS is not set @@ -4497,7 +4546,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -CONFIG_SND_BCD2000=m +# CONFIG_SND_BCD2000 is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -4560,7 +4609,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=0 CONFIG_SND_HDA_INPUT_BEEP=y # CONFIG_SND_HDA_INTEL is not set CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_HDA_RECONFIG=y @@ -4649,6 +4698,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set CONFIG_SND_SOC_DIO2125=m @@ -4711,6 +4761,7 @@ CONFIG_SND_SOC_SPDIF=m # CONFIG_SND_SOC_TS3A227E is not set # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set +CONFIG_SND_SOC_WM8524=m # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set @@ -4805,6 +4856,7 @@ CONFIG_SQUASHFS=m CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_ZSTD=y # CONFIG_SRAM is not set # CONFIG_SRF04 is not set # CONFIG_SRF08 is not set @@ -4838,6 +4890,7 @@ CONFIG_STMMAC_ETH=m # CONFIG_STMMAC_PLATFORM is not set # CONFIG_STM_SOURCE_CONSOLE is not set CONFIG_STRICT_DEVMEM=y +# CONFIG_STRING_SELFTEST is not set CONFIG_STRIP_ASM_SYMS=y # CONFIG_STRIP is not set CONFIG_SUNDANCE=m @@ -5652,6 +5705,7 @@ CONFIG_W1_SLAVE_DS2438=m CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS2805=m CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_THERM=m @@ -5672,6 +5726,7 @@ CONFIG_WATCHDOG=y CONFIG_WCN36XX=m CONFIG_WDAT_WDT=m CONFIG_WDTPCI=m +CONFIG_WIL6210_DEBUGFS=y CONFIG_WIL6210_ISR_COR=y CONFIG_WIL6210=m # CONFIG_WIL6210_TRACING is not set @@ -5767,6 +5822,7 @@ CONFIG_ZLIB_INFLATE=y # CONFIG_ZONE_DEVICE is not set # CONFIG_ZPA2326 is not set CONFIG_ZRAM=m +# CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y CONFIG_ZSWAP=y diff --git a/kernel-s390x-debug.config b/kernel-s390x-debug.config index dc9e7643a..acca1bb10 100644 --- a/kernel-s390x-debug.config +++ b/kernel-s390x-debug.config @@ -148,7 +148,9 @@ CONFIG_AIX_PARTITION=y CONFIG_ALI_FIR=m CONFIG_ALIM1535_WDT=m # CONFIG_ALIM7101_WDT is not set +CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y # CONFIG_ALTERA_MBOX is not set +CONFIG_ALTERA_MSGDMA=m # CONFIG_ALTERA_STAPL is not set # CONFIG_ALTERA_TSE is not set CONFIG_ALX=m @@ -197,6 +199,7 @@ CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m CONFIG_ATH10K_SDIO=m # CONFIG_ATH10K_TRACING is not set +CONFIG_ATH10K_USB=m CONFIG_ATH5K_DEBUG=y CONFIG_ATH5K=m # CONFIG_ATH5K_TRACER is not set @@ -331,6 +334,7 @@ CONFIG_BATMAN_ADV_NC=y # CONFIG_BATTERY_LEGO_EV3 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set +# CONFIG_BATTERY_MAX1721X is not set # CONFIG_BATTERY_SBS is not set CONFIG_BAYCOM_EPP=m CONFIG_BAYCOM_PAR=m @@ -372,7 +376,6 @@ CONFIG_BINFMT_MISC=m CONFIG_BINFMT_SCRIPT=y CONFIG_BLK_CGROUP=y # CONFIG_BLK_CMDLINE_PARSER is not set -# CONFIG_BLK_CPQ_CISS_DA is not set CONFIG_BLK_DEBUG_FS=y # CONFIG_BLK_DEV_3W_XXXX_RAID is not set CONFIG_BLK_DEV_BSGLIB=y @@ -431,6 +434,7 @@ CONFIG_BNX2=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y CONFIG_BNXT_DCB=y +CONFIG_BNXT_FLOWER_OFFLOAD=y CONFIG_BNXT=m CONFIG_BNXT_SRIOV=y CONFIG_BONDING=m @@ -441,6 +445,7 @@ CONFIG_BONDING=m CONFIG_BOOT_PRINTK_DELAY=y CONFIG_BOUNCE=y CONFIG_BPF_JIT=y +CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m # CONFIG_BRCMDBG is not set @@ -599,12 +604,14 @@ CONFIG_CASSINI=m # CONFIG_CB710_DEBUG is not set # CONFIG_CC10001_ADC is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +# CONFIG_CCS811 is not set CONFIG_CCW_CONSOLE=y CONFIG_CCWGROUP=m CONFIG_CCW=y CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD is not set # CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEC_PIN=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_CEPH_FSCACHE=y CONFIG_CEPH_FS=m @@ -682,9 +689,10 @@ CONFIG_CIFS_STATS=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_XATTR=y -CONFIG_CISS_SCSI_TAPE=y CONFIG_CLEANCACHE=y +# CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_CLOCK_THERMAL is not set CONFIG_CLS_U32_MARK=y CONFIG_CLS_U32_PERF=y CONFIG_CM32181=m @@ -692,7 +700,10 @@ CONFIG_CM32181=m # CONFIG_CM3323 is not set CONFIG_CM3605=m # CONFIG_CM36651 is not set -# CONFIG_CMA is not set +CONFIG_CMA_AREAS=7 +# CONFIG_CMA_DEBUGFS is not set +# CONFIG_CMA_DEBUG is not set +CONFIG_CMA=y # CONFIG_CMDLINE_PARTITION is not set CONFIG_CMM_IUCV=y CONFIG_CMM=m @@ -787,6 +798,7 @@ CONFIG_CRYPTO_DEV_CHELSIO=m CONFIG_CRYPTO_DEV_HIFN_795X=m CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m +# CONFIG_CRYPTO_DEV_SP_CCP is not set CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DH=y CONFIG_CRYPTO_DRBG_CTR=y @@ -955,6 +967,7 @@ CONFIG_DEV_APPLETALK=m # CONFIG_DEVFREQ_GOV_POWERSAVE is not set CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m # CONFIG_DEVFREQ_GOV_USERSPACE is not set +# CONFIG_DEVFREQ_THERMAL is not set # CONFIG_DEVKMEM is not set CONFIG_DEVMEM=y CONFIG_DEVPORT=y @@ -1012,7 +1025,7 @@ CONFIG_DNS_RESOLVER=m CONFIG_DONGLE=y # CONFIG_DP83640_PHY is not set CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m +# CONFIG_DP83867_PHY is not set # CONFIG_DPM_WATCHDOG is not set # revisit this in debug CONFIG_DPOT_DAC=m CONFIG_DRAGONRISE_FF=y @@ -1112,6 +1125,7 @@ CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_CORE=m # CONFIG_DVB_CXD2099 is not set CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set CONFIG_DVB_DM1105=m CONFIG_DVB_DYNAMIC_MINORS=y @@ -1446,6 +1460,7 @@ CONFIG_GIRBIL_DONGLE=m # CONFIG_GPIO_ADP5588 is not set # CONFIG_GPIO_ALTERA is not set # CONFIG_GPIO_AMDPT is not set +CONFIG_GPIO_BD9571MWV=m # CONFIG_GPIO_BT8XX is not set # CONFIG_GPIO_DWAPB is not set CONFIG_GPIO_EXAR=m @@ -1472,6 +1487,7 @@ CONFIG_GPIO_PCI_IDIO_16=m # CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_SYSFS is not set # CONFIG_GPIO_TPIC2810 is not set +CONFIG_GPIO_TPS68470=y # CONFIG_GPIO_TS4900 is not set # CONFIG_GPIO_TS5500 is not set CONFIG_GPIO_VIPERBOARD=m @@ -1835,6 +1851,7 @@ CONFIG_INET=y # CONFIG_INFINIBAND_CXGB3_DEBUG is not set # CONFIG_INFINIBAND_CXGB3 is not set # CONFIG_INFINIBAND_CXGB4 is not set +# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set CONFIG_INFINIBAND_I40IW=m CONFIG_INFINIBAND_IPOIB_CM=y CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y @@ -1909,7 +1926,9 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m # CONFIG_INPUT_POLLDEV is not set CONFIG_INPUT_POWERMATE=m # CONFIG_INPUT_PWM_BEEPER is not set +# CONFIG_INPUT_PWM_VIBRA is not set CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_RK805_PWRKEY=m # CONFIG_INPUT_SPARSEKMAP is not set # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set @@ -1962,7 +1981,7 @@ CONFIG_IP_DCCP_CCID2=m # CONFIG_IP_DCCP_CCID3_DEBUG is not set CONFIG_IP_DCCP_CCID3=y # CONFIG_IP_DCCP_DEBUG is not set -CONFIG_IP_DCCP=m +# CONFIG_IP_DCCP is not set CONFIG_IPDDP_ENCAP=y CONFIG_IPDDP=m CONFIG_IP_FIB_TRIE_STATS=y @@ -2085,6 +2104,7 @@ CONFIG_IRDA_FAST_RR=y CONFIG_IR_ENE=m CONFIG_IR_FINTEK=m CONFIG_IR_GPIO_CIR=m +CONFIG_IR_GPIO_TX=m CONFIG_IR_HIX5HD2=m CONFIG_IR_IGORPLUGUSB=m CONFIG_IR_IGUANA=m @@ -2099,6 +2119,7 @@ CONFIG_IR_MCEUSB=m CONFIG_IR_NEC_DECODER=m CONFIG_IRNET=m CONFIG_IR_NUVOTON=m +CONFIG_IR_PWM_TX=m CONFIG_IRQ_DOMAIN_DEBUG=y # CONFIG_IRQSOFF_TRACER is not set CONFIG_IRQ_TIME_ACCOUNTING=y @@ -2323,6 +2344,7 @@ CONFIG_LCS=m # CONFIG_LDM_DEBUG is not set CONFIG_LDM_PARTITION=y # CONFIG_LEDS_AAT1290 is not set +CONFIG_LEDS_AS3645A=m # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set # CONFIG_LEDS_BD2802 is not set @@ -2420,6 +2442,7 @@ CONFIG_LMP91000=m CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_LOCKD=m +# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set # CONFIG_LOCK_DOWN_KERNEL is not set CONFIG_LOCKD_V4=y CONFIG_LOCK_STAT=y @@ -2444,6 +2467,7 @@ CONFIG_LPFC_NVME_INITIATOR=y CONFIG_LPFC_NVME_TARGET=y CONFIG_LSI_ET1011C_PHY=m CONFIG_LSM_MMAP_MIN_ADDR=65536 +# CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set # CONFIG_LTC2497 is not set # CONFIG_LTC2632 is not set @@ -2525,6 +2549,7 @@ CONFIG_MDIO_BITBANG=m CONFIG_MDIO_DEVICE=m # CONFIG_MDIO_GPIO is not set # CONFIG_MDIO_HISI_FEMAC is not set +CONFIG_MDIO_I2C=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set CONFIG_MD_LINEAR=m @@ -2593,6 +2618,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_AXP20X_I2C is not set # CONFIG_MFD_AXP20X is not set # CONFIG_MFD_BCM590XX is not set +# CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_CORE is not set # CONFIG_MFD_CPCAP is not set # CONFIG_MFD_CROS_EC is not set @@ -2632,7 +2658,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_RN5T618 is not set # CONFIG_MFD_RT5033 is not set # CONFIG_MFD_RTSX_PCI is not set -CONFIG_MFD_RTSX_USB=m +# CONFIG_MFD_RTSX_USB is not set # CONFIG_MFD_SEC_CORE is not set # CONFIG_MFD_SI476X_CORE is not set # CONFIG_MFD_SKY81452 is not set @@ -2657,8 +2683,9 @@ CONFIG_MFD_SM501_GPIO=y # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912 is not set # CONFIG_MFD_TPS65912_SPI is not set +# CONFIG_MFD_TPS68470 is not set # CONFIG_MFD_TPS80031 is not set -CONFIG_MFD_VIPERBOARD=m +# CONFIG_MFD_VIPERBOARD is not set # CONFIG_MFD_VX855 is not set # CONFIG_MFD_WL1273_CORE is not set # CONFIG_MFD_WM831X_I2C is not set @@ -2700,8 +2727,10 @@ CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_CORE_IPOIB=y CONFIG_MLX5_CORE=m # CONFIG_MLX5_EN_IPSEC is not set +CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set CONFIG_MLX5_INFINIBAND=m +CONFIG_MLX5_MPFS=y # CONFIG_MLX90614 is not set CONFIG_MLX_CPLD_PLATFORM=m CONFIG_MLXFW=m @@ -2722,7 +2751,6 @@ CONFIG_MMA7660=m # CONFIG_MMA9551 is not set # CONFIG_MMA9553 is not set # CONFIG_MMC35240 is not set -CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_CB710=m @@ -3063,6 +3091,7 @@ CONFIG_NETLABEL=y CONFIG_NETLINK_DIAG=m CONFIG_NET_MPLS_GSO=m CONFIG_NET_NCSI=y +CONFIG_NET_NSH=m CONFIG_NET_NS=y # CONFIG_NET_PACKET_ENGINE is not set CONFIG_NET_PKTGEN=m @@ -3131,6 +3160,7 @@ CONFIG_NET_VENDOR_AQUANTIA=y # CONFIG_NET_VENDOR_FUJITSU is not set # CONFIG_NET_VENDOR_HISILICON is not set # CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_I825XX is not set # CONFIG_NET_VENDOR_INTEL is not set # CONFIG_NET_VENDOR_MARVELL is not set @@ -3289,6 +3319,7 @@ CONFIG_NFT_EXTHDR=m CONFIG_NFT_FIB_INET=m CONFIG_NFT_FIB_IPV4=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_HASH=m CONFIG_NFT_LIMIT=m @@ -3555,6 +3586,8 @@ CONFIG_PFAULT=y # CONFIG_PHONET is not set # CONFIG_PHY_CPCAP_USB is not set CONFIG_PHYLIB=m +CONFIG_PHYLINK=m +# CONFIG_PHY_MVEBU_CP110_COMPHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set # CONFIG_PHY_QCOM_USB_HSIC is not set @@ -3562,12 +3595,16 @@ CONFIG_PHYLIB=m # CONFIG_PHY_ST_SPEAR1310_MIPHY is not set # CONFIG_PHY_ST_SPEAR1340_MIPHY is not set # CONFIG_PHY_TUSB1210 is not set +# CONFIG_PI433 is not set CONFIG_PID_NS=y # CONFIG_PINCONF is not set # CONFIG_PINCTRL_CANNONLAKE is not set # CONFIG_PINCTRL_IPQ8074 is not set # CONFIG_PINCTRL is not set # CONFIG_PINCTRL_MCP23S08 is not set +CONFIG_PINCTRL_RK805=m +# CONFIG_PINCTRL_SPRD is not set +# CONFIG_PINCTRL_SPRD_SC9860 is not set # CONFIG_PINCTRL_SX150X is not set # CONFIG_PINMUX is not set CONFIG_PKCS7_MESSAGE_PARSER=y @@ -3584,7 +3621,7 @@ CONFIG_PM_DEBUG=y # CONFIG_PM_DEVFREQ is not set # CONFIG_PMIC_ADP5520 is not set # CONFIG_PMIC_DA903X is not set -# CONFIG_PM_OPP is not set +CONFIG_PM_OPP=y CONFIG_PM_STD_PARTITION="" CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_TRACE_RTC=y @@ -3664,6 +3701,7 @@ CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000_SPI is not set # CONFIG_QCA7000_UART is not set # CONFIG_QCOM_EMAC is not set +# CONFIG_QCOM_GLINK_SSR is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set CONFIG_QDIO=m @@ -3698,6 +3736,7 @@ CONFIG_R8169=m # CONFIG_R8188EU is not set CONFIG_R8712U=m CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162) +CONFIG_R8822BE=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_AZTECH=m CONFIG_RADIO_CADET=m @@ -3764,6 +3803,7 @@ CONFIG_REALTEK_PHY=m CONFIG_REFCOUNT_FULL=y CONFIG_REGMAP_I2C=m CONFIG_REGMAP=y +CONFIG_REGULATOR_BD9571MWV=m # CONFIG_REGULATOR_DEBUG is not set # CONFIG_REGULATOR is not set # CONFIG_REGULATOR_TPS65132 is not set @@ -3777,7 +3817,9 @@ CONFIG_REISERFS_PROC_INFO=y CONFIG_RELAY=y # CONFIG_RELOCATABLE_TEST is not set CONFIG_REMOTEPROC=m +CONFIG_RESET_ATTACK_MITIGATION=y # CONFIG_RESET_CONTROLLER is not set +# CONFIG_RESET_HSDK_V1 is not set # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RFD_FTL is not set CONFIG_RFKILL_GPIO=m @@ -3797,6 +3839,8 @@ CONFIG_RMI4_F55=y CONFIG_RMI4_I2C=m CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m +# CONFIG_RMNET is not set +# CONFIG_ROCKCHIP_PHY is not set CONFIG_ROCKER=m CONFIG_ROCKETPORT=m CONFIG_ROMFS_FS=m @@ -3804,6 +3848,7 @@ CONFIG_ROSE=m CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPMSG_CHAR is not set # CONFIG_RPMSG_QCOM_GLINK_RPM is not set +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set CONFIG_RPR0521=m CONFIG_RSI_91X=m CONFIG_RSI_DEBUGFS=y @@ -4185,6 +4230,7 @@ CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m +# CONFIG_SENSORS_IBM_CFFPS is not set CONFIG_SENSORS_IBMPEX=m # CONFIG_SENSORS_IIO_HWMON is not set CONFIG_SENSORS_INA209=m @@ -4274,6 +4320,7 @@ CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_TPS40422=m +CONFIG_SENSORS_TPS53679=m # CONFIG_SENSORS_TSL2550 is not set # CONFIG_SENSORS_TSL2563 is not set CONFIG_SENSORS_UCD9000=m @@ -4343,6 +4390,7 @@ CONFIG_SERIO_ALTERA_PS2=m # CONFIG_SERIO_APBPS2 is not set CONFIG_SERIO_ARC_PS2=m # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_GPIO_PS2 is not set CONFIG_SERIO_I8042=y # CONFIG_SERIO is not set CONFIG_SERIO_LIBPS2=m @@ -4355,6 +4403,7 @@ CONFIG_SERIO_SERPORT=m CONFIG_SFC_FALCON=m CONFIG_SFC_FALCON_MTD=y # CONFIG_SFC is not set +CONFIG_SFP=m # CONFIG_SGI_IOC4 is not set # CONFIG_SGI_PARTITION is not set CONFIG_SHARED_KERNEL=y @@ -4374,6 +4423,7 @@ CONFIG_SKGE_GENESIS=y CONFIG_SKGE=m # CONFIG_SKY2_DEBUG is not set CONFIG_SKY2=m +CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLICOSS is not set @@ -4419,7 +4469,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -CONFIG_SND_BCD2000=m +# CONFIG_SND_BCD2000 is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -4482,7 +4532,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=0 CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_HDA_RECONFIG=y @@ -4571,6 +4621,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set CONFIG_SND_SOC_DIO2125=m @@ -4633,6 +4684,7 @@ CONFIG_SND_SOC_SPDIF=m # CONFIG_SND_SOC_TS3A227E is not set # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set +CONFIG_SND_SOC_WM8524=m # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set @@ -4724,6 +4776,7 @@ CONFIG_SQUASHFS=m CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_ZSTD=y # CONFIG_SRAM is not set # CONFIG_SRF04 is not set # CONFIG_SRF08 is not set @@ -4758,6 +4811,7 @@ CONFIG_STMMAC_ETH=m # CONFIG_STMMAC_PLATFORM is not set # CONFIG_STM_SOURCE_CONSOLE is not set CONFIG_STRICT_DEVMEM=y +# CONFIG_STRING_SELFTEST is not set CONFIG_STRIP_ASM_SYMS=y # CONFIG_STRIP is not set CONFIG_SUNDANCE=m @@ -5532,6 +5586,7 @@ CONFIG_VLAN_8021Q_GVRP=y CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_MVRP=y CONFIG_VLSI_FIR=m +CONFIG_VMCP_CMA_SIZE=4 CONFIG_VMCP=y # CONFIG_VME_BUS is not set CONFIG_VMLOGRDR=m @@ -5570,6 +5625,7 @@ CONFIG_W1_SLAVE_DS2438=m CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS2805=m CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_THERM=m @@ -5590,6 +5646,7 @@ CONFIG_WATCHDOG=y CONFIG_WCN36XX=m CONFIG_WDAT_WDT=m # CONFIG_WDTPCI is not set +CONFIG_WIL6210_DEBUGFS=y CONFIG_WIL6210_ISR_COR=y CONFIG_WIL6210=m # CONFIG_WIL6210_TRACING is not set @@ -5679,6 +5736,7 @@ CONFIG_ZLIB_DEFLATE=y CONFIG_ZLIB_INFLATE=y # CONFIG_ZPA2326 is not set CONFIG_ZRAM=m +# CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y CONFIG_ZSWAP=y diff --git a/kernel-s390x.config b/kernel-s390x.config index 058b61400..b5c7f851f 100644 --- a/kernel-s390x.config +++ b/kernel-s390x.config @@ -148,7 +148,9 @@ CONFIG_AIX_PARTITION=y CONFIG_ALI_FIR=m CONFIG_ALIM1535_WDT=m # CONFIG_ALIM7101_WDT is not set +CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y # CONFIG_ALTERA_MBOX is not set +CONFIG_ALTERA_MSGDMA=m # CONFIG_ALTERA_STAPL is not set # CONFIG_ALTERA_TSE is not set CONFIG_ALX=m @@ -196,6 +198,7 @@ CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m CONFIG_ATH10K_SDIO=m # CONFIG_ATH10K_TRACING is not set +CONFIG_ATH10K_USB=m CONFIG_ATH5K_DEBUG=y CONFIG_ATH5K=m # CONFIG_ATH5K_TRACER is not set @@ -330,6 +333,7 @@ CONFIG_BATMAN_ADV_NC=y # CONFIG_BATTERY_LEGO_EV3 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set +# CONFIG_BATTERY_MAX1721X is not set # CONFIG_BATTERY_SBS is not set CONFIG_BAYCOM_EPP=m CONFIG_BAYCOM_PAR=m @@ -371,7 +375,6 @@ CONFIG_BINFMT_MISC=m CONFIG_BINFMT_SCRIPT=y CONFIG_BLK_CGROUP=y # CONFIG_BLK_CMDLINE_PARSER is not set -# CONFIG_BLK_CPQ_CISS_DA is not set CONFIG_BLK_DEBUG_FS=y # CONFIG_BLK_DEV_3W_XXXX_RAID is not set CONFIG_BLK_DEV_BSGLIB=y @@ -430,6 +433,7 @@ CONFIG_BNX2=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y CONFIG_BNXT_DCB=y +CONFIG_BNXT_FLOWER_OFFLOAD=y CONFIG_BNXT=m CONFIG_BNXT_SRIOV=y CONFIG_BONDING=m @@ -440,6 +444,7 @@ CONFIG_BONDING=m CONFIG_BOOT_PRINTK_DELAY=y CONFIG_BOUNCE=y CONFIG_BPF_JIT=y +CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m # CONFIG_BRCMDBG is not set @@ -598,12 +603,14 @@ CONFIG_CASSINI=m # CONFIG_CB710_DEBUG is not set # CONFIG_CC10001_ADC is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +# CONFIG_CCS811 is not set CONFIG_CCW_CONSOLE=y CONFIG_CCWGROUP=m CONFIG_CCW=y CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD is not set # CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEC_PIN=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_CEPH_FSCACHE=y CONFIG_CEPH_FS=m @@ -681,9 +688,10 @@ CONFIG_CIFS_STATS=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_XATTR=y -CONFIG_CISS_SCSI_TAPE=y CONFIG_CLEANCACHE=y +# CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_CLOCK_THERMAL is not set CONFIG_CLS_U32_MARK=y CONFIG_CLS_U32_PERF=y CONFIG_CM32181=m @@ -691,7 +699,10 @@ CONFIG_CM32181=m # CONFIG_CM3323 is not set CONFIG_CM3605=m # CONFIG_CM36651 is not set -# CONFIG_CMA is not set +CONFIG_CMA_AREAS=7 +# CONFIG_CMA_DEBUGFS is not set +# CONFIG_CMA_DEBUG is not set +CONFIG_CMA=y # CONFIG_CMDLINE_PARTITION is not set CONFIG_CMM_IUCV=y CONFIG_CMM=m @@ -785,6 +796,7 @@ CONFIG_CRYPTO_DEV_CHELSIO=m CONFIG_CRYPTO_DEV_HIFN_795X=m CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m +# CONFIG_CRYPTO_DEV_SP_CCP is not set CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DH=y CONFIG_CRYPTO_DRBG_CTR=y @@ -945,6 +957,7 @@ CONFIG_DEV_APPLETALK=m # CONFIG_DEVFREQ_GOV_POWERSAVE is not set CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m # CONFIG_DEVFREQ_GOV_USERSPACE is not set +# CONFIG_DEVFREQ_THERMAL is not set # CONFIG_DEVKMEM is not set CONFIG_DEVMEM=y CONFIG_DEVPORT=y @@ -1001,7 +1014,7 @@ CONFIG_DNS_RESOLVER=m CONFIG_DONGLE=y # CONFIG_DP83640_PHY is not set CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m +# CONFIG_DP83867_PHY is not set # CONFIG_DPM_WATCHDOG is not set # revisit this in debug CONFIG_DPOT_DAC=m CONFIG_DRAGONRISE_FF=y @@ -1101,6 +1114,7 @@ CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_CORE=m # CONFIG_DVB_CXD2099 is not set CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set CONFIG_DVB_DM1105=m CONFIG_DVB_DYNAMIC_MINORS=y @@ -1428,6 +1442,7 @@ CONFIG_GIRBIL_DONGLE=m # CONFIG_GPIO_ADP5588 is not set # CONFIG_GPIO_ALTERA is not set # CONFIG_GPIO_AMDPT is not set +CONFIG_GPIO_BD9571MWV=m # CONFIG_GPIO_BT8XX is not set # CONFIG_GPIO_DWAPB is not set CONFIG_GPIO_EXAR=m @@ -1454,6 +1469,7 @@ CONFIG_GPIO_PCI_IDIO_16=m # CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_SYSFS is not set # CONFIG_GPIO_TPIC2810 is not set +CONFIG_GPIO_TPS68470=y # CONFIG_GPIO_TS4900 is not set # CONFIG_GPIO_TS5500 is not set CONFIG_GPIO_VIPERBOARD=m @@ -1817,6 +1833,7 @@ CONFIG_INET=y # CONFIG_INFINIBAND_CXGB3_DEBUG is not set # CONFIG_INFINIBAND_CXGB3 is not set # CONFIG_INFINIBAND_CXGB4 is not set +# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set CONFIG_INFINIBAND_I40IW=m CONFIG_INFINIBAND_IPOIB_CM=y CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y @@ -1891,7 +1908,9 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m # CONFIG_INPUT_POLLDEV is not set CONFIG_INPUT_POWERMATE=m # CONFIG_INPUT_PWM_BEEPER is not set +# CONFIG_INPUT_PWM_VIBRA is not set CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_RK805_PWRKEY=m # CONFIG_INPUT_SPARSEKMAP is not set # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set @@ -1944,7 +1963,7 @@ CONFIG_IP_DCCP_CCID2=m # CONFIG_IP_DCCP_CCID3_DEBUG is not set CONFIG_IP_DCCP_CCID3=y # CONFIG_IP_DCCP_DEBUG is not set -CONFIG_IP_DCCP=m +# CONFIG_IP_DCCP is not set CONFIG_IPDDP_ENCAP=y CONFIG_IPDDP=m CONFIG_IP_FIB_TRIE_STATS=y @@ -2067,6 +2086,7 @@ CONFIG_IRDA_FAST_RR=y CONFIG_IR_ENE=m CONFIG_IR_FINTEK=m CONFIG_IR_GPIO_CIR=m +CONFIG_IR_GPIO_TX=m CONFIG_IR_HIX5HD2=m CONFIG_IR_IGORPLUGUSB=m CONFIG_IR_IGUANA=m @@ -2081,6 +2101,7 @@ CONFIG_IR_MCEUSB=m CONFIG_IR_NEC_DECODER=m CONFIG_IRNET=m CONFIG_IR_NUVOTON=m +CONFIG_IR_PWM_TX=m CONFIG_IRQ_DOMAIN_DEBUG=y # CONFIG_IRQSOFF_TRACER is not set CONFIG_IRQ_TIME_ACCOUNTING=y @@ -2303,6 +2324,7 @@ CONFIG_LCS=m # CONFIG_LDM_DEBUG is not set CONFIG_LDM_PARTITION=y # CONFIG_LEDS_AAT1290 is not set +CONFIG_LEDS_AS3645A=m # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set # CONFIG_LEDS_BD2802 is not set @@ -2400,6 +2422,7 @@ CONFIG_LMP91000=m CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_LOCKD=m +# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set # CONFIG_LOCK_DOWN_KERNEL is not set CONFIG_LOCKD_V4=y # CONFIG_LOCK_STAT is not set @@ -2424,6 +2447,7 @@ CONFIG_LPFC_NVME_INITIATOR=y CONFIG_LPFC_NVME_TARGET=y CONFIG_LSI_ET1011C_PHY=m CONFIG_LSM_MMAP_MIN_ADDR=65536 +# CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set # CONFIG_LTC2497 is not set # CONFIG_LTC2632 is not set @@ -2504,6 +2528,7 @@ CONFIG_MDIO_BITBANG=m CONFIG_MDIO_DEVICE=m # CONFIG_MDIO_GPIO is not set # CONFIG_MDIO_HISI_FEMAC is not set +CONFIG_MDIO_I2C=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set CONFIG_MD_LINEAR=m @@ -2572,6 +2597,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_AXP20X_I2C is not set # CONFIG_MFD_AXP20X is not set # CONFIG_MFD_BCM590XX is not set +# CONFIG_MFD_BD9571MWV is not set # CONFIG_MFD_CORE is not set # CONFIG_MFD_CPCAP is not set # CONFIG_MFD_CROS_EC is not set @@ -2611,7 +2637,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_MFD_RN5T618 is not set # CONFIG_MFD_RT5033 is not set # CONFIG_MFD_RTSX_PCI is not set -CONFIG_MFD_RTSX_USB=m +# CONFIG_MFD_RTSX_USB is not set # CONFIG_MFD_SEC_CORE is not set # CONFIG_MFD_SI476X_CORE is not set # CONFIG_MFD_SKY81452 is not set @@ -2636,8 +2662,9 @@ CONFIG_MFD_SM501_GPIO=y # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912 is not set # CONFIG_MFD_TPS65912_SPI is not set +# CONFIG_MFD_TPS68470 is not set # CONFIG_MFD_TPS80031 is not set -CONFIG_MFD_VIPERBOARD=m +# CONFIG_MFD_VIPERBOARD is not set # CONFIG_MFD_VX855 is not set # CONFIG_MFD_WL1273_CORE is not set # CONFIG_MFD_WM831X_I2C is not set @@ -2679,8 +2706,10 @@ CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_CORE_IPOIB=y CONFIG_MLX5_CORE=m # CONFIG_MLX5_EN_IPSEC is not set +CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set CONFIG_MLX5_INFINIBAND=m +CONFIG_MLX5_MPFS=y # CONFIG_MLX90614 is not set CONFIG_MLX_CPLD_PLATFORM=m CONFIG_MLXFW=m @@ -2701,7 +2730,6 @@ CONFIG_MMA7660=m # CONFIG_MMA9551 is not set # CONFIG_MMA9553 is not set # CONFIG_MMC35240 is not set -CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_CB710=m @@ -3041,6 +3069,7 @@ CONFIG_NETLABEL=y CONFIG_NETLINK_DIAG=m CONFIG_NET_MPLS_GSO=m CONFIG_NET_NCSI=y +CONFIG_NET_NSH=m CONFIG_NET_NS=y # CONFIG_NET_PACKET_ENGINE is not set CONFIG_NET_PKTGEN=m @@ -3109,6 +3138,7 @@ CONFIG_NET_VENDOR_AQUANTIA=y # CONFIG_NET_VENDOR_FUJITSU is not set # CONFIG_NET_VENDOR_HISILICON is not set # CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_I825XX is not set # CONFIG_NET_VENDOR_INTEL is not set # CONFIG_NET_VENDOR_MARVELL is not set @@ -3267,6 +3297,7 @@ CONFIG_NFT_EXTHDR=m CONFIG_NFT_FIB_INET=m CONFIG_NFT_FIB_IPV4=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_HASH=m CONFIG_NFT_LIMIT=m @@ -3533,6 +3564,8 @@ CONFIG_PFAULT=y # CONFIG_PHONET is not set # CONFIG_PHY_CPCAP_USB is not set CONFIG_PHYLIB=m +CONFIG_PHYLINK=m +# CONFIG_PHY_MVEBU_CP110_COMPHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set # CONFIG_PHY_QCOM_USB_HSIC is not set @@ -3540,12 +3573,16 @@ CONFIG_PHYLIB=m # CONFIG_PHY_ST_SPEAR1310_MIPHY is not set # CONFIG_PHY_ST_SPEAR1340_MIPHY is not set # CONFIG_PHY_TUSB1210 is not set +# CONFIG_PI433 is not set CONFIG_PID_NS=y # CONFIG_PINCONF is not set # CONFIG_PINCTRL_CANNONLAKE is not set # CONFIG_PINCTRL_IPQ8074 is not set # CONFIG_PINCTRL is not set # CONFIG_PINCTRL_MCP23S08 is not set +CONFIG_PINCTRL_RK805=m +# CONFIG_PINCTRL_SPRD is not set +# CONFIG_PINCTRL_SPRD_SC9860 is not set # CONFIG_PINCTRL_SX150X is not set # CONFIG_PINMUX is not set CONFIG_PKCS7_MESSAGE_PARSER=y @@ -3562,7 +3599,7 @@ CONFIG_PM_DEBUG=y # CONFIG_PM_DEVFREQ is not set # CONFIG_PMIC_ADP5520 is not set # CONFIG_PMIC_DA903X is not set -# CONFIG_PM_OPP is not set +CONFIG_PM_OPP=y CONFIG_PM_STD_PARTITION="" CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_TRACE_RTC=y @@ -3641,6 +3678,7 @@ CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000_SPI is not set # CONFIG_QCA7000_UART is not set # CONFIG_QCOM_EMAC is not set +# CONFIG_QCOM_GLINK_SSR is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set CONFIG_QDIO=m @@ -3675,6 +3713,7 @@ CONFIG_R8169=m # CONFIG_R8188EU is not set CONFIG_R8712U=m CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162) +CONFIG_R8822BE=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_AZTECH=m CONFIG_RADIO_CADET=m @@ -3741,6 +3780,7 @@ CONFIG_REALTEK_PHY=m # CONFIG_REFCOUNT_FULL is not set CONFIG_REGMAP_I2C=m CONFIG_REGMAP=y +CONFIG_REGULATOR_BD9571MWV=m # CONFIG_REGULATOR_DEBUG is not set # CONFIG_REGULATOR is not set # CONFIG_REGULATOR_TPS65132 is not set @@ -3754,7 +3794,9 @@ CONFIG_REISERFS_PROC_INFO=y CONFIG_RELAY=y # CONFIG_RELOCATABLE_TEST is not set CONFIG_REMOTEPROC=m +CONFIG_RESET_ATTACK_MITIGATION=y # CONFIG_RESET_CONTROLLER is not set +# CONFIG_RESET_HSDK_V1 is not set # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RFD_FTL is not set CONFIG_RFKILL_GPIO=m @@ -3774,6 +3816,8 @@ CONFIG_RMI4_F55=y CONFIG_RMI4_I2C=m CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m +# CONFIG_RMNET is not set +# CONFIG_ROCKCHIP_PHY is not set CONFIG_ROCKER=m CONFIG_ROCKETPORT=m CONFIG_ROMFS_FS=m @@ -3781,6 +3825,7 @@ CONFIG_ROSE=m CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPMSG_CHAR is not set # CONFIG_RPMSG_QCOM_GLINK_RPM is not set +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set CONFIG_RPR0521=m CONFIG_RSI_91X=m CONFIG_RSI_DEBUGFS=y @@ -4162,6 +4207,7 @@ CONFIG_SENSORS_GL520SM=m # CONFIG_SENSORS_HMC5843_SPI is not set # CONFIG_SENSORS_I5K_AMB is not set CONFIG_SENSORS_IBMAEM=m +# CONFIG_SENSORS_IBM_CFFPS is not set CONFIG_SENSORS_IBMPEX=m # CONFIG_SENSORS_IIO_HWMON is not set CONFIG_SENSORS_INA209=m @@ -4251,6 +4297,7 @@ CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_TPS40422=m +CONFIG_SENSORS_TPS53679=m # CONFIG_SENSORS_TSL2550 is not set # CONFIG_SENSORS_TSL2563 is not set CONFIG_SENSORS_UCD9000=m @@ -4320,6 +4367,7 @@ CONFIG_SERIO_ALTERA_PS2=m # CONFIG_SERIO_APBPS2 is not set CONFIG_SERIO_ARC_PS2=m # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_GPIO_PS2 is not set CONFIG_SERIO_I8042=y # CONFIG_SERIO is not set CONFIG_SERIO_LIBPS2=m @@ -4332,6 +4380,7 @@ CONFIG_SERIO_SERPORT=m CONFIG_SFC_FALCON=m CONFIG_SFC_FALCON_MTD=y # CONFIG_SFC is not set +CONFIG_SFP=m # CONFIG_SGI_IOC4 is not set # CONFIG_SGI_PARTITION is not set CONFIG_SHARED_KERNEL=y @@ -4351,6 +4400,7 @@ CONFIG_SKGE_GENESIS=y CONFIG_SKGE=m # CONFIG_SKY2_DEBUG is not set CONFIG_SKY2=m +CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLICOSS is not set @@ -4396,7 +4446,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -CONFIG_SND_BCD2000=m +# CONFIG_SND_BCD2000 is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -4459,7 +4509,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=0 CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_HDA_RECONFIG=y @@ -4547,6 +4597,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set CONFIG_SND_SOC_DIO2125=m @@ -4609,6 +4660,7 @@ CONFIG_SND_SOC_SPDIF=m # CONFIG_SND_SOC_TS3A227E is not set # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set +CONFIG_SND_SOC_WM8524=m # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set @@ -4700,6 +4752,7 @@ CONFIG_SQUASHFS=m CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_ZSTD=y # CONFIG_SRAM is not set # CONFIG_SRF04 is not set # CONFIG_SRF08 is not set @@ -4734,6 +4787,7 @@ CONFIG_STMMAC_ETH=m # CONFIG_STMMAC_PLATFORM is not set # CONFIG_STM_SOURCE_CONSOLE is not set CONFIG_STRICT_DEVMEM=y +# CONFIG_STRING_SELFTEST is not set CONFIG_STRIP_ASM_SYMS=y # CONFIG_STRIP is not set CONFIG_SUNDANCE=m @@ -5508,6 +5562,7 @@ CONFIG_VLAN_8021Q_GVRP=y CONFIG_VLAN_8021Q=m CONFIG_VLAN_8021Q_MVRP=y CONFIG_VLSI_FIR=m +CONFIG_VMCP_CMA_SIZE=4 CONFIG_VMCP=y # CONFIG_VME_BUS is not set CONFIG_VMLOGRDR=m @@ -5546,6 +5601,7 @@ CONFIG_W1_SLAVE_DS2438=m CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS2805=m CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_THERM=m @@ -5566,6 +5622,7 @@ CONFIG_WATCHDOG=y CONFIG_WCN36XX=m CONFIG_WDAT_WDT=m # CONFIG_WDTPCI is not set +CONFIG_WIL6210_DEBUGFS=y CONFIG_WIL6210_ISR_COR=y CONFIG_WIL6210=m # CONFIG_WIL6210_TRACING is not set @@ -5655,6 +5712,7 @@ CONFIG_ZLIB_DEFLATE=y CONFIG_ZLIB_INFLATE=y # CONFIG_ZPA2326 is not set CONFIG_ZRAM=m +# CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y CONFIG_ZSWAP=y diff --git a/kernel-x86_64-debug.config b/kernel-x86_64-debug.config index d260a9646..99f92b549 100644 --- a/kernel-x86_64-debug.config +++ b/kernel-x86_64-debug.config @@ -199,7 +199,9 @@ CONFIG_ALIENWARE_WMI=m CONFIG_ALI_FIR=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y # CONFIG_ALTERA_MBOX is not set +CONFIG_ALTERA_MSGDMA=m CONFIG_ALTERA_STAPL=m CONFIG_ALTERA_TSE=m CONFIG_ALX=m @@ -207,6 +209,8 @@ CONFIG_ALX=m CONFIG_AMD8111_ETH=m CONFIG_AMD_IOMMU_V2=m CONFIG_AMD_IOMMU=y +# CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT is not set +CONFIG_AMD_MEM_ENCRYPT=y CONFIG_AMD_NUMA=y CONFIG_AMD_PHY=m CONFIG_AMD_XGBE_DCB=y @@ -254,6 +258,7 @@ CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m CONFIG_ATH10K_SDIO=m # CONFIG_ATH10K_TRACING is not set +CONFIG_ATH10K_USB=m CONFIG_ATH5K_DEBUG=y CONFIG_ATH5K=m # CONFIG_ATH5K_TRACER is not set @@ -394,6 +399,7 @@ CONFIG_BATMAN_ADV_NC=y # CONFIG_BATTERY_LEGO_EV3 is not set # CONFIG_BATTERY_MAX17040 is not set CONFIG_BATTERY_MAX17042=m +# CONFIG_BATTERY_MAX1721X is not set # CONFIG_BATTERY_SBS is not set CONFIG_BAYCOM_EPP=m CONFIG_BAYCOM_PAR=m @@ -435,7 +441,6 @@ CONFIG_BINFMT_MISC=m CONFIG_BINFMT_SCRIPT=y CONFIG_BLK_CGROUP=y # CONFIG_BLK_CMDLINE_PARSER is not set -CONFIG_BLK_CPQ_CISS_DA=m CONFIG_BLK_DEBUG_FS=y CONFIG_BLK_DEV_3W_XXXX_RAID=m CONFIG_BLK_DEV_AMD74XX=y @@ -500,6 +505,7 @@ CONFIG_BNX2=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y CONFIG_BNXT_DCB=y +CONFIG_BNXT_FLOWER_OFFLOAD=y CONFIG_BNXT=m CONFIG_BNXT_SRIOV=y CONFIG_BONDING=m @@ -510,6 +516,7 @@ CONFIG_BONDING=m CONFIG_BOOT_PRINTK_DELAY=y CONFIG_BOUNCE=y CONFIG_BPF_JIT=y +CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m # CONFIG_BRCMDBG is not set @@ -670,11 +677,13 @@ CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set # CONFIG_CC10001_ADC is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +# CONFIG_CCS811 is not set CONFIG_CC_STACKPROTECTOR_STRONG=y CONFIG_CC_STACKPROTECTOR=y CONFIG_CDROM_PKTCDVD_BUFFERS=8 CONFIG_CDROM_PKTCDVD=m # CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEC_PIN=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_CEPH_FSCACHE=y CONFIG_CEPH_FS=m @@ -753,9 +762,10 @@ CONFIG_CIFS_STATS=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_XATTR=y -CONFIG_CISS_SCSI_TAPE=y CONFIG_CLEANCACHE=y +# CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_CLOCK_THERMAL is not set CONFIG_CLS_U32_MARK=y CONFIG_CLS_U32_PERF=y CONFIG_CM32181=m @@ -886,6 +896,7 @@ CONFIG_CRYPTO_DEV_QAT_C62X=m CONFIG_CRYPTO_DEV_QAT_C62XVF=m CONFIG_CRYPTO_DEV_QAT_DH895xCC=m CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m +# CONFIG_CRYPTO_DEV_SP_CCP is not set CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DH=y CONFIG_CRYPTO_DRBG_CTR=y @@ -1073,6 +1084,9 @@ CONFIG_DEV_DAX_PMEM=m # CONFIG_DEVFREQ_GOV_POWERSAVE is not set CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m # CONFIG_DEVFREQ_GOV_USERSPACE is not set +# CONFIG_DEVFREQ_THERMAL is not set +CONFIG_DEVICE_PRIVATE=y +CONFIG_DEVICE_PUBLIC=y # CONFIG_DEVKMEM is not set CONFIG_DEVMEM=y CONFIG_DEVPORT=y @@ -1133,7 +1147,7 @@ CONFIG_DNS_RESOLVER=m CONFIG_DONGLE=y CONFIG_DP83640_PHY=m CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m +# CONFIG_DP83867_PHY is not set # CONFIG_DPM_WATCHDOG is not set # revisit this in debug CONFIG_DPOT_DAC=m CONFIG_DPTF_POWER=m @@ -1248,6 +1262,7 @@ CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_CORE=m # CONFIG_DVB_CXD2099 is not set CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set CONFIG_DVB_DM1105=m CONFIG_DVB_DYNAMIC_MINORS=y @@ -1645,6 +1660,7 @@ CONFIG_GIRBIL_DONGLE=m # CONFIG_GPIO_AMD8111 is not set # CONFIG_GPIO_AMDPT is not set # CONFIG_GPIO_AXP209 is not set +CONFIG_GPIO_BD9571MWV=m # CONFIG_GPIO_BT8XX is not set CONFIG_GPIO_CRYSTAL_COVE=y # CONFIG_GPIO_CS5535 is not set @@ -1679,6 +1695,7 @@ CONFIG_GPIO_PCI_IDIO_16=m # CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_SYSFS is not set # CONFIG_GPIO_TPIC2810 is not set +CONFIG_GPIO_TPS68470=y # CONFIG_GPIO_TS4900 is not set # CONFIG_GPIO_TS5500 is not set CONFIG_GPIO_VIPERBOARD=m @@ -1849,6 +1866,7 @@ CONFIG_HISAX_W6692=y CONFIG_HIST_TRIGGERS=y # CONFIG_HMC6352 is not set # CONFIG_HMC_DRV is not set +CONFIG_HMM_MIRROR=y CONFIG_HOLTEK_FF=y # CONFIG_HOSTAP is not set CONFIG_HOTPLUG_CPU=y @@ -1911,6 +1929,7 @@ CONFIG_HYPERV=m CONFIG_HYPERV_NET=m CONFIG_HYPERV_STORAGE=m CONFIG_HYPERV_UTILS=m +CONFIG_HYPERV_VSOCKETS=m CONFIG_HYSDN_CAPI=y CONFIG_HYSDN=m CONFIG_HZ_1000=y @@ -2086,6 +2105,7 @@ CONFIG_INET=y # CONFIG_INFINIBAND_CXGB3_DEBUG is not set CONFIG_INFINIBAND_CXGB3=m CONFIG_INFINIBAND_CXGB4=m +# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set CONFIG_INFINIBAND_HFI1=m CONFIG_INFINIBAND_I40IW=m CONFIG_INFINIBAND_IPOIB_CM=y @@ -2163,7 +2183,9 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_POWERMATE=m # CONFIG_INPUT_PWM_BEEPER is not set +# CONFIG_INPUT_PWM_VIBRA is not set CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_RK805_PWRKEY=m CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_INPUT_SPARSEKMAP=m CONFIG_INPUT_TABLET=y @@ -2208,6 +2230,7 @@ CONFIG_INTEL_POWERCLAMP=m CONFIG_INTEL_PUNIT_IPC=m CONFIG_INTEL_RAPL=m CONFIG_INTEL_RDT_A=y +CONFIG_INTEL_RDT=y CONFIG_INTEL_RST=m # CONFIG_INTEL_SCU_IPC is not set CONFIG_INTEL_SMARTCONNECT=y @@ -2261,7 +2284,7 @@ CONFIG_IP_DCCP_CCID2=m # CONFIG_IP_DCCP_CCID3_DEBUG is not set CONFIG_IP_DCCP_CCID3=y # CONFIG_IP_DCCP_DEBUG is not set -CONFIG_IP_DCCP=m +# CONFIG_IP_DCCP is not set CONFIG_IPDDP_ENCAP=y CONFIG_IPDDP=m CONFIG_IP_FIB_TRIE_STATS=y @@ -2388,6 +2411,7 @@ CONFIG_IRDA=m CONFIG_IR_ENE=m CONFIG_IR_FINTEK=m CONFIG_IR_GPIO_CIR=m +CONFIG_IR_GPIO_TX=m CONFIG_IR_HIX5HD2=m CONFIG_IR_IGORPLUGUSB=m CONFIG_IR_IGUANA=m @@ -2402,6 +2426,7 @@ CONFIG_IR_MCEUSB=m CONFIG_IR_NEC_DECODER=m CONFIG_IRNET=m CONFIG_IR_NUVOTON=m +CONFIG_IR_PWM_TX=m # CONFIG_IRQ_DOMAIN_DEBUG is not set CONFIG_IRQ_REMAP=y # CONFIG_IRQSOFF_TRACER is not set @@ -2635,6 +2660,7 @@ CONFIG_LCD_PLATFORM=m # CONFIG_LDM_DEBUG is not set CONFIG_LDM_PARTITION=y # CONFIG_LEDS_AAT1290 is not set +CONFIG_LEDS_AS3645A=m # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set # CONFIG_LEDS_BD2802 is not set @@ -2735,6 +2761,7 @@ CONFIG_LOAD_UEFI_KEYS=y CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_LOCKD=m +CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT=y CONFIG_LOCK_DOWN_KERNEL=y CONFIG_LOCKD_V4=y CONFIG_LOCK_STAT=y @@ -2759,6 +2786,7 @@ CONFIG_LPFC_NVME_INITIATOR=y CONFIG_LPFC_NVME_TARGET=y CONFIG_LSI_ET1011C_PHY=m CONFIG_LSM_MMAP_MIN_ADDR=65536 +# CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set # CONFIG_LTC2497 is not set # CONFIG_LTC2632 is not set @@ -2838,6 +2866,7 @@ CONFIG_MDIO_BITBANG=m # CONFIG_MDIO_BUS_MUX_MMIOREG is not set # CONFIG_MDIO_GPIO is not set # CONFIG_MDIO_HISI_FEMAC is not set +CONFIG_MDIO_I2C=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set CONFIG_MD_LINEAR=m @@ -2906,6 +2935,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 CONFIG_MFD_AXP20X_I2C=y CONFIG_MFD_AXP20X=y # CONFIG_MFD_BCM590XX is not set +CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set # CONFIG_MFD_CROS_EC is not set @@ -2973,6 +3003,7 @@ CONFIG_MFD_SM501=m # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912 is not set # CONFIG_MFD_TPS65912_SPI is not set +CONFIG_MFD_TPS68470=y # CONFIG_MFD_TPS80031 is not set CONFIG_MFD_VIPERBOARD=m CONFIG_MFD_VX855=m @@ -3021,8 +3052,10 @@ CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_CORE_IPOIB=y CONFIG_MLX5_CORE=m # CONFIG_MLX5_EN_IPSEC is not set +CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set CONFIG_MLX5_INFINIBAND=m +CONFIG_MLX5_MPFS=y # CONFIG_MLX90614 is not set CONFIG_MLX_CPLD_PLATFORM=m CONFIG_MLXFW=m @@ -3044,7 +3077,6 @@ CONFIG_MMA7660=m # CONFIG_MMA9551 is not set # CONFIG_MMA9553 is not set # CONFIG_MMC35240 is not set -CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_CB710=m @@ -3396,6 +3428,7 @@ CONFIG_NETLABEL=y CONFIG_NETLINK_DIAG=m CONFIG_NET_MPLS_GSO=m CONFIG_NET_NCSI=y +CONFIG_NET_NSH=m CONFIG_NET_NS=y CONFIG_NET_PACKET_ENGINE=y CONFIG_NET_PKTGEN=m @@ -3465,6 +3498,7 @@ CONFIG_NET_VENDOR_EXAR=y # CONFIG_NET_VENDOR_FUJITSU is not set # CONFIG_NET_VENDOR_HISILICON is not set # CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_I825XX is not set CONFIG_NET_VENDOR_INTEL=y CONFIG_NET_VENDOR_MARVELL=y @@ -3626,6 +3660,7 @@ CONFIG_NFT_EXTHDR=m CONFIG_NFT_FIB_INET=m CONFIG_NFT_FIB_IPV4=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_HASH=m CONFIG_NFT_LIMIT=m @@ -3930,6 +3965,8 @@ CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PHONET is not set # CONFIG_PHY_CPCAP_USB is not set CONFIG_PHYLIB=y +CONFIG_PHYLINK=m +# CONFIG_PHY_MVEBU_CP110_COMPHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set # CONFIG_PHY_QCOM_USB_HSIC is not set @@ -3939,6 +3976,7 @@ CONFIG_PHYSICAL_START=0x1000000 # CONFIG_PHY_ST_SPEAR1310_MIPHY is not set # CONFIG_PHY_ST_SPEAR1340_MIPHY is not set # CONFIG_PHY_TUSB1210 is not set +# CONFIG_PI433 is not set CONFIG_PID_NS=y CONFIG_PINCONF=y # CONFIG_PINCTRL_AMD is not set @@ -3946,9 +3984,14 @@ CONFIG_PINCTRL_BAYTRAIL=y CONFIG_PINCTRL_BROXTON=m # CONFIG_PINCTRL_CANNONLAKE is not set CONFIG_PINCTRL_CHERRYVIEW=y +CONFIG_PINCTRL_DENVERTON=m # CONFIG_PINCTRL_GEMINILAKE is not set # CONFIG_PINCTRL_IPQ8074 is not set +CONFIG_PINCTRL_LEWISBURG=m # CONFIG_PINCTRL_MCP23S08 is not set +CONFIG_PINCTRL_RK805=m +# CONFIG_PINCTRL_SPRD is not set +# CONFIG_PINCTRL_SPRD_SC9860 is not set CONFIG_PINCTRL_SUNRISEPOINT=m # CONFIG_PINCTRL_SX150X is not set CONFIG_PINCTRL=y @@ -3967,7 +4010,7 @@ CONFIG_PM_DEVFREQ=y # CONFIG_PMIC_ADP5520 is not set # CONFIG_PMIC_DA903X is not set CONFIG_PMIC_OPREGION=y -# CONFIG_PM_OPP is not set +CONFIG_PM_OPP=y CONFIG_PM_STD_PARTITION="" CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_TRACE_RTC=y @@ -4058,6 +4101,7 @@ CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000_SPI is not set # CONFIG_QCA7000_UART is not set # CONFIG_QCOM_EMAC is not set +# CONFIG_QCOM_GLINK_SSR is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set CONFIG_QEDE=m @@ -4087,6 +4131,7 @@ CONFIG_R8169=m CONFIG_R8188EU=m CONFIG_R8712U=m CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162) +CONFIG_R8822BE=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_AZTECH=m CONFIG_RADIO_CADET=m @@ -4156,6 +4201,7 @@ CONFIG_REALTEK_PHY=m CONFIG_REFCOUNT_FULL=y CONFIG_REGMAP_I2C=y CONFIG_REGMAP=y +CONFIG_REGULATOR_BD9571MWV=m # CONFIG_REGULATOR_DEBUG is not set # CONFIG_REGULATOR is not set # CONFIG_REGULATOR_TPS65132 is not set @@ -4170,6 +4216,8 @@ CONFIG_RELAY=y # CONFIG_RELOCATABLE_TEST is not set CONFIG_RELOCATABLE=y CONFIG_REMOTEPROC=m +CONFIG_RESET_ATTACK_MITIGATION=y +# CONFIG_RESET_HSDK_V1 is not set # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RFD_FTL is not set CONFIG_RFKILL_GPIO=m @@ -4189,6 +4237,8 @@ CONFIG_RMI4_F55=y CONFIG_RMI4_I2C=m CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m +# CONFIG_RMNET is not set +# CONFIG_ROCKCHIP_PHY is not set CONFIG_ROCKER=m CONFIG_ROCKETPORT=m CONFIG_ROMFS_FS=m @@ -4196,6 +4246,7 @@ CONFIG_ROSE=m CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPMSG_CHAR is not set # CONFIG_RPMSG_QCOM_GLINK_RPM is not set +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set CONFIG_RPR0521=m CONFIG_RSI_91X=m CONFIG_RSI_DEBUGFS=y @@ -4574,6 +4625,7 @@ CONFIG_SENSORS_HDAPS=m CONFIG_SENSORS_I5500=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_IBMAEM=m +# CONFIG_SENSORS_IBM_CFFPS is not set CONFIG_SENSORS_IBMPEX=m # CONFIG_SENSORS_IIO_HWMON is not set CONFIG_SENSORS_INA209=m @@ -4665,6 +4717,7 @@ CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_TPS40422=m +CONFIG_SENSORS_TPS53679=m CONFIG_SENSORS_TSL2550=m # CONFIG_SENSORS_TSL2563 is not set CONFIG_SENSORS_UCD9000=m @@ -4736,6 +4789,7 @@ CONFIG_SERIO_ALTERA_PS2=m # CONFIG_SERIO_APBPS2 is not set CONFIG_SERIO_ARC_PS2=m # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_GPIO_PS2 is not set CONFIG_SERIO_I8042=y CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_OLPC_APSP is not set @@ -4753,6 +4807,7 @@ CONFIG_SFC_MCDI_MON=y CONFIG_SFC_MTD=y CONFIG_SFC_SRIOV=y CONFIG_SFI=y +CONFIG_SFP=m # CONFIG_SGI_GRU_DEBUG is not set CONFIG_SGI_GRU=m CONFIG_SGI_IOC4=m @@ -4775,6 +4830,7 @@ CONFIG_SKGE_GENESIS=y CONFIG_SKGE=m # CONFIG_SKY2_DEBUG is not set CONFIG_SKY2=m +CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLICOSS is not set @@ -4819,7 +4875,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -CONFIG_SND_BCD2000=m +# CONFIG_SND_BCD2000 is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -4882,7 +4938,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=0 CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_HDA_RECONFIG=y @@ -4972,6 +5028,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set CONFIG_SND_SOC_DIO2125=m @@ -5059,6 +5116,7 @@ CONFIG_SND_SOC_SSM4567=m CONFIG_SND_SOC_TS3A227E=m # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set +CONFIG_SND_SOC_WM8524=m # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set @@ -5162,6 +5220,7 @@ CONFIG_SQUASHFS=m CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_ZSTD=y # CONFIG_SRAM is not set # CONFIG_SRF04 is not set # CONFIG_SRF08 is not set @@ -5195,6 +5254,7 @@ CONFIG_STMMAC_ETH=m # CONFIG_STMMAC_PLATFORM is not set # CONFIG_STM_SOURCE_CONSOLE is not set CONFIG_STRICT_DEVMEM=y +# CONFIG_STRING_SELFTEST is not set CONFIG_STRIP_ASM_SYMS=y # CONFIG_STRIP is not set CONFIG_SUNDANCE=m @@ -6028,6 +6088,7 @@ CONFIG_W1_SLAVE_DS2438=m CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS2805=m CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_THERM=m @@ -6047,6 +6108,7 @@ CONFIG_WATCHDOG=y CONFIG_WCN36XX=m CONFIG_WDAT_WDT=m CONFIG_WDTPCI=m +CONFIG_WIL6210_DEBUGFS=y CONFIG_WIL6210_ISR_COR=y CONFIG_WIL6210=m # CONFIG_WIL6210_TRACING is not set @@ -6095,6 +6157,7 @@ CONFIG_WMI_BMOF=m CONFIG_WQ_WATCHDOG=y # CONFIG_WW_MUTEX_SELFTEST is not set # CONFIG_X25 is not set +# CONFIG_X86_5LEVEL is not set CONFIG_X86_64_ACPI_NUMA=y CONFIG_X86_ACPI_CPUFREQ_CPB=y CONFIG_X86_ACPI_CPUFREQ=m @@ -6161,6 +6224,7 @@ CONFIG_XEN_NETDEV_BACKEND=m CONFIG_XEN_NETDEV_FRONTEND=m CONFIG_XEN_PCIDEV_BACKEND=m CONFIG_XEN_PCIDEV_FRONTEND=m +# CONFIG_XEN_PVCALLS_BACKEND is not set CONFIG_XEN_PVHVM=y CONFIG_XEN_PVH=y CONFIG_XEN_PV=y @@ -6215,6 +6279,7 @@ CONFIG_ZONE_DEVICE=y CONFIG_ZONE_DMA=y # CONFIG_ZPA2326 is not set CONFIG_ZRAM=m +# CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y CONFIG_ZSWAP=y diff --git a/kernel-x86_64.config b/kernel-x86_64.config index 11c0799b6..7f94bd96e 100644 --- a/kernel-x86_64.config +++ b/kernel-x86_64.config @@ -199,7 +199,9 @@ CONFIG_ALIENWARE_WMI=m CONFIG_ALI_FIR=m CONFIG_ALIM1535_WDT=m CONFIG_ALIM7101_WDT=m +CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ=y # CONFIG_ALTERA_MBOX is not set +CONFIG_ALTERA_MSGDMA=m CONFIG_ALTERA_STAPL=m CONFIG_ALTERA_TSE=m CONFIG_ALX=m @@ -207,6 +209,8 @@ CONFIG_ALX=m CONFIG_AMD8111_ETH=m CONFIG_AMD_IOMMU_V2=m CONFIG_AMD_IOMMU=y +# CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT is not set +CONFIG_AMD_MEM_ENCRYPT=y CONFIG_AMD_NUMA=y CONFIG_AMD_PHY=m CONFIG_AMD_XGBE_DCB=y @@ -253,6 +257,7 @@ CONFIG_ATH10K=m CONFIG_ATH10K_PCI=m CONFIG_ATH10K_SDIO=m # CONFIG_ATH10K_TRACING is not set +CONFIG_ATH10K_USB=m CONFIG_ATH5K_DEBUG=y CONFIG_ATH5K=m # CONFIG_ATH5K_TRACER is not set @@ -393,6 +398,7 @@ CONFIG_BATMAN_ADV_NC=y # CONFIG_BATTERY_LEGO_EV3 is not set # CONFIG_BATTERY_MAX17040 is not set CONFIG_BATTERY_MAX17042=m +# CONFIG_BATTERY_MAX1721X is not set # CONFIG_BATTERY_SBS is not set CONFIG_BAYCOM_EPP=m CONFIG_BAYCOM_PAR=m @@ -434,7 +440,6 @@ CONFIG_BINFMT_MISC=m CONFIG_BINFMT_SCRIPT=y CONFIG_BLK_CGROUP=y # CONFIG_BLK_CMDLINE_PARSER is not set -CONFIG_BLK_CPQ_CISS_DA=m CONFIG_BLK_DEBUG_FS=y CONFIG_BLK_DEV_3W_XXXX_RAID=m CONFIG_BLK_DEV_AMD74XX=y @@ -499,6 +504,7 @@ CONFIG_BNX2=m CONFIG_BNX2X=m CONFIG_BNX2X_SRIOV=y CONFIG_BNXT_DCB=y +CONFIG_BNXT_FLOWER_OFFLOAD=y CONFIG_BNXT=m CONFIG_BNXT_SRIOV=y CONFIG_BONDING=m @@ -509,6 +515,7 @@ CONFIG_BONDING=m CONFIG_BOOT_PRINTK_DELAY=y CONFIG_BOUNCE=y CONFIG_BPF_JIT=y +CONFIG_BPF_STREAM_PARSER=y CONFIG_BPF_SYSCALL=y CONFIG_BPQETHER=m # CONFIG_BRCMDBG is not set @@ -669,11 +676,13 @@ CONFIG_CB710_CORE=m # CONFIG_CB710_DEBUG is not set # CONFIG_CC10001_ADC is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +# CONFIG_CCS811 is not set CONFIG_CC_STACKPROTECTOR_STRONG=y CONFIG_CC_STACKPROTECTOR=y CONFIG_CDROM_PKTCDVD_BUFFERS=8 CONFIG_CDROM_PKTCDVD=m # CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CEC_PIN=y CONFIG_CEC_PLATFORM_DRIVERS=y CONFIG_CEPH_FSCACHE=y CONFIG_CEPH_FS=m @@ -752,9 +761,10 @@ CONFIG_CIFS_STATS=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_XATTR=y -CONFIG_CISS_SCSI_TAPE=y CONFIG_CLEANCACHE=y +# CONFIG_CLK_HSDK is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_CLOCK_THERMAL is not set CONFIG_CLS_U32_MARK=y CONFIG_CLS_U32_PERF=y CONFIG_CM32181=m @@ -884,6 +894,7 @@ CONFIG_CRYPTO_DEV_QAT_C62X=m CONFIG_CRYPTO_DEV_QAT_C62XVF=m CONFIG_CRYPTO_DEV_QAT_DH895xCC=m CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m +# CONFIG_CRYPTO_DEV_SP_CCP is not set CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_CRYPTO_DH=y CONFIG_CRYPTO_DRBG_CTR=y @@ -1063,6 +1074,9 @@ CONFIG_DEV_DAX_PMEM=m # CONFIG_DEVFREQ_GOV_POWERSAVE is not set CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m # CONFIG_DEVFREQ_GOV_USERSPACE is not set +# CONFIG_DEVFREQ_THERMAL is not set +CONFIG_DEVICE_PRIVATE=y +CONFIG_DEVICE_PUBLIC=y # CONFIG_DEVKMEM is not set CONFIG_DEVMEM=y CONFIG_DEVPORT=y @@ -1122,7 +1136,7 @@ CONFIG_DNS_RESOLVER=m CONFIG_DONGLE=y CONFIG_DP83640_PHY=m CONFIG_DP83848_PHY=m -CONFIG_DP83867_PHY=m +# CONFIG_DP83867_PHY is not set # CONFIG_DPM_WATCHDOG is not set # revisit this in debug CONFIG_DPOT_DAC=m CONFIG_DPTF_POWER=m @@ -1237,6 +1251,7 @@ CONFIG_DVB_BUDGET_PATCH=m CONFIG_DVB_CORE=m # CONFIG_DVB_CXD2099 is not set CONFIG_DVB_DDBRIDGE=m +# CONFIG_DVB_DDBRIDGE_MSIENABLE is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set CONFIG_DVB_DM1105=m CONFIG_DVB_DYNAMIC_MINORS=y @@ -1627,6 +1642,7 @@ CONFIG_GIRBIL_DONGLE=m # CONFIG_GPIO_AMD8111 is not set # CONFIG_GPIO_AMDPT is not set # CONFIG_GPIO_AXP209 is not set +CONFIG_GPIO_BD9571MWV=m # CONFIG_GPIO_BT8XX is not set CONFIG_GPIO_CRYSTAL_COVE=y # CONFIG_GPIO_CS5535 is not set @@ -1661,6 +1677,7 @@ CONFIG_GPIO_PCI_IDIO_16=m # CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_SYSFS is not set # CONFIG_GPIO_TPIC2810 is not set +CONFIG_GPIO_TPS68470=y # CONFIG_GPIO_TS4900 is not set # CONFIG_GPIO_TS5500 is not set CONFIG_GPIO_VIPERBOARD=m @@ -1831,6 +1848,7 @@ CONFIG_HISAX_W6692=y CONFIG_HIST_TRIGGERS=y # CONFIG_HMC6352 is not set # CONFIG_HMC_DRV is not set +CONFIG_HMM_MIRROR=y CONFIG_HOLTEK_FF=y # CONFIG_HOSTAP is not set CONFIG_HOTPLUG_CPU=y @@ -1893,6 +1911,7 @@ CONFIG_HYPERV=m CONFIG_HYPERV_NET=m CONFIG_HYPERV_STORAGE=m CONFIG_HYPERV_UTILS=m +CONFIG_HYPERV_VSOCKETS=m CONFIG_HYSDN_CAPI=y CONFIG_HYSDN=m CONFIG_HZ_1000=y @@ -2068,6 +2087,7 @@ CONFIG_INET=y # CONFIG_INFINIBAND_CXGB3_DEBUG is not set CONFIG_INFINIBAND_CXGB3=m CONFIG_INFINIBAND_CXGB4=m +# CONFIG_INFINIBAND_EXP_USER_ACCESS is not set CONFIG_INFINIBAND_HFI1=m CONFIG_INFINIBAND_I40IW=m CONFIG_INFINIBAND_IPOIB_CM=y @@ -2145,7 +2165,9 @@ CONFIG_INPUT_PMIC8XXX_PWRKEY=m CONFIG_INPUT_POLLDEV=m CONFIG_INPUT_POWERMATE=m # CONFIG_INPUT_PWM_BEEPER is not set +# CONFIG_INPUT_PWM_VIBRA is not set CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_RK805_PWRKEY=m CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_INPUT_SPARSEKMAP=m CONFIG_INPUT_TABLET=y @@ -2190,6 +2212,7 @@ CONFIG_INTEL_POWERCLAMP=m CONFIG_INTEL_PUNIT_IPC=m CONFIG_INTEL_RAPL=m CONFIG_INTEL_RDT_A=y +CONFIG_INTEL_RDT=y CONFIG_INTEL_RST=m # CONFIG_INTEL_SCU_IPC is not set CONFIG_INTEL_SMARTCONNECT=y @@ -2243,7 +2266,7 @@ CONFIG_IP_DCCP_CCID2=m # CONFIG_IP_DCCP_CCID3_DEBUG is not set CONFIG_IP_DCCP_CCID3=y # CONFIG_IP_DCCP_DEBUG is not set -CONFIG_IP_DCCP=m +# CONFIG_IP_DCCP is not set CONFIG_IPDDP_ENCAP=y CONFIG_IPDDP=m CONFIG_IP_FIB_TRIE_STATS=y @@ -2370,6 +2393,7 @@ CONFIG_IRDA=m CONFIG_IR_ENE=m CONFIG_IR_FINTEK=m CONFIG_IR_GPIO_CIR=m +CONFIG_IR_GPIO_TX=m CONFIG_IR_HIX5HD2=m CONFIG_IR_IGORPLUGUSB=m CONFIG_IR_IGUANA=m @@ -2384,6 +2408,7 @@ CONFIG_IR_MCEUSB=m CONFIG_IR_NEC_DECODER=m CONFIG_IRNET=m CONFIG_IR_NUVOTON=m +CONFIG_IR_PWM_TX=m # CONFIG_IRQ_DOMAIN_DEBUG is not set CONFIG_IRQ_REMAP=y # CONFIG_IRQSOFF_TRACER is not set @@ -2615,6 +2640,7 @@ CONFIG_LCD_PLATFORM=m # CONFIG_LDM_DEBUG is not set CONFIG_LDM_PARTITION=y # CONFIG_LEDS_AAT1290 is not set +CONFIG_LEDS_AS3645A=m # CONFIG_LEDS_BCM6328 is not set # CONFIG_LEDS_BCM6358 is not set # CONFIG_LEDS_BD2802 is not set @@ -2715,6 +2741,7 @@ CONFIG_LOAD_UEFI_KEYS=y CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_LOCKD=m +CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT=y CONFIG_LOCK_DOWN_KERNEL=y CONFIG_LOCKD_V4=y # CONFIG_LOCK_STAT is not set @@ -2739,6 +2766,7 @@ CONFIG_LPFC_NVME_INITIATOR=y CONFIG_LPFC_NVME_TARGET=y CONFIG_LSI_ET1011C_PHY=m CONFIG_LSM_MMAP_MIN_ADDR=65536 +# CONFIG_LTC2471 is not set # CONFIG_LTC2485 is not set # CONFIG_LTC2497 is not set # CONFIG_LTC2632 is not set @@ -2796,7 +2824,7 @@ CONFIG_MAX30100=m # CONFIG_MAX9611 is not set # CONFIG_MAXIM_THERMOCOUPLE is not set CONFIG_MAX_RAW_DEVS=8192 -CONFIG_MAXSMP=y +# CONFIG_MAXSMP is not set # CONFIG_MC3230 is not set # CONFIG_MCB is not set # CONFIG_MCE_AMD_INJ is not set @@ -2818,6 +2846,7 @@ CONFIG_MDIO_BITBANG=m # CONFIG_MDIO_BUS_MUX_MMIOREG is not set # CONFIG_MDIO_GPIO is not set # CONFIG_MDIO_HISI_FEMAC is not set +CONFIG_MDIO_I2C=m # CONFIG_MDIO_OCTEON is not set # CONFIG_MDIO_THUNDER is not set CONFIG_MD_LINEAR=m @@ -2886,6 +2915,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 CONFIG_MFD_AXP20X_I2C=y CONFIG_MFD_AXP20X=y # CONFIG_MFD_BCM590XX is not set +CONFIG_MFD_BD9571MWV=m CONFIG_MFD_CORE=y # CONFIG_MFD_CPCAP is not set # CONFIG_MFD_CROS_EC is not set @@ -2953,6 +2983,7 @@ CONFIG_MFD_SM501=m # CONFIG_MFD_TPS65912_I2C is not set # CONFIG_MFD_TPS65912 is not set # CONFIG_MFD_TPS65912_SPI is not set +CONFIG_MFD_TPS68470=y # CONFIG_MFD_TPS80031 is not set CONFIG_MFD_VIPERBOARD=m CONFIG_MFD_VX855=m @@ -3001,8 +3032,10 @@ CONFIG_MLX5_CORE_EN=y CONFIG_MLX5_CORE_IPOIB=y CONFIG_MLX5_CORE=m # CONFIG_MLX5_EN_IPSEC is not set +CONFIG_MLX5_ESWITCH=y # CONFIG_MLX5_FPGA is not set CONFIG_MLX5_INFINIBAND=m +CONFIG_MLX5_MPFS=y # CONFIG_MLX90614 is not set CONFIG_MLX_CPLD_PLATFORM=m CONFIG_MLXFW=m @@ -3024,7 +3057,6 @@ CONFIG_MMA7660=m # CONFIG_MMA9551 is not set # CONFIG_MMA9553 is not set # CONFIG_MMC35240 is not set -CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_CB710=m @@ -3376,6 +3408,7 @@ CONFIG_NETLABEL=y CONFIG_NETLINK_DIAG=m CONFIG_NET_MPLS_GSO=m CONFIG_NET_NCSI=y +CONFIG_NET_NSH=m CONFIG_NET_NS=y CONFIG_NET_PACKET_ENGINE=y CONFIG_NET_PKTGEN=m @@ -3445,6 +3478,7 @@ CONFIG_NET_VENDOR_EXAR=y # CONFIG_NET_VENDOR_FUJITSU is not set # CONFIG_NET_VENDOR_HISILICON is not set # CONFIG_NET_VENDOR_HP is not set +# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_I825XX is not set CONFIG_NET_VENDOR_INTEL=y CONFIG_NET_VENDOR_MARVELL=y @@ -3606,6 +3640,7 @@ CONFIG_NFT_EXTHDR=m CONFIG_NFT_FIB_INET=m CONFIG_NFT_FIB_IPV4=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_HASH=m CONFIG_NFT_LIMIT=m @@ -3704,7 +3739,7 @@ CONFIG_NORTEL_HERMES=m CONFIG_NOUVEAU_DEBUG=5 CONFIG_NOUVEAU_DEBUG_DEFAULT=3 CONFIG_NOZOMI=m -CONFIG_NR_CPUS=8192 +CONFIG_NR_CPUS=1024 CONFIG_NR_DEV_DAX=32768 CONFIG_NS83820=m CONFIG_NSC_FIR=m @@ -3910,6 +3945,8 @@ CONFIG_PERSISTENT_KEYRINGS=y # CONFIG_PHONET is not set # CONFIG_PHY_CPCAP_USB is not set CONFIG_PHYLIB=y +CONFIG_PHYLINK=m +# CONFIG_PHY_MVEBU_CP110_COMPHY is not set # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set # CONFIG_PHY_QCOM_USB_HSIC is not set @@ -3919,6 +3956,7 @@ CONFIG_PHYSICAL_START=0x1000000 # CONFIG_PHY_ST_SPEAR1310_MIPHY is not set # CONFIG_PHY_ST_SPEAR1340_MIPHY is not set # CONFIG_PHY_TUSB1210 is not set +# CONFIG_PI433 is not set CONFIG_PID_NS=y CONFIG_PINCONF=y # CONFIG_PINCTRL_AMD is not set @@ -3926,9 +3964,14 @@ CONFIG_PINCTRL_BAYTRAIL=y CONFIG_PINCTRL_BROXTON=m # CONFIG_PINCTRL_CANNONLAKE is not set CONFIG_PINCTRL_CHERRYVIEW=y +CONFIG_PINCTRL_DENVERTON=m # CONFIG_PINCTRL_GEMINILAKE is not set # CONFIG_PINCTRL_IPQ8074 is not set +CONFIG_PINCTRL_LEWISBURG=m # CONFIG_PINCTRL_MCP23S08 is not set +CONFIG_PINCTRL_RK805=m +# CONFIG_PINCTRL_SPRD is not set +# CONFIG_PINCTRL_SPRD_SC9860 is not set CONFIG_PINCTRL_SUNRISEPOINT=m # CONFIG_PINCTRL_SX150X is not set CONFIG_PINCTRL=y @@ -3947,7 +3990,7 @@ CONFIG_PM_DEVFREQ=y # CONFIG_PMIC_ADP5520 is not set # CONFIG_PMIC_DA903X is not set CONFIG_PMIC_OPREGION=y -# CONFIG_PM_OPP is not set +CONFIG_PM_OPP=y CONFIG_PM_STD_PARTITION="" CONFIG_PM_TEST_SUSPEND=y CONFIG_PM_TRACE_RTC=y @@ -4037,6 +4080,7 @@ CONFIG_PWRSEQ_SIMPLE=m # CONFIG_QCA7000_SPI is not set # CONFIG_QCA7000_UART is not set # CONFIG_QCOM_EMAC is not set +# CONFIG_QCOM_GLINK_SSR is not set # CONFIG_QCOM_HIDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set CONFIG_QEDE=m @@ -4066,6 +4110,7 @@ CONFIG_R8169=m CONFIG_R8188EU=m CONFIG_R8712U=m CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162) +CONFIG_R8822BE=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_AZTECH=m CONFIG_RADIO_CADET=m @@ -4135,6 +4180,7 @@ CONFIG_REALTEK_PHY=m # CONFIG_REFCOUNT_FULL is not set CONFIG_REGMAP_I2C=y CONFIG_REGMAP=y +CONFIG_REGULATOR_BD9571MWV=m # CONFIG_REGULATOR_DEBUG is not set # CONFIG_REGULATOR is not set # CONFIG_REGULATOR_TPS65132 is not set @@ -4149,6 +4195,8 @@ CONFIG_RELAY=y # CONFIG_RELOCATABLE_TEST is not set CONFIG_RELOCATABLE=y CONFIG_REMOTEPROC=m +CONFIG_RESET_ATTACK_MITIGATION=y +# CONFIG_RESET_HSDK_V1 is not set # CONFIG_RESET_TI_SYSCON is not set # CONFIG_RFD_FTL is not set CONFIG_RFKILL_GPIO=m @@ -4168,6 +4216,8 @@ CONFIG_RMI4_F55=y CONFIG_RMI4_I2C=m CONFIG_RMI4_SMB=m CONFIG_RMI4_SPI=m +# CONFIG_RMNET is not set +# CONFIG_ROCKCHIP_PHY is not set CONFIG_ROCKER=m CONFIG_ROCKETPORT=m CONFIG_ROMFS_FS=m @@ -4175,6 +4225,7 @@ CONFIG_ROSE=m CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPMSG_CHAR is not set # CONFIG_RPMSG_QCOM_GLINK_RPM is not set +# CONFIG_RPMSG_QCOM_GLINK_SMEM is not set CONFIG_RPR0521=m CONFIG_RSI_91X=m CONFIG_RSI_DEBUGFS=y @@ -4553,6 +4604,7 @@ CONFIG_SENSORS_HDAPS=m CONFIG_SENSORS_I5500=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_IBMAEM=m +# CONFIG_SENSORS_IBM_CFFPS is not set CONFIG_SENSORS_IBMPEX=m # CONFIG_SENSORS_IIO_HWMON is not set CONFIG_SENSORS_INA209=m @@ -4644,6 +4696,7 @@ CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_TPS40422=m +CONFIG_SENSORS_TPS53679=m CONFIG_SENSORS_TSL2550=m # CONFIG_SENSORS_TSL2563 is not set CONFIG_SENSORS_UCD9000=m @@ -4715,6 +4768,7 @@ CONFIG_SERIO_ALTERA_PS2=m # CONFIG_SERIO_APBPS2 is not set CONFIG_SERIO_ARC_PS2=m # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_GPIO_PS2 is not set CONFIG_SERIO_I8042=y CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_OLPC_APSP is not set @@ -4732,6 +4786,7 @@ CONFIG_SFC_MCDI_MON=y CONFIG_SFC_MTD=y CONFIG_SFC_SRIOV=y CONFIG_SFI=y +CONFIG_SFP=m # CONFIG_SGI_GRU_DEBUG is not set CONFIG_SGI_GRU=m CONFIG_SGI_IOC4=m @@ -4754,6 +4809,7 @@ CONFIG_SKGE_GENESIS=y CONFIG_SKGE=m # CONFIG_SKY2_DEBUG is not set CONFIG_SKY2=m +CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLICOSS is not set @@ -4798,7 +4854,7 @@ CONFIG_SND_AU8830=m # CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set # CONFIG_SND_AW2 is not set CONFIG_SND_AZT3328=m -CONFIG_SND_BCD2000=m +# CONFIG_SND_BCD2000 is not set CONFIG_SND_BEBOB=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set @@ -4861,7 +4917,7 @@ CONFIG_SND_HDA_INPUT_BEEP_MODE=0 CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_PATCH_LOADER=y -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1 CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_PREALLOC_SIZE=4096 CONFIG_SND_HDA_RECONFIG=y @@ -4950,6 +5006,7 @@ CONFIG_SND_SOC_CS42L42=m # CONFIG_SND_SOC_CS42L56 is not set # CONFIG_SND_SOC_CS42L73 is not set # CONFIG_SND_SOC_CS42XX8_I2C is not set +CONFIG_SND_SOC_CS43130=m # CONFIG_SND_SOC_CS4349 is not set # CONFIG_SND_SOC_CS53L30 is not set CONFIG_SND_SOC_DIO2125=m @@ -5037,6 +5094,7 @@ CONFIG_SND_SOC_SSM4567=m CONFIG_SND_SOC_TS3A227E=m # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8523 is not set +CONFIG_SND_SOC_WM8524=m # CONFIG_SND_SOC_WM8580 is not set # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8728 is not set @@ -5140,6 +5198,7 @@ CONFIG_SQUASHFS=m CONFIG_SQUASHFS_XATTR=y CONFIG_SQUASHFS_XZ=y CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_ZSTD=y # CONFIG_SRAM is not set # CONFIG_SRF04 is not set # CONFIG_SRF08 is not set @@ -5173,6 +5232,7 @@ CONFIG_STMMAC_ETH=m # CONFIG_STMMAC_PLATFORM is not set # CONFIG_STM_SOURCE_CONSOLE is not set CONFIG_STRICT_DEVMEM=y +# CONFIG_STRING_SELFTEST is not set CONFIG_STRIP_ASM_SYMS=y # CONFIG_STRIP is not set CONFIG_SUNDANCE=m @@ -6006,6 +6066,7 @@ CONFIG_W1_SLAVE_DS2438=m CONFIG_W1_SLAVE_DS2760=m CONFIG_W1_SLAVE_DS2780=m CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS2805=m CONFIG_W1_SLAVE_DS28E04=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_THERM=m @@ -6025,6 +6086,7 @@ CONFIG_WATCHDOG=y CONFIG_WCN36XX=m CONFIG_WDAT_WDT=m CONFIG_WDTPCI=m +CONFIG_WIL6210_DEBUGFS=y CONFIG_WIL6210_ISR_COR=y CONFIG_WIL6210=m # CONFIG_WIL6210_TRACING is not set @@ -6073,6 +6135,7 @@ CONFIG_WMI_BMOF=m # CONFIG_WQ_WATCHDOG is not set # CONFIG_WW_MUTEX_SELFTEST is not set # CONFIG_X25 is not set +# CONFIG_X86_5LEVEL is not set CONFIG_X86_64_ACPI_NUMA=y CONFIG_X86_ACPI_CPUFREQ_CPB=y CONFIG_X86_ACPI_CPUFREQ=m @@ -6139,6 +6202,7 @@ CONFIG_XEN_NETDEV_BACKEND=m CONFIG_XEN_NETDEV_FRONTEND=m CONFIG_XEN_PCIDEV_BACKEND=m CONFIG_XEN_PCIDEV_FRONTEND=m +# CONFIG_XEN_PVCALLS_BACKEND is not set CONFIG_XEN_PVHVM=y CONFIG_XEN_PVH=y CONFIG_XEN_PV=y @@ -6193,6 +6257,7 @@ CONFIG_ZONE_DEVICE=y CONFIG_ZONE_DMA=y # CONFIG_ZPA2326 is not set CONFIG_ZRAM=m +# CONFIG_ZRAM_WRITEBACK is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_ZSMALLOC=y CONFIG_ZSWAP=y diff --git a/kernel.spec b/kernel.spec index 0d747870b..4f5836187 100644 --- a/kernel.spec +++ b/kernel.spec @@ -17,7 +17,7 @@ Summary: The Linux kernel %else %global signkernel 0 %global signmodules 1 -%global zipmodules 0 +%global zipmodules 1 %endif %if %{zipmodules} @@ -42,19 +42,19 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 302 +%global baserelease 300 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching # on top of -- for example, 3.1-rc7-git1 starts with a 3.0 base, # which yields a base_sublevel of 0. -%define base_sublevel 13 +%define base_sublevel 14 ## If this is a released kernel ## %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 16 +%define stable_update 3 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -187,7 +187,9 @@ Summary: The Linux kernel # and debuginfo generation. Currently we rely on the old alldebug setting. %global _build_id_links alldebug -# kernel PAE is only built on i686 and ARMv7. +# kernel PAE is only built on ARMv7 in rawhide. +# Fedora 27 and earlier still support PAE, so change this on rebases. +# %ifnarch armv7hl %ifnarch i686 armv7hl %define with_pae 0 %endif @@ -388,7 +390,7 @@ Requires: kernel-modules-uname-r = %{KVERREL}%{?variant} # # List the packages used during the kernel build # -BuildRequires: kmod, patch, bash, sh-utils, tar, git +BuildRequires: kmod, patch, bash, tar, git BuildRequires: bzip2, xz, findutils, gzip, m4, perl-interpreter, perl-Carp, perl-devel, perl-generators, make, diffutils, gawk BuildRequires: gcc, binutils, redhat-rpm-config, hmaccalc BuildRequires: net-tools, hostname, bc, elfutils-devel @@ -591,150 +593,68 @@ Patch303: ARM-tegra-usb-no-reset.patch Patch304: allwinner-net-emac.patch +Patch305: arm64-Revert-allwinner-a64-pine64-Use-dcdc1-regulato.patch + # https://www.spinics.net/lists/arm-kernel/msg554183.html -Patch305: arm-imx6-hummingboard2.patch +Patch306: arm-imx6-hummingboard2.patch -Patch306: arm64-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch +Patch307: arm64-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch -# https://patchwork.kernel.org/patch/9815555/ -# https://patchwork.kernel.org/patch/9815651/ -# https://patchwork.kernel.org/patch/9819885/ # https://patchwork.kernel.org/patch/9820417/ -# https://patchwork.kernel.org/patch/9821151/ -# https://patchwork.kernel.org/patch/9821157/ Patch310: qcom-msm89xx-fixes.patch -# https://patchwork.kernel.org/patch/9831825/ -# https://patchwork.kernel.org/patch/9833721/ -Patch311: arm-tegra-fix-gpu-iommu.patch - -# https://www.spinics.net/lists/linux-arm-msm/msg28203.html -Patch312: qcom-display-iommu.patch - -# https://patchwork.kernel.org/patch/9839803/ -Patch313: qcom-Force-host-mode-for-USB-on-apq8016-sbc.patch - -# https://patchwork.kernel.org/patch/9850189/ -Patch314: qcom-msm-ci_hdrc_msm_probe-missing-of_node_get.patch - -# Hack until interconnect API lands upstream -Patch315: qcom-clk-gpu-msm.patch - # https://patchwork.kernel.org/patch/10054387/ -Patch316: USB-ulpi-fix-bus-node-lookup.patch +Patch311: USB-ulpi-fix-bus-node-lookup.patch # Fix USB on the RPi https://patchwork.kernel.org/patch/9879371/ Patch321: bcm283x-dma-mapping-skip-USB-devices-when-configuring-DMA-during-probe.patch -# Updat3 move of bcm2837, landed in 4.14 -Patch322: bcm2837-move-dt.patch - # bcm2837 bluetooth support -# Patch323: bcm2837-bluetooth-support.patch -Patch324: bcm283x-vc4-fixes.patch - -Patch325: rpi-graphics-fix.patch - -# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20170912&id=723288836628bc1c0855f3bb7b64b1803e4b9e4a -Patch330: arm-of-restrict-dma-configuration.patch - -# Upstream ACPI fix -Patch331: arm64-xgene-acpi-fix.patch +Patch324: rpi-graphics-fix.patch # Generic fixes and enablement for Socionext SoC and 96board -Patch332: ahci-don-t-ignore-result-code-of-ahci_reset_controller.patch - # https://patchwork.kernel.org/patch/9980861/ -Patch333: PCI-aspm-deal-with-missing-root-ports-in-link-state-handling.patch +Patch331: PCI-aspm-deal-with-missing-root-ports-in-link-state-handling.patch # https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/log/?h=synquacer-netsec -Patch334: arm64-socionext-96b-enablement.patch - -# ThunderX fixes -Patch335: arm64-cavium-fixes.patch - -Patch336: arm-exynos-fix-usb3.patch +Patch332: arm64-socionext-96b-enablement.patch -Patch337: arm64-aw64-devices.patch +Patch335: arm-exynos-fix-usb3.patch # 400 - IBM (ppc/s390x) patches # 500 - Temp fixes/CVEs etc -# CVE-2017-7477 rhbz 1445207 1445208 -Patch502: CVE-2017-7477.patch - -# CVE-2017-16644 rhbz 1516273 1516274 -Patch503: media-hdpvr-Fix-an-error-handling-path-in-hdpvr_probe.patch - -# CVE-2017-1000405 rhbz 1516514 1519115 -Patch504: 0001-mm-thp-Do-not-make-page-table-dirty-unconditionally-.patch +# rhbz 1498016 1498017 +#Patch503: KEYS-don-t-let-add_key-update-an-uninstantiated-key.patch # 600 - Patches for improved Bay and Cherry Trail device support # Below patches are submitted upstream, awaiting review / merging Patch601: 0001-Input-gpio_keys-Allow-suppression-of-input-events-fo.patch Patch602: 0002-Input-soc_button_array-Suppress-power-button-presses.patch Patch610: 0010-Input-silead-Add-support-for-capactive-home-button-f.patch -Patch611: 0011-Input-goodix-Add-support-for-capacitive-home-button.patch -# These patches are queued for 4.14 and can be dropped on rebase to 4.14-rc1 -Patch603: 0001-power-supply-max17042_battery-Add-support-for-ACPI-e.patch -Patch604: 0002-power-supply-max17042_battery-Fix-ACPI-interrupt-iss.patch -Patch613: 0013-iio-accel-bmc150-Add-support-for-BOSC0200-ACPI-devic.patch -Patch615: 0015-i2c-cht-wc-Add-Intel-Cherry-Trail-Whiskey-Cove-SMBUS.patch # rhbz 1476467 Patch617: Fix-for-module-sig-verification.patch -# rhbz 1485086 -Patch619: pci-mark-amd-stoney-gpu-ats-as-broken.patch - -# Should fix our QXL issues -Patch622: qxl-fixes.patch - # rhbz 1431375 -Patch624: input-rmi4-remove-the-need-for-artifical-IRQ.patch - -# rhbz 1432684 -Patch626: 1-3-net-set-tb--fast_sk_family.patch -Patch627: 2-3-net-use-inet6_rcv_saddr-to-compare-sockets.patch -Patch628: 3-3-inet-fix-improper-empty-comparison.patch - -# rhbz 1482648 -Patch630: Input-synaptics---Disable-kernel-tracking-on-SMBus-devices.patch +Patch619: input-rmi4-remove-the-need-for-artifical-IRQ.patch # Headed upstream -Patch631: drm-i915-boost-GPU-clocks-if-we-miss-the-pageflip.patch - -# http://patchwork.ozlabs.org/patch/831938/ -Patch633: net-mlxsw-reg-Add-high-and-low-temperature-thresholds.patch +Patch621: drm-i915-Boost-GPU-clocks-if-we-miss-the-pageflip-s-vblank.patch -# Included in 4.14, backport requested on kernel@ -Patch634: selinux-Generalize-support-for-NNP-nosuid-SELinux-do.patch +Patch623: 0001-PATCH-staging-rtl8822be-fix-wrong-dma-unmap-len.patch # rhbz 1509461 -Patch635: v3-1-2-Input-synaptics-rmi4---RMI4-can-also-use-SMBUS-version-3.patch -Patch636: v3-2-2-Input-synaptics---Lenovo-X1-Carbon-5-should-use-SMBUS-RMI.patch +Patch625: v3-2-2-Input-synaptics---Lenovo-X1-Carbon-5-should-use-SMBUS-RMI.patch -# rhbz 1490803 -Patch637: 1-2-kvm-vmx-Reinstate-support-for-CPUs-without-virtual-NMI.patch +# Fixes for QXL issues +Patch627: qxl-fixes.patch -# CVE-2017-16538 rhbz 1510826 1510854 -Patch639: CVE-2017-16538.patch - -# rhbz 1507931 -Patch640: qxl_cursor_fix.patch - -# rhbz 1462175 -Patch641: HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch - -# rhbz 1518707 -Patch642: 0001-powerpc-64s-radix-Fix-128TB-512TB-virtual-address-bo.patch -Patch643: 0002-powerpc-64s-hash-Fix-512T-hint-detection-to-use-128T.patch -Patch644: 0003-powerpc-64s-hash-Fix-128TB-512TB-virtual-address-bou.patch -Patch645: 0004-powerpc-64s-hash-Fix-fork-with-512TB-process-address.patch -Patch646: 0005-powerpc-64s-hash-Allow-MAP_FIXED-allocations-to-cros.patch +# CVE-2017-1000405 rhbz 1516514 1519115 +Patch628: 0001-mm-thp-Do-not-make-page-table-dirty-unconditionally-.patch # END OF PATCH DEFINITIONS @@ -1990,7 +1910,7 @@ pushd tools/thermal/tmon make INSTALL_ROOT=%{buildroot} install popd pushd tools/iio -make INSTALL_ROOT=%{buildroot} install +make DESTDIR=%{buildroot} install popd pushd tools/gpio make DESTDIR=%{buildroot} install @@ -2290,6 +2210,9 @@ fi # # %changelog +* Mon Dec 04 2017 Justin M. Forbes <jforbes@fedoraproject.org> - 4.14.3-300 +- Linux v4.14.3 rebase + * Thu Nov 30 2017 Jeremy Cline <jeremy@jcline.org> - 4.13.16-302 - Fix CVE-2017-1000405 (rhbz 1516514 1519115) diff --git a/media-hdpvr-Fix-an-error-handling-path-in-hdpvr_probe.patch b/media-hdpvr-Fix-an-error-handling-path-in-hdpvr_probe.patch deleted file mode 100644 index 703b0d246..000000000 --- a/media-hdpvr-Fix-an-error-handling-path-in-hdpvr_probe.patch +++ /dev/null @@ -1,106 +0,0 @@ -From patchwork Fri Sep 22 13:07:06 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [media] hdpvr: Fix an error handling path in hdpvr_probe() -From: Arvind Yadav <arvind.yadav.cs@gmail.com> -X-Patchwork-Id: 9966135 -Message-Id: <b5c06a8e071d38fc4b4df20b7f9c8fb25d5408fe.1506085151.git.arvind.yadav.cs@gmail.com> -To: andreyknvl@google.com, hverkuil@xs4all.nl, mchehab@kernel.org, - laurent.pinchart@ideasonboard.com, dvyukov@google.com, - kcc@google.com, syzkaller@googlegroups.com -Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org -Date: Fri, 22 Sep 2017 18:37:06 +0530 - -Here, hdpvr_register_videodev() is responsible for setup and -register a video device. Also defining and initializing a worker. -hdpvr_register_videodev() is calling by hdpvr_probe at last. -So No need to flash any work here. -Unregister v4l2, free buffers and memory. If hdpvr_probe() will fail. - -Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com> -Reported-by: Andrey Konovalov <andreyknvl@google.com> -Tested-by: Andrey Konovalov <andreyknvl@google.com> ---- - drivers/media/usb/hdpvr/hdpvr-core.c | 26 +++++++++++++++----------- - 1 file changed, 15 insertions(+), 11 deletions(-) - -diff --git a/drivers/media/usb/hdpvr/hdpvr-core.c b/drivers/media/usb/hdpvr/hdpvr-core.c -index dbe29c6..1e8cbaf 100644 ---- a/drivers/media/usb/hdpvr/hdpvr-core.c -+++ b/drivers/media/usb/hdpvr/hdpvr-core.c -@@ -292,7 +292,7 @@ static int hdpvr_probe(struct usb_interface *interface, - /* register v4l2_device early so it can be used for printks */ - if (v4l2_device_register(&interface->dev, &dev->v4l2_dev)) { - dev_err(&interface->dev, "v4l2_device_register failed\n"); -- goto error; -+ goto error_free_dev; - } - - mutex_init(&dev->io_mutex); -@@ -301,7 +301,7 @@ static int hdpvr_probe(struct usb_interface *interface, - dev->usbc_buf = kmalloc(64, GFP_KERNEL); - if (!dev->usbc_buf) { - v4l2_err(&dev->v4l2_dev, "Out of memory\n"); -- goto error; -+ goto error_v4l2_unregister; - } - - init_waitqueue_head(&dev->wait_buffer); -@@ -339,13 +339,13 @@ static int hdpvr_probe(struct usb_interface *interface, - } - if (!dev->bulk_in_endpointAddr) { - v4l2_err(&dev->v4l2_dev, "Could not find bulk-in endpoint\n"); -- goto error; -+ goto error_put_usb; - } - - /* init the device */ - if (hdpvr_device_init(dev)) { - v4l2_err(&dev->v4l2_dev, "device init failed\n"); -- goto error; -+ goto error_put_usb; - } - - mutex_lock(&dev->io_mutex); -@@ -353,7 +353,7 @@ static int hdpvr_probe(struct usb_interface *interface, - mutex_unlock(&dev->io_mutex); - v4l2_err(&dev->v4l2_dev, - "allocating transfer buffers failed\n"); -- goto error; -+ goto error_put_usb; - } - mutex_unlock(&dev->io_mutex); - -@@ -361,7 +361,7 @@ static int hdpvr_probe(struct usb_interface *interface, - retval = hdpvr_register_i2c_adapter(dev); - if (retval < 0) { - v4l2_err(&dev->v4l2_dev, "i2c adapter register failed\n"); -- goto error; -+ goto error_free_buffers; - } - - client = hdpvr_register_ir_rx_i2c(dev); -@@ -394,13 +394,17 @@ static int hdpvr_probe(struct usb_interface *interface, - reg_fail: - #if IS_ENABLED(CONFIG_I2C) - i2c_del_adapter(&dev->i2c_adapter); -+error_free_buffers: - #endif -+ hdpvr_free_buffers(dev); -+error_put_usb: -+ usb_put_dev(dev->udev); -+ kfree(dev->usbc_buf); -+error_v4l2_unregister: -+ v4l2_device_unregister(&dev->v4l2_dev); -+error_free_dev: -+ kfree(dev); - error: -- if (dev) { -- flush_work(&dev->worker); -- /* this frees allocated memory */ -- hdpvr_delete(dev); -- } - return retval; - } - diff --git a/net-mlxsw-reg-Add-high-and-low-temperature-thresholds.patch b/net-mlxsw-reg-Add-high-and-low-temperature-thresholds.patch deleted file mode 100644 index 957200e17..000000000 --- a/net-mlxsw-reg-Add-high-and-low-temperature-thresholds.patch +++ /dev/null @@ -1,79 +0,0 @@ -From patchwork Mon Oct 30 09:51:18 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [net] mlxsw: reg: Add high and low temperature thresholds -X-Patchwork-Submitter: Jiri Pirko <jiri@resnulli.us> -X-Patchwork-Id: 831938 -X-Patchwork-Delegate: davem@davemloft.net -Message-Id: <20171030095118.9098-1-jiri@resnulli.us> -To: netdev@vger.kernel.org -Cc: davem@davemloft.net, idosch@mellanox.com, mlxsw@mellanox.com -Date: Mon, 30 Oct 2017 10:51:18 +0100 -From: Jiri Pirko <jiri@resnulli.us> -List-Id: <netdev.vger.kernel.org> - -From: Ido Schimmel <idosch@mellanox.com> - -The ASIC has the ability to generate events whenever a sensor indicates -the temperature goes above or below its high or low thresholds, -respectively. - -In new firmware versions the firmware enforces a minimum of 5 -degrees Celsius difference between both thresholds. Make the driver -conform to this requirement. - -Note that this is required even when the events are disabled, as in -certain systems interrupts are generated via GPIO based on these -thresholds. - -Fixes: 85926f877040 ("mlxsw: reg: Add definition of temperature management registers") -Signed-off-by: Ido Schimmel <idosch@mellanox.com> -Signed-off-by: Jiri Pirko <jiri@mellanox.com> ---- - drivers/net/ethernet/mellanox/mlxsw/reg.h | 25 +++++++++++++++++++++++++ - 1 file changed, 25 insertions(+) - -diff --git a/drivers/net/ethernet/mellanox/mlxsw/reg.h b/drivers/net/ethernet/mellanox/mlxsw/reg.h -index 4afc848..5acfbe5 100644 ---- a/drivers/net/ethernet/mellanox/mlxsw/reg.h -+++ b/drivers/net/ethernet/mellanox/mlxsw/reg.h -@@ -5827,6 +5827,29 @@ MLXSW_ITEM32(reg, mtmp, mtr, 0x08, 30, 1); - */ - MLXSW_ITEM32(reg, mtmp, max_temperature, 0x08, 0, 16); - -+/* reg_mtmp_tee -+ * Temperature Event Enable. -+ * 0 - Do not generate event -+ * 1 - Generate event -+ * 2 - Generate single event -+ * Access: RW -+ */ -+MLXSW_ITEM32(reg, mtmp, tee, 0x0C, 30, 2); -+ -+#define MLXSW_REG_MTMP_THRESH_HI 0x348 /* 105 Celsius */ -+ -+/* reg_mtmp_temperature_threshold_hi -+ * High threshold for Temperature Warning Event. In 0.125 Celsius. -+ * Access: RW -+ */ -+MLXSW_ITEM32(reg, mtmp, temperature_threshold_hi, 0x0C, 0, 16); -+ -+/* reg_mtmp_temperature_threshold_lo -+ * Low threshold for Temperature Warning Event. In 0.125 Celsius. -+ * Access: RW -+ */ -+MLXSW_ITEM32(reg, mtmp, temperature_threshold_lo, 0x10, 0, 16); -+ - #define MLXSW_REG_MTMP_SENSOR_NAME_SIZE 8 - - /* reg_mtmp_sensor_name -@@ -5843,6 +5866,8 @@ static inline void mlxsw_reg_mtmp_pack(char *payload, u8 sensor_index, - mlxsw_reg_mtmp_sensor_index_set(payload, sensor_index); - mlxsw_reg_mtmp_mte_set(payload, max_temp_enable); - mlxsw_reg_mtmp_mtr_set(payload, max_temp_reset); -+ mlxsw_reg_mtmp_temperature_threshold_hi_set(payload, -+ MLXSW_REG_MTMP_THRESH_HI); - } - - static inline void mlxsw_reg_mtmp_unpack(char *payload, unsigned int *p_temp, diff --git a/no-pcspkr-modalias.patch b/no-pcspkr-modalias.patch index e43cd97eb..2ccd87202 100644 --- a/no-pcspkr-modalias.patch +++ b/no-pcspkr-modalias.patch @@ -9,7 +9,7 @@ Upstream-status: Fedora mustard 1 file changed, 1 deletion(-) diff --git a/drivers/input/misc/pcspkr.c b/drivers/input/misc/pcspkr.c -index 72b1fc3ab910..86907eaa4883 100644 +index 56ddba21de84..23534f420e68 100644 --- a/drivers/input/misc/pcspkr.c +++ b/drivers/input/misc/pcspkr.c @@ -23,7 +23,6 @@ @@ -17,6 +17,6 @@ index 72b1fc3ab910..86907eaa4883 100644 MODULE_DESCRIPTION("PC Speaker beeper driver"); MODULE_LICENSE("GPL"); -MODULE_ALIAS("platform:pcspkr"); - - static int pcspkr_event(struct input_dev *dev, unsigned int type, unsigned int code, int value) - { + + static int pcspkr_event(struct input_dev *dev, unsigned int type, + unsigned int code, int value) diff --git a/pci-mark-amd-stoney-gpu-ats-as-broken.patch b/pci-mark-amd-stoney-gpu-ats-as-broken.patch deleted file mode 100644 index 167c40223..000000000 --- a/pci-mark-amd-stoney-gpu-ats-as-broken.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 9b44b0b09decfbe388131a345ba780c57240a7a9 Mon Sep 17 00:00:00 2001 -From: Joerg Roedel <jroedel@suse.de> -Date: Tue, 11 Jul 2017 15:48:00 -0500 -Subject: PCI: Mark AMD Stoney GPU ATS as broken - -ATS is broken on this hardware and causes IOMMU stalls and system failure. -Disable ATS on these devices to make them usable again with IOMMU enabled. - -Note that the commit in the Fixes tag is not buggy; it just uncovers the -problem in the hardware by increasing the ATS flush rate. - -Link: https://lists.linuxfoundation.org/pipermail/iommu/2017-March/020836.html -Link: https://bugzilla.redhat.com/show_bug.cgi?id=1409201 -Fixes: b1516a14657a ("iommu/amd: Implement flush queue") -Signed-off-by: Joerg Roedel <jroedel@suse.de> -Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> -Acked-by: Alex Deucher <alexander.deucher@amd.com> ---- - drivers/pci/quirks.c | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c -index 6967c6b..15ee4e9 100644 ---- a/drivers/pci/quirks.c -+++ b/drivers/pci/quirks.c -@@ -4681,3 +4681,18 @@ static void quirk_intel_no_flr(struct pci_dev *dev) - } - DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1502, quirk_intel_no_flr); - DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1503, quirk_intel_no_flr); -+ -+#ifdef CONFIG_PCI_ATS -+/* -+ * Some devices have a broken ATS implementation causing IOMMU stalls. -+ * Don't use ATS for those devices. -+ */ -+static void quirk_no_ats(struct pci_dev *pdev) -+{ -+ dev_info(&pdev->dev, "disabling ATS (broken on this device)\n"); -+ pdev->ats_cap = 0; -+} -+ -+/* AMD Stoney platform GPU */ -+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x98e4, quirk_no_ats); -+#endif /* CONFIG_PCI_ATS */ --- -cgit v1.1 - diff --git a/qcom-Force-host-mode-for-USB-on-apq8016-sbc.patch b/qcom-Force-host-mode-for-USB-on-apq8016-sbc.patch deleted file mode 100644 index 4932539a3..000000000 --- a/qcom-Force-host-mode-for-USB-on-apq8016-sbc.patch +++ /dev/null @@ -1,93 +0,0 @@ -From patchwork Fri Jul 14 02:20:42 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [v2] arm64: dts: qcom: Force host mode for USB on apq8016-sbc -From: Stephen Boyd <sboyd@codeaurora.org> -X-Patchwork-Id: 9839803 -Message-Id: <20170714022042.13886-1-sboyd@codeaurora.org> -To: Andy Gross <andy.gross@linaro.org> -Cc: linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, - linux-arm-kernel@lists.infradead.org, Rob Clark <robdclark@gmail.com> -Date: Thu, 13 Jul 2017 19:20:42 -0700 - -Commit ed75d6a96905 ("arm64: dts: qcom: Collapse usb support into -one node") breaks host mode support on apq8016-sbc boards. This -is because the mux driver (tc7usb40mu) hasn't been merged. -Without that driver, we can't toggle the GPIO going to the mux to -route out the D+/D- lines to the USB hub that's on the board. - -One solution would be to totally revert this change, but that -opens us up to other problems when two USB drivers are operating -the same hardware block at the same time. Let's modify the DT so -that the USB controller is always in host mode and connected to -the hub so that things like USB keyboards and mouses work. This -is the mode that most people prefer anyway with these devices. We -also delete the usb-switch node because the binding was never -accepted upstream. - -In the future, we can add muxing support and then update the DT -to support both modes at runtime. Patches to support this are -already on the mailing list. - -Fixes: ed75d6a96905 ("arm64: dts: qcom: Collapse usb support into one node") -Reported-by: Rob Clark <robdclark@gmail.com> -Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> ---- - -I noticed that I accidently removed the vbus notifier part of the phy. -Without it, we'll change settings that shouldn't changed. The thing -that we don't have is the ID pin on this board, not the vbus. That's -the only difference from v1. - - arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi | 1 + - arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi | 13 ++++--------- - 2 files changed, 5 insertions(+), 9 deletions(-) - -diff --git a/arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi b/arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi -index d94640812194..790b7775b901 100644 ---- a/arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi -+++ b/arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi -@@ -17,6 +17,7 @@ - function = PMIC_GPIO_FUNC_NORMAL; - power-source = <PM8916_GPIO_VPH>; - input-disable; -+ output-high; - }; - }; - -diff --git a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi -index bd310ac1967a..bb9e29e6b164 100644 ---- a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi -+++ b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi -@@ -213,11 +213,14 @@ - }; - - usb@78d9000 { -- extcon = <&usb_id>, <&usb_id>; -+ extcon = <&usb_id>; - status = "okay"; - adp-disable; - hnp-disable; - srp-disable; -+ dr_mode = "host"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&usb_sw_sel_pm>; - ulpi { - phy { - v1p8-supply = <&pm8916_l7>; -@@ -342,14 +345,6 @@ - pinctrl-0 = <&usb_id_default>; - }; - -- usb-switch { -- compatible = "toshiba,tc7usb40mu"; -- switch-gpios = <&pm8916_gpios 4 GPIO_ACTIVE_HIGH>; -- extcon = <&usb_id>; -- pinctrl-names = "default"; -- pinctrl-0 = <&usb_sw_sel_pm>; -- }; -- - hdmi-out { - compatible = "hdmi-connector"; - type = "a"; diff --git a/qcom-clk-gpu-msm.patch b/qcom-clk-gpu-msm.patch deleted file mode 100644 index 657995d47..000000000 --- a/qcom-clk-gpu-msm.patch +++ /dev/null @@ -1,27 +0,0 @@ -From cf866c6ef2e421b5563ab34c04dd4b07be5aa013 Mon Sep 17 00:00:00 2001 -From: Peter Robinson <pbrobinson@gmail.com> -Date: Sat, 7 Oct 2017 10:11:39 +0100 -Subject: [PATCH] hack for bus clk - -Turn it up to 11! ---- - drivers/gpu/drm/msm/msm_gpu.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/drivers/gpu/drm/msm/msm_gpu.c b/drivers/gpu/drm/msm/msm_gpu.c -index 9f3dbc236ab3..75acdda496b5 100644 ---- a/drivers/gpu/drm/msm/msm_gpu.c -+++ b/drivers/gpu/drm/msm/msm_gpu.c -@@ -93,6 +93,9 @@ static int enable_clk(struct msm_gpu *gpu) - { - int i; - -+ if (gpu->grp_clks[4]) -+ clk_set_rate(gpu->grp_clks[4], INT_MAX); -+ - if (gpu->core_clk && gpu->fast_rate) - clk_set_rate(gpu->core_clk, gpu->fast_rate); - --- -2.14.2 - diff --git a/qcom-display-iommu.patch b/qcom-display-iommu.patch deleted file mode 100644 index 87d4473c8..000000000 --- a/qcom-display-iommu.patch +++ /dev/null @@ -1,1960 +0,0 @@ -From patchwork Thu Jul 13 12:07:44 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [RESEND,1/4] Docs: dt: document qcom iommu bindings -From: Rob Clark <robdclark@gmail.com> -X-Patchwork-Id: 9838369 -Message-Id: <20170713120747.20490-2-robdclark@gmail.com> -To: iommu@lists.linux-foundation.org -Cc: linux-arm-msm@vger.kernel.org, Archit Taneja <architt@codeaurora.org>, - Rob Herring <robh@kernel.org>, Will Deacon <will.deacon@arm.com>, - Sricharan <sricharan@codeaurora.org>, - Mark Rutland <mark.rutland@arm.com>, Robin Murphy <robin.murphy@arm.com>, - Rob Clark <robdclark@gmail.com>, devicetree@vger.kernel.org -Date: Thu, 13 Jul 2017 08:07:44 -0400 - -Cc: devicetree@vger.kernel.org -Signed-off-by: Rob Clark <robdclark@gmail.com> -Reviewed-by: Rob Herring <robh@kernel.org> ---- - .../devicetree/bindings/iommu/qcom,iommu.txt | 121 +++++++++++++++++++++ - 1 file changed, 121 insertions(+) - create mode 100644 Documentation/devicetree/bindings/iommu/qcom,iommu.txt - -diff --git a/Documentation/devicetree/bindings/iommu/qcom,iommu.txt b/Documentation/devicetree/bindings/iommu/qcom,iommu.txt -new file mode 100644 -index 000000000000..b2641ceb2b40 ---- /dev/null -+++ b/Documentation/devicetree/bindings/iommu/qcom,iommu.txt -@@ -0,0 +1,121 @@ -+* QCOM IOMMU v1 Implementation -+ -+Qualcomm "B" family devices which are not compatible with arm-smmu have -+a similar looking IOMMU but without access to the global register space, -+and optionally requiring additional configuration to route context irqs -+to non-secure vs secure interrupt line. -+ -+** Required properties: -+ -+- compatible : Should be one of: -+ -+ "qcom,msm8916-iommu" -+ -+ Followed by "qcom,msm-iommu-v1". -+ -+- clock-names : Should be a pair of "iface" (required for IOMMUs -+ register group access) and "bus" (required for -+ the IOMMUs underlying bus access). -+ -+- clocks : Phandles for respective clocks described by -+ clock-names. -+ -+- #address-cells : must be 1. -+ -+- #size-cells : must be 1. -+ -+- #iommu-cells : Must be 1. Index identifies the context-bank #. -+ -+- ranges : Base address and size of the iommu context banks. -+ -+- qcom,iommu-secure-id : secure-id. -+ -+- List of sub-nodes, one per translation context bank. Each sub-node -+ has the following required properties: -+ -+ - compatible : Should be one of: -+ - "qcom,msm-iommu-v1-ns" : non-secure context bank -+ - "qcom,msm-iommu-v1-sec" : secure context bank -+ - reg : Base address and size of context bank within the iommu -+ - interrupts : The context fault irq. -+ -+** Optional properties: -+ -+- reg : Base address and size of the SMMU local base, should -+ be only specified if the iommu requires configuration -+ for routing of context bank irq's to secure vs non- -+ secure lines. (Ie. if the iommu contains secure -+ context banks) -+ -+ -+** Examples: -+ -+ apps_iommu: iommu@1e20000 { -+ #address-cells = <1>; -+ #size-cells = <1>; -+ #iommu-cells = <1>; -+ compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1"; -+ ranges = <0 0x1e20000 0x40000>; -+ reg = <0x1ef0000 0x3000>; -+ clocks = <&gcc GCC_SMMU_CFG_CLK>, -+ <&gcc GCC_APSS_TCU_CLK>; -+ clock-names = "iface", "bus"; -+ qcom,iommu-secure-id = <17>; -+ -+ // mdp_0: -+ iommu-ctx@4000 { -+ compatible = "qcom,msm-iommu-v1-ns"; -+ reg = <0x4000 0x1000>; -+ interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; -+ }; -+ -+ // venus_ns: -+ iommu-ctx@5000 { -+ compatible = "qcom,msm-iommu-v1-sec"; -+ reg = <0x5000 0x1000>; -+ interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; -+ }; -+ }; -+ -+ gpu_iommu: iommu@1f08000 { -+ #address-cells = <1>; -+ #size-cells = <1>; -+ #iommu-cells = <1>; -+ compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1"; -+ ranges = <0 0x1f08000 0x10000>; -+ clocks = <&gcc GCC_SMMU_CFG_CLK>, -+ <&gcc GCC_GFX_TCU_CLK>; -+ clock-names = "iface", "bus"; -+ qcom,iommu-secure-id = <18>; -+ -+ // gfx3d_user: -+ iommu-ctx@1000 { -+ compatible = "qcom,msm-iommu-v1-ns"; -+ reg = <0x1000 0x1000>; -+ interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>; -+ }; -+ -+ // gfx3d_priv: -+ iommu-ctx@2000 { -+ compatible = "qcom,msm-iommu-v1-ns"; -+ reg = <0x2000 0x1000>; -+ interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>; -+ }; -+ }; -+ -+ ... -+ -+ venus: video-codec@1d00000 { -+ ... -+ iommus = <&apps_iommu 5>; -+ }; -+ -+ mdp: mdp@1a01000 { -+ ... -+ iommus = <&apps_iommu 4>; -+ }; -+ -+ gpu@01c00000 { -+ ... -+ iommus = <&gpu_iommu 1>, <&gpu_iommu 2>; -+ }; -From patchwork Thu Jul 13 12:07:45 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [RESEND,2/4] iommu: arm-smmu: split out register defines -From: Rob Clark <robdclark@gmail.com> -X-Patchwork-Id: 9838371 -Message-Id: <20170713120747.20490-3-robdclark@gmail.com> -To: iommu@lists.linux-foundation.org -Cc: linux-arm-msm@vger.kernel.org, Archit Taneja <architt@codeaurora.org>, - Rob Herring <robh@kernel.org>, Will Deacon <will.deacon@arm.com>, - Sricharan <sricharan@codeaurora.org>, - Mark Rutland <mark.rutland@arm.com>, Robin Murphy <robin.murphy@arm.com>, - Rob Clark <robdclark@gmail.com> -Date: Thu, 13 Jul 2017 08:07:45 -0400 - -I want to re-use some of these for qcom_iommu, which has (roughly) the -same context-bank registers. - -Signed-off-by: Rob Clark <robdclark@gmail.com> ---- - drivers/iommu/arm-smmu-regs.h | 227 ++++++++++++++++++++++++++++++++++++++++++ - drivers/iommu/arm-smmu.c | 203 +------------------------------------ - 2 files changed, 228 insertions(+), 202 deletions(-) - create mode 100644 drivers/iommu/arm-smmu-regs.h - -diff --git a/drivers/iommu/arm-smmu-regs.h b/drivers/iommu/arm-smmu-regs.h -new file mode 100644 -index 000000000000..87589c863068 ---- /dev/null -+++ b/drivers/iommu/arm-smmu-regs.h -@@ -0,0 +1,227 @@ -+/* -+ * IOMMU API for ARM architected SMMU implementations. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * Copyright (C) 2013 ARM Limited -+ * -+ * Author: Will Deacon <will.deacon@arm.com> -+ */ -+ -+#ifndef _ARM_SMMU_REGS_H -+#define _ARM_SMMU_REGS_H -+ -+/* Configuration registers */ -+#define ARM_SMMU_GR0_sCR0 0x0 -+#define sCR0_CLIENTPD (1 << 0) -+#define sCR0_GFRE (1 << 1) -+#define sCR0_GFIE (1 << 2) -+#define sCR0_EXIDENABLE (1 << 3) -+#define sCR0_GCFGFRE (1 << 4) -+#define sCR0_GCFGFIE (1 << 5) -+#define sCR0_USFCFG (1 << 10) -+#define sCR0_VMIDPNE (1 << 11) -+#define sCR0_PTM (1 << 12) -+#define sCR0_FB (1 << 13) -+#define sCR0_VMID16EN (1 << 31) -+#define sCR0_BSU_SHIFT 14 -+#define sCR0_BSU_MASK 0x3 -+ -+/* Auxiliary Configuration register */ -+#define ARM_SMMU_GR0_sACR 0x10 -+ -+/* Identification registers */ -+#define ARM_SMMU_GR0_ID0 0x20 -+#define ARM_SMMU_GR0_ID1 0x24 -+#define ARM_SMMU_GR0_ID2 0x28 -+#define ARM_SMMU_GR0_ID3 0x2c -+#define ARM_SMMU_GR0_ID4 0x30 -+#define ARM_SMMU_GR0_ID5 0x34 -+#define ARM_SMMU_GR0_ID6 0x38 -+#define ARM_SMMU_GR0_ID7 0x3c -+#define ARM_SMMU_GR0_sGFSR 0x48 -+#define ARM_SMMU_GR0_sGFSYNR0 0x50 -+#define ARM_SMMU_GR0_sGFSYNR1 0x54 -+#define ARM_SMMU_GR0_sGFSYNR2 0x58 -+ -+#define ID0_S1TS (1 << 30) -+#define ID0_S2TS (1 << 29) -+#define ID0_NTS (1 << 28) -+#define ID0_SMS (1 << 27) -+#define ID0_ATOSNS (1 << 26) -+#define ID0_PTFS_NO_AARCH32 (1 << 25) -+#define ID0_PTFS_NO_AARCH32S (1 << 24) -+#define ID0_CTTW (1 << 14) -+#define ID0_NUMIRPT_SHIFT 16 -+#define ID0_NUMIRPT_MASK 0xff -+#define ID0_NUMSIDB_SHIFT 9 -+#define ID0_NUMSIDB_MASK 0xf -+#define ID0_EXIDS (1 << 8) -+#define ID0_NUMSMRG_SHIFT 0 -+#define ID0_NUMSMRG_MASK 0xff -+ -+#define ID1_PAGESIZE (1 << 31) -+#define ID1_NUMPAGENDXB_SHIFT 28 -+#define ID1_NUMPAGENDXB_MASK 7 -+#define ID1_NUMS2CB_SHIFT 16 -+#define ID1_NUMS2CB_MASK 0xff -+#define ID1_NUMCB_SHIFT 0 -+#define ID1_NUMCB_MASK 0xff -+ -+#define ID2_OAS_SHIFT 4 -+#define ID2_OAS_MASK 0xf -+#define ID2_IAS_SHIFT 0 -+#define ID2_IAS_MASK 0xf -+#define ID2_UBS_SHIFT 8 -+#define ID2_UBS_MASK 0xf -+#define ID2_PTFS_4K (1 << 12) -+#define ID2_PTFS_16K (1 << 13) -+#define ID2_PTFS_64K (1 << 14) -+#define ID2_VMID16 (1 << 15) -+ -+#define ID7_MAJOR_SHIFT 4 -+#define ID7_MAJOR_MASK 0xf -+ -+/* Global TLB invalidation */ -+#define ARM_SMMU_GR0_TLBIVMID 0x64 -+#define ARM_SMMU_GR0_TLBIALLNSNH 0x68 -+#define ARM_SMMU_GR0_TLBIALLH 0x6c -+#define ARM_SMMU_GR0_sTLBGSYNC 0x70 -+#define ARM_SMMU_GR0_sTLBGSTATUS 0x74 -+#define sTLBGSTATUS_GSACTIVE (1 << 0) -+#define TLB_LOOP_TIMEOUT 1000000 /* 1s! */ -+#define TLB_SPIN_COUNT 10 -+ -+/* Stream mapping registers */ -+#define ARM_SMMU_GR0_SMR(n) (0x800 + ((n) << 2)) -+#define SMR_VALID (1 << 31) -+#define SMR_MASK_SHIFT 16 -+#define SMR_ID_SHIFT 0 -+ -+#define ARM_SMMU_GR0_S2CR(n) (0xc00 + ((n) << 2)) -+#define S2CR_CBNDX_SHIFT 0 -+#define S2CR_CBNDX_MASK 0xff -+#define S2CR_EXIDVALID (1 << 10) -+#define S2CR_TYPE_SHIFT 16 -+#define S2CR_TYPE_MASK 0x3 -+enum arm_smmu_s2cr_type { -+ S2CR_TYPE_TRANS, -+ S2CR_TYPE_BYPASS, -+ S2CR_TYPE_FAULT, -+}; -+ -+#define S2CR_PRIVCFG_SHIFT 24 -+#define S2CR_PRIVCFG_MASK 0x3 -+enum arm_smmu_s2cr_privcfg { -+ S2CR_PRIVCFG_DEFAULT, -+ S2CR_PRIVCFG_DIPAN, -+ S2CR_PRIVCFG_UNPRIV, -+ S2CR_PRIVCFG_PRIV, -+}; -+ -+/* Context bank attribute registers */ -+#define ARM_SMMU_GR1_CBAR(n) (0x0 + ((n) << 2)) -+#define CBAR_VMID_SHIFT 0 -+#define CBAR_VMID_MASK 0xff -+#define CBAR_S1_BPSHCFG_SHIFT 8 -+#define CBAR_S1_BPSHCFG_MASK 3 -+#define CBAR_S1_BPSHCFG_NSH 3 -+#define CBAR_S1_MEMATTR_SHIFT 12 -+#define CBAR_S1_MEMATTR_MASK 0xf -+#define CBAR_S1_MEMATTR_WB 0xf -+#define CBAR_TYPE_SHIFT 16 -+#define CBAR_TYPE_MASK 0x3 -+#define CBAR_TYPE_S2_TRANS (0 << CBAR_TYPE_SHIFT) -+#define CBAR_TYPE_S1_TRANS_S2_BYPASS (1 << CBAR_TYPE_SHIFT) -+#define CBAR_TYPE_S1_TRANS_S2_FAULT (2 << CBAR_TYPE_SHIFT) -+#define CBAR_TYPE_S1_TRANS_S2_TRANS (3 << CBAR_TYPE_SHIFT) -+#define CBAR_IRPTNDX_SHIFT 24 -+#define CBAR_IRPTNDX_MASK 0xff -+ -+#define ARM_SMMU_GR1_CBA2R(n) (0x800 + ((n) << 2)) -+#define CBA2R_RW64_32BIT (0 << 0) -+#define CBA2R_RW64_64BIT (1 << 0) -+#define CBA2R_VMID_SHIFT 16 -+#define CBA2R_VMID_MASK 0xffff -+ -+#define ARM_SMMU_CB_SCTLR 0x0 -+#define ARM_SMMU_CB_ACTLR 0x4 -+#define ARM_SMMU_CB_RESUME 0x8 -+#define ARM_SMMU_CB_TTBCR2 0x10 -+#define ARM_SMMU_CB_TTBR0 0x20 -+#define ARM_SMMU_CB_TTBR1 0x28 -+#define ARM_SMMU_CB_TTBCR 0x30 -+#define ARM_SMMU_CB_CONTEXTIDR 0x34 -+#define ARM_SMMU_CB_S1_MAIR0 0x38 -+#define ARM_SMMU_CB_S1_MAIR1 0x3c -+#define ARM_SMMU_CB_PAR 0x50 -+#define ARM_SMMU_CB_FSR 0x58 -+#define ARM_SMMU_CB_FAR 0x60 -+#define ARM_SMMU_CB_FSYNR0 0x68 -+#define ARM_SMMU_CB_S1_TLBIVA 0x600 -+#define ARM_SMMU_CB_S1_TLBIASID 0x610 -+#define ARM_SMMU_CB_S1_TLBIVAL 0x620 -+#define ARM_SMMU_CB_S2_TLBIIPAS2 0x630 -+#define ARM_SMMU_CB_S2_TLBIIPAS2L 0x638 -+#define ARM_SMMU_CB_TLBSYNC 0x7f0 -+#define ARM_SMMU_CB_TLBSTATUS 0x7f4 -+#define ARM_SMMU_CB_ATS1PR 0x800 -+#define ARM_SMMU_CB_ATSR 0x8f0 -+ -+#define SCTLR_S1_ASIDPNE (1 << 12) -+#define SCTLR_CFCFG (1 << 7) -+#define SCTLR_CFIE (1 << 6) -+#define SCTLR_CFRE (1 << 5) -+#define SCTLR_E (1 << 4) -+#define SCTLR_AFE (1 << 2) -+#define SCTLR_TRE (1 << 1) -+#define SCTLR_M (1 << 0) -+ -+#define ARM_MMU500_ACTLR_CPRE (1 << 1) -+ -+#define ARM_MMU500_ACR_CACHE_LOCK (1 << 26) -+#define ARM_MMU500_ACR_SMTNMB_TLBEN (1 << 8) -+ -+#define CB_PAR_F (1 << 0) -+ -+#define ATSR_ACTIVE (1 << 0) -+ -+#define RESUME_RETRY (0 << 0) -+#define RESUME_TERMINATE (1 << 0) -+ -+#define TTBCR2_SEP_SHIFT 15 -+#define TTBCR2_SEP_UPSTREAM (0x7 << TTBCR2_SEP_SHIFT) -+#define TTBCR2_AS (1 << 4) -+ -+#define TTBRn_ASID_SHIFT 48 -+ -+#define FSR_MULTI (1 << 31) -+#define FSR_SS (1 << 30) -+#define FSR_UUT (1 << 8) -+#define FSR_ASF (1 << 7) -+#define FSR_TLBLKF (1 << 6) -+#define FSR_TLBMCF (1 << 5) -+#define FSR_EF (1 << 4) -+#define FSR_PF (1 << 3) -+#define FSR_AFF (1 << 2) -+#define FSR_TF (1 << 1) -+ -+#define FSR_IGN (FSR_AFF | FSR_ASF | \ -+ FSR_TLBMCF | FSR_TLBLKF) -+#define FSR_FAULT (FSR_MULTI | FSR_SS | FSR_UUT | \ -+ FSR_EF | FSR_PF | FSR_TF | FSR_IGN) -+ -+#define FSYNR0_WNR (1 << 4) -+ -+#endif /* _ARM_SMMU_REGS_H */ -diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c -index 7ec30b08b3bd..ca9c20f915a8 100644 ---- a/drivers/iommu/arm-smmu.c -+++ b/drivers/iommu/arm-smmu.c -@@ -54,6 +54,7 @@ - #include <linux/amba/bus.h> - - #include "io-pgtable.h" -+#include "arm-smmu-regs.h" - - /* Maximum number of context banks per SMMU */ - #define ARM_SMMU_MAX_CBS 128 -@@ -83,211 +84,9 @@ - #define smmu_write_atomic_lq writel_relaxed - #endif - --/* Configuration registers */ --#define ARM_SMMU_GR0_sCR0 0x0 --#define sCR0_CLIENTPD (1 << 0) --#define sCR0_GFRE (1 << 1) --#define sCR0_GFIE (1 << 2) --#define sCR0_EXIDENABLE (1 << 3) --#define sCR0_GCFGFRE (1 << 4) --#define sCR0_GCFGFIE (1 << 5) --#define sCR0_USFCFG (1 << 10) --#define sCR0_VMIDPNE (1 << 11) --#define sCR0_PTM (1 << 12) --#define sCR0_FB (1 << 13) --#define sCR0_VMID16EN (1 << 31) --#define sCR0_BSU_SHIFT 14 --#define sCR0_BSU_MASK 0x3 -- --/* Auxiliary Configuration register */ --#define ARM_SMMU_GR0_sACR 0x10 -- --/* Identification registers */ --#define ARM_SMMU_GR0_ID0 0x20 --#define ARM_SMMU_GR0_ID1 0x24 --#define ARM_SMMU_GR0_ID2 0x28 --#define ARM_SMMU_GR0_ID3 0x2c --#define ARM_SMMU_GR0_ID4 0x30 --#define ARM_SMMU_GR0_ID5 0x34 --#define ARM_SMMU_GR0_ID6 0x38 --#define ARM_SMMU_GR0_ID7 0x3c --#define ARM_SMMU_GR0_sGFSR 0x48 --#define ARM_SMMU_GR0_sGFSYNR0 0x50 --#define ARM_SMMU_GR0_sGFSYNR1 0x54 --#define ARM_SMMU_GR0_sGFSYNR2 0x58 -- --#define ID0_S1TS (1 << 30) --#define ID0_S2TS (1 << 29) --#define ID0_NTS (1 << 28) --#define ID0_SMS (1 << 27) --#define ID0_ATOSNS (1 << 26) --#define ID0_PTFS_NO_AARCH32 (1 << 25) --#define ID0_PTFS_NO_AARCH32S (1 << 24) --#define ID0_CTTW (1 << 14) --#define ID0_NUMIRPT_SHIFT 16 --#define ID0_NUMIRPT_MASK 0xff --#define ID0_NUMSIDB_SHIFT 9 --#define ID0_NUMSIDB_MASK 0xf --#define ID0_EXIDS (1 << 8) --#define ID0_NUMSMRG_SHIFT 0 --#define ID0_NUMSMRG_MASK 0xff -- --#define ID1_PAGESIZE (1 << 31) --#define ID1_NUMPAGENDXB_SHIFT 28 --#define ID1_NUMPAGENDXB_MASK 7 --#define ID1_NUMS2CB_SHIFT 16 --#define ID1_NUMS2CB_MASK 0xff --#define ID1_NUMCB_SHIFT 0 --#define ID1_NUMCB_MASK 0xff -- --#define ID2_OAS_SHIFT 4 --#define ID2_OAS_MASK 0xf --#define ID2_IAS_SHIFT 0 --#define ID2_IAS_MASK 0xf --#define ID2_UBS_SHIFT 8 --#define ID2_UBS_MASK 0xf --#define ID2_PTFS_4K (1 << 12) --#define ID2_PTFS_16K (1 << 13) --#define ID2_PTFS_64K (1 << 14) --#define ID2_VMID16 (1 << 15) -- --#define ID7_MAJOR_SHIFT 4 --#define ID7_MAJOR_MASK 0xf -- --/* Global TLB invalidation */ --#define ARM_SMMU_GR0_TLBIVMID 0x64 --#define ARM_SMMU_GR0_TLBIALLNSNH 0x68 --#define ARM_SMMU_GR0_TLBIALLH 0x6c --#define ARM_SMMU_GR0_sTLBGSYNC 0x70 --#define ARM_SMMU_GR0_sTLBGSTATUS 0x74 --#define sTLBGSTATUS_GSACTIVE (1 << 0) --#define TLB_LOOP_TIMEOUT 1000000 /* 1s! */ --#define TLB_SPIN_COUNT 10 -- --/* Stream mapping registers */ --#define ARM_SMMU_GR0_SMR(n) (0x800 + ((n) << 2)) --#define SMR_VALID (1 << 31) --#define SMR_MASK_SHIFT 16 --#define SMR_ID_SHIFT 0 -- --#define ARM_SMMU_GR0_S2CR(n) (0xc00 + ((n) << 2)) --#define S2CR_CBNDX_SHIFT 0 --#define S2CR_CBNDX_MASK 0xff --#define S2CR_EXIDVALID (1 << 10) --#define S2CR_TYPE_SHIFT 16 --#define S2CR_TYPE_MASK 0x3 --enum arm_smmu_s2cr_type { -- S2CR_TYPE_TRANS, -- S2CR_TYPE_BYPASS, -- S2CR_TYPE_FAULT, --}; -- --#define S2CR_PRIVCFG_SHIFT 24 --#define S2CR_PRIVCFG_MASK 0x3 --enum arm_smmu_s2cr_privcfg { -- S2CR_PRIVCFG_DEFAULT, -- S2CR_PRIVCFG_DIPAN, -- S2CR_PRIVCFG_UNPRIV, -- S2CR_PRIVCFG_PRIV, --}; -- --/* Context bank attribute registers */ --#define ARM_SMMU_GR1_CBAR(n) (0x0 + ((n) << 2)) --#define CBAR_VMID_SHIFT 0 --#define CBAR_VMID_MASK 0xff --#define CBAR_S1_BPSHCFG_SHIFT 8 --#define CBAR_S1_BPSHCFG_MASK 3 --#define CBAR_S1_BPSHCFG_NSH 3 --#define CBAR_S1_MEMATTR_SHIFT 12 --#define CBAR_S1_MEMATTR_MASK 0xf --#define CBAR_S1_MEMATTR_WB 0xf --#define CBAR_TYPE_SHIFT 16 --#define CBAR_TYPE_MASK 0x3 --#define CBAR_TYPE_S2_TRANS (0 << CBAR_TYPE_SHIFT) --#define CBAR_TYPE_S1_TRANS_S2_BYPASS (1 << CBAR_TYPE_SHIFT) --#define CBAR_TYPE_S1_TRANS_S2_FAULT (2 << CBAR_TYPE_SHIFT) --#define CBAR_TYPE_S1_TRANS_S2_TRANS (3 << CBAR_TYPE_SHIFT) --#define CBAR_IRPTNDX_SHIFT 24 --#define CBAR_IRPTNDX_MASK 0xff -- --#define ARM_SMMU_GR1_CBA2R(n) (0x800 + ((n) << 2)) --#define CBA2R_RW64_32BIT (0 << 0) --#define CBA2R_RW64_64BIT (1 << 0) --#define CBA2R_VMID_SHIFT 16 --#define CBA2R_VMID_MASK 0xffff -- - /* Translation context bank */ - #define ARM_SMMU_CB(smmu, n) ((smmu)->cb_base + ((n) << (smmu)->pgshift)) - --#define ARM_SMMU_CB_SCTLR 0x0 --#define ARM_SMMU_CB_ACTLR 0x4 --#define ARM_SMMU_CB_RESUME 0x8 --#define ARM_SMMU_CB_TTBCR2 0x10 --#define ARM_SMMU_CB_TTBR0 0x20 --#define ARM_SMMU_CB_TTBR1 0x28 --#define ARM_SMMU_CB_TTBCR 0x30 --#define ARM_SMMU_CB_CONTEXTIDR 0x34 --#define ARM_SMMU_CB_S1_MAIR0 0x38 --#define ARM_SMMU_CB_S1_MAIR1 0x3c --#define ARM_SMMU_CB_PAR 0x50 --#define ARM_SMMU_CB_FSR 0x58 --#define ARM_SMMU_CB_FAR 0x60 --#define ARM_SMMU_CB_FSYNR0 0x68 --#define ARM_SMMU_CB_S1_TLBIVA 0x600 --#define ARM_SMMU_CB_S1_TLBIASID 0x610 --#define ARM_SMMU_CB_S1_TLBIVAL 0x620 --#define ARM_SMMU_CB_S2_TLBIIPAS2 0x630 --#define ARM_SMMU_CB_S2_TLBIIPAS2L 0x638 --#define ARM_SMMU_CB_TLBSYNC 0x7f0 --#define ARM_SMMU_CB_TLBSTATUS 0x7f4 --#define ARM_SMMU_CB_ATS1PR 0x800 --#define ARM_SMMU_CB_ATSR 0x8f0 -- --#define SCTLR_S1_ASIDPNE (1 << 12) --#define SCTLR_CFCFG (1 << 7) --#define SCTLR_CFIE (1 << 6) --#define SCTLR_CFRE (1 << 5) --#define SCTLR_E (1 << 4) --#define SCTLR_AFE (1 << 2) --#define SCTLR_TRE (1 << 1) --#define SCTLR_M (1 << 0) -- --#define ARM_MMU500_ACTLR_CPRE (1 << 1) -- --#define ARM_MMU500_ACR_CACHE_LOCK (1 << 26) --#define ARM_MMU500_ACR_SMTNMB_TLBEN (1 << 8) -- --#define CB_PAR_F (1 << 0) -- --#define ATSR_ACTIVE (1 << 0) -- --#define RESUME_RETRY (0 << 0) --#define RESUME_TERMINATE (1 << 0) -- --#define TTBCR2_SEP_SHIFT 15 --#define TTBCR2_SEP_UPSTREAM (0x7 << TTBCR2_SEP_SHIFT) --#define TTBCR2_AS (1 << 4) -- --#define TTBRn_ASID_SHIFT 48 -- --#define FSR_MULTI (1 << 31) --#define FSR_SS (1 << 30) --#define FSR_UUT (1 << 8) --#define FSR_ASF (1 << 7) --#define FSR_TLBLKF (1 << 6) --#define FSR_TLBMCF (1 << 5) --#define FSR_EF (1 << 4) --#define FSR_PF (1 << 3) --#define FSR_AFF (1 << 2) --#define FSR_TF (1 << 1) -- --#define FSR_IGN (FSR_AFF | FSR_ASF | \ -- FSR_TLBMCF | FSR_TLBLKF) --#define FSR_FAULT (FSR_MULTI | FSR_SS | FSR_UUT | \ -- FSR_EF | FSR_PF | FSR_TF | FSR_IGN) -- --#define FSYNR0_WNR (1 << 4) -- - #define MSI_IOVA_BASE 0x8000000 - #define MSI_IOVA_LENGTH 0x100000 - -From patchwork Thu Jul 13 12:07:46 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [RESEND,3/4] iommu: add qcom_iommu -From: Rob Clark <robdclark@gmail.com> -X-Patchwork-Id: 9838375 -Message-Id: <20170713120747.20490-4-robdclark@gmail.com> -To: iommu@lists.linux-foundation.org -Cc: linux-arm-msm@vger.kernel.org, Archit Taneja <architt@codeaurora.org>, - Rob Herring <robh@kernel.org>, Will Deacon <will.deacon@arm.com>, - Sricharan <sricharan@codeaurora.org>, - Mark Rutland <mark.rutland@arm.com>, Robin Murphy <robin.murphy@arm.com>, - Rob Clark <robdclark@gmail.com> -Date: Thu, 13 Jul 2017 08:07:46 -0400 - -An iommu driver for Qualcomm "B" family devices which do implement the -ARM SMMU spec, but not in a way that is compatible with how the arm-smmu -driver is designed. It seems SMMU_SCR1.GASRAE=1 so the global register -space is not accessible. This means it needs to get configuration from -devicetree instead of setting it up dynamically. - -In the end, other than register definitions, there is not much code to -share with arm-smmu (other than what has already been refactored out -into the pgtable helpers). - -Signed-off-by: Rob Clark <robdclark@gmail.com> -Tested-by: Riku Voipio <riku.voipio@linaro.org> ---- -v1: original -v2: bindings cleanups and kconfig issues that kbuild robot pointed out -v3: fix issues pointed out by Rob H. and actually make device removal - work -v4: fix WARN_ON() splats reported by Archit -v5: some fixes to build as a module.. note that it cannot actually - be built as a module yet (at minimum a bunch of other iommu syms - that are needed are not exported, but there may be more to it - than that), but at least qcom_iommu is ready should it become - possible to build iommu drivers as modules. -v6: Add additional pm-runtime get/puts around paths that can hit - TLB inv, to avoid unclocked register access if device using the - iommu is not powered on. And pre-emptively clear interrupts - before registering IRQ handler just in case the bootloader has - left us a surpise. -v7: Address review comments from Robin (don't associate iommu_group - with context bank, table lookup instead of list to find context - bank, etc) -v8: Fix silly bug on detach. Actually Robin already pointed it out - but I somehow overlooked that comment when preparing v7. - - drivers/iommu/Kconfig | 10 + - drivers/iommu/Makefile | 1 + - drivers/iommu/qcom_iommu.c | 868 +++++++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 879 insertions(+) - create mode 100644 drivers/iommu/qcom_iommu.c - -diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig -index 6ee3a25ae731..aa4b62893fe1 100644 ---- a/drivers/iommu/Kconfig -+++ b/drivers/iommu/Kconfig -@@ -367,4 +367,14 @@ config MTK_IOMMU_V1 - - if unsure, say N here. - -+config QCOM_IOMMU -+ # Note: iommu drivers cannot (yet?) be built as modules -+ bool "Qualcomm IOMMU Support" -+ depends on ARCH_QCOM || COMPILE_TEST -+ select IOMMU_API -+ select IOMMU_IO_PGTABLE_LPAE -+ select ARM_DMA_USE_IOMMU -+ help -+ Support for IOMMU on certain Qualcomm SoCs. -+ - endif # IOMMU_SUPPORT -diff --git a/drivers/iommu/Makefile b/drivers/iommu/Makefile -index 195f7b997d8e..b910aea813a1 100644 ---- a/drivers/iommu/Makefile -+++ b/drivers/iommu/Makefile -@@ -27,3 +27,4 @@ obj-$(CONFIG_TEGRA_IOMMU_SMMU) += tegra-smmu.o - obj-$(CONFIG_EXYNOS_IOMMU) += exynos-iommu.o - obj-$(CONFIG_FSL_PAMU) += fsl_pamu.o fsl_pamu_domain.o - obj-$(CONFIG_S390_IOMMU) += s390-iommu.o -+obj-$(CONFIG_QCOM_IOMMU) += qcom_iommu.o -diff --git a/drivers/iommu/qcom_iommu.c b/drivers/iommu/qcom_iommu.c -new file mode 100644 -index 000000000000..860cad1cb167 ---- /dev/null -+++ b/drivers/iommu/qcom_iommu.c -@@ -0,0 +1,868 @@ -+/* -+ * IOMMU API for QCOM secure IOMMUs. Somewhat based on arm-smmu.c -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program. If not, see <http://www.gnu.org/licenses/>. -+ * -+ * Copyright (C) 2013 ARM Limited -+ * Copyright (C) 2017 Red Hat -+ */ -+ -+#include <linux/atomic.h> -+#include <linux/clk.h> -+#include <linux/delay.h> -+#include <linux/dma-iommu.h> -+#include <linux/dma-mapping.h> -+#include <linux/err.h> -+#include <linux/interrupt.h> -+#include <linux/io.h> -+#include <linux/io-64-nonatomic-hi-lo.h> -+#include <linux/iommu.h> -+#include <linux/iopoll.h> -+#include <linux/kconfig.h> -+#include <linux/module.h> -+#include <linux/mutex.h> -+#include <linux/of.h> -+#include <linux/of_address.h> -+#include <linux/of_device.h> -+#include <linux/of_iommu.h> -+#include <linux/platform_device.h> -+#include <linux/pm.h> -+#include <linux/pm_runtime.h> -+#include <linux/qcom_scm.h> -+#include <linux/slab.h> -+#include <linux/spinlock.h> -+ -+#include "io-pgtable.h" -+#include "arm-smmu-regs.h" -+ -+#define SMMU_INTR_SEL_NS 0x2000 -+ -+struct qcom_iommu_ctx; -+ -+struct qcom_iommu_dev { -+ /* IOMMU core code handle */ -+ struct iommu_device iommu; -+ struct device *dev; -+ struct clk *iface_clk; -+ struct clk *bus_clk; -+ void __iomem *local_base; -+ u32 sec_id; -+ u8 num_ctxs; -+ struct qcom_iommu_ctx *ctxs[0]; /* indexed by asid-1 */ -+}; -+ -+struct qcom_iommu_ctx { -+ struct device *dev; -+ void __iomem *base; -+ bool secure_init; -+ u8 asid; /* asid and ctx bank # are 1:1 */ -+}; -+ -+struct qcom_iommu_domain { -+ struct io_pgtable_ops *pgtbl_ops; -+ spinlock_t pgtbl_lock; -+ struct mutex init_mutex; /* Protects iommu pointer */ -+ struct iommu_domain domain; -+ struct qcom_iommu_dev *iommu; -+}; -+ -+static struct qcom_iommu_domain *to_qcom_iommu_domain(struct iommu_domain *dom) -+{ -+ return container_of(dom, struct qcom_iommu_domain, domain); -+} -+ -+static const struct iommu_ops qcom_iommu_ops; -+ -+static struct qcom_iommu_dev * to_iommu(struct iommu_fwspec *fwspec) -+{ -+ if (!fwspec || fwspec->ops != &qcom_iommu_ops) -+ return NULL; -+ return fwspec->iommu_priv; -+} -+ -+static struct qcom_iommu_ctx * to_ctx(struct iommu_fwspec *fwspec, unsigned asid) -+{ -+ struct qcom_iommu_dev *qcom_iommu = to_iommu(fwspec); -+ if (!qcom_iommu) -+ return NULL; -+ return qcom_iommu->ctxs[asid - 1]; -+} -+ -+static inline void -+iommu_writel(struct qcom_iommu_ctx *ctx, unsigned reg, u32 val) -+{ -+ writel_relaxed(val, ctx->base + reg); -+} -+ -+static inline void -+iommu_writeq(struct qcom_iommu_ctx *ctx, unsigned reg, u64 val) -+{ -+ writeq_relaxed(val, ctx->base + reg); -+} -+ -+static inline u32 -+iommu_readl(struct qcom_iommu_ctx *ctx, unsigned reg) -+{ -+ return readl_relaxed(ctx->base + reg); -+} -+ -+static inline u64 -+iommu_readq(struct qcom_iommu_ctx *ctx, unsigned reg) -+{ -+ return readq_relaxed(ctx->base + reg); -+} -+ -+static void qcom_iommu_tlb_sync(void *cookie) -+{ -+ struct iommu_fwspec *fwspec = cookie; -+ unsigned i; -+ -+ for (i = 0; i < fwspec->num_ids; i++) { -+ struct qcom_iommu_ctx *ctx = to_ctx(fwspec, fwspec->ids[i]); -+ unsigned int val, ret; -+ -+ iommu_writel(ctx, ARM_SMMU_CB_TLBSYNC, 0); -+ -+ ret = readl_poll_timeout(ctx->base + ARM_SMMU_CB_TLBSTATUS, val, -+ (val & 0x1) == 0, 0, 5000000); -+ if (ret) -+ dev_err(ctx->dev, "timeout waiting for TLB SYNC\n"); -+ } -+} -+ -+static void qcom_iommu_tlb_inv_context(void *cookie) -+{ -+ struct iommu_fwspec *fwspec = cookie; -+ unsigned i; -+ -+ for (i = 0; i < fwspec->num_ids; i++) { -+ struct qcom_iommu_ctx *ctx = to_ctx(fwspec, fwspec->ids[i]); -+ iommu_writel(ctx, ARM_SMMU_CB_S1_TLBIASID, ctx->asid); -+ } -+ -+ qcom_iommu_tlb_sync(cookie); -+} -+ -+static void qcom_iommu_tlb_inv_range_nosync(unsigned long iova, size_t size, -+ size_t granule, bool leaf, void *cookie) -+{ -+ struct iommu_fwspec *fwspec = cookie; -+ unsigned i, reg; -+ -+ reg = leaf ? ARM_SMMU_CB_S1_TLBIVAL : ARM_SMMU_CB_S1_TLBIVA; -+ -+ for (i = 0; i < fwspec->num_ids; i++) { -+ struct qcom_iommu_ctx *ctx = to_ctx(fwspec, fwspec->ids[i]); -+ size_t s = size; -+ -+ iova &= ~12UL; -+ iova |= ctx->asid; -+ do { -+ iommu_writel(ctx, reg, iova); -+ iova += granule; -+ } while (s -= granule); -+ } -+} -+ -+static const struct iommu_gather_ops qcom_gather_ops = { -+ .tlb_flush_all = qcom_iommu_tlb_inv_context, -+ .tlb_add_flush = qcom_iommu_tlb_inv_range_nosync, -+ .tlb_sync = qcom_iommu_tlb_sync, -+}; -+ -+static irqreturn_t qcom_iommu_fault(int irq, void *dev) -+{ -+ struct qcom_iommu_ctx *ctx = dev; -+ u32 fsr, fsynr; -+ u64 iova; -+ -+ fsr = iommu_readl(ctx, ARM_SMMU_CB_FSR); -+ -+ if (!(fsr & FSR_FAULT)) -+ return IRQ_NONE; -+ -+ fsynr = iommu_readl(ctx, ARM_SMMU_CB_FSYNR0); -+ iova = iommu_readq(ctx, ARM_SMMU_CB_FAR); -+ -+ dev_err_ratelimited(ctx->dev, -+ "Unhandled context fault: fsr=0x%x, " -+ "iova=0x%016llx, fsynr=0x%x, cb=%d\n", -+ fsr, iova, fsynr, ctx->asid); -+ -+ iommu_writel(ctx, ARM_SMMU_CB_FSR, fsr); -+ -+ return IRQ_HANDLED; -+} -+ -+static int qcom_iommu_init_domain(struct iommu_domain *domain, -+ struct qcom_iommu_dev *qcom_iommu, -+ struct iommu_fwspec *fwspec) -+{ -+ struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); -+ struct io_pgtable_ops *pgtbl_ops; -+ struct io_pgtable_cfg pgtbl_cfg; -+ int i, ret = 0; -+ u32 reg; -+ -+ mutex_lock(&qcom_domain->init_mutex); -+ if (qcom_domain->iommu) -+ goto out_unlock; -+ -+ pgtbl_cfg = (struct io_pgtable_cfg) { -+ .pgsize_bitmap = qcom_iommu_ops.pgsize_bitmap, -+ .ias = 32, -+ .oas = 40, -+ .tlb = &qcom_gather_ops, -+ .iommu_dev = qcom_iommu->dev, -+ }; -+ -+ qcom_domain->iommu = qcom_iommu; -+ pgtbl_ops = alloc_io_pgtable_ops(ARM_32_LPAE_S1, &pgtbl_cfg, fwspec); -+ if (!pgtbl_ops) { -+ dev_err(qcom_iommu->dev, "failed to allocate pagetable ops\n"); -+ ret = -ENOMEM; -+ goto out_clear_iommu; -+ } -+ -+ /* Update the domain's page sizes to reflect the page table format */ -+ domain->pgsize_bitmap = pgtbl_cfg.pgsize_bitmap; -+ domain->geometry.aperture_end = (1ULL << pgtbl_cfg.ias) - 1; -+ domain->geometry.force_aperture = true; -+ -+ for (i = 0; i < fwspec->num_ids; i++) { -+ struct qcom_iommu_ctx *ctx = to_ctx(fwspec, fwspec->ids[i]); -+ -+ if (!ctx->secure_init) { -+ ret = qcom_scm_restore_sec_cfg(qcom_iommu->sec_id, ctx->asid); -+ if (ret) { -+ dev_err(qcom_iommu->dev, "secure init failed: %d\n", ret); -+ goto out_clear_iommu; -+ } -+ ctx->secure_init = true; -+ } -+ -+ /* TTBRs */ -+ iommu_writeq(ctx, ARM_SMMU_CB_TTBR0, -+ pgtbl_cfg.arm_lpae_s1_cfg.ttbr[0] | -+ ((u64)ctx->asid << TTBRn_ASID_SHIFT)); -+ iommu_writeq(ctx, ARM_SMMU_CB_TTBR1, -+ pgtbl_cfg.arm_lpae_s1_cfg.ttbr[1] | -+ ((u64)ctx->asid << TTBRn_ASID_SHIFT)); -+ -+ /* TTBCR */ -+ iommu_writel(ctx, ARM_SMMU_CB_TTBCR2, -+ (pgtbl_cfg.arm_lpae_s1_cfg.tcr >> 32) | -+ TTBCR2_SEP_UPSTREAM); -+ iommu_writel(ctx, ARM_SMMU_CB_TTBCR, -+ pgtbl_cfg.arm_lpae_s1_cfg.tcr); -+ -+ /* MAIRs (stage-1 only) */ -+ iommu_writel(ctx, ARM_SMMU_CB_S1_MAIR0, -+ pgtbl_cfg.arm_lpae_s1_cfg.mair[0]); -+ iommu_writel(ctx, ARM_SMMU_CB_S1_MAIR1, -+ pgtbl_cfg.arm_lpae_s1_cfg.mair[1]); -+ -+ /* SCTLR */ -+ reg = SCTLR_CFIE | SCTLR_CFRE | SCTLR_AFE | SCTLR_TRE | -+ SCTLR_M | SCTLR_S1_ASIDPNE; -+ -+ if (IS_ENABLED(CONFIG_BIG_ENDIAN)) -+ reg |= SCTLR_E; -+ -+ iommu_writel(ctx, ARM_SMMU_CB_SCTLR, reg); -+ } -+ -+ mutex_unlock(&qcom_domain->init_mutex); -+ -+ /* Publish page table ops for map/unmap */ -+ qcom_domain->pgtbl_ops = pgtbl_ops; -+ -+ return 0; -+ -+out_clear_iommu: -+ qcom_domain->iommu = NULL; -+out_unlock: -+ mutex_unlock(&qcom_domain->init_mutex); -+ return ret; -+} -+ -+static struct iommu_domain *qcom_iommu_domain_alloc(unsigned type) -+{ -+ struct qcom_iommu_domain *qcom_domain; -+ -+ if (type != IOMMU_DOMAIN_UNMANAGED && type != IOMMU_DOMAIN_DMA) -+ return NULL; -+ /* -+ * Allocate the domain and initialise some of its data structures. -+ * We can't really do anything meaningful until we've added a -+ * master. -+ */ -+ qcom_domain = kzalloc(sizeof(*qcom_domain), GFP_KERNEL); -+ if (!qcom_domain) -+ return NULL; -+ -+ if (type == IOMMU_DOMAIN_DMA && -+ iommu_get_dma_cookie(&qcom_domain->domain)) { -+ kfree(qcom_domain); -+ return NULL; -+ } -+ -+ mutex_init(&qcom_domain->init_mutex); -+ spin_lock_init(&qcom_domain->pgtbl_lock); -+ -+ return &qcom_domain->domain; -+} -+ -+static void qcom_iommu_domain_free(struct iommu_domain *domain) -+{ -+ struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); -+ -+ if (WARN_ON(qcom_domain->iommu)) /* forgot to detach? */ -+ return; -+ -+ iommu_put_dma_cookie(domain); -+ -+ /* NOTE: unmap can be called after client device is powered off, -+ * for example, with GPUs or anything involving dma-buf. So we -+ * cannot rely on the device_link. Make sure the IOMMU is on to -+ * avoid unclocked accesses in the TLB inv path: -+ */ -+ pm_runtime_get_sync(qcom_domain->iommu->dev); -+ -+ free_io_pgtable_ops(qcom_domain->pgtbl_ops); -+ -+ pm_runtime_put_sync(qcom_domain->iommu->dev); -+ -+ kfree(qcom_domain); -+} -+ -+static int qcom_iommu_attach_dev(struct iommu_domain *domain, struct device *dev) -+{ -+ struct qcom_iommu_dev *qcom_iommu = to_iommu(dev->iommu_fwspec); -+ struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); -+ int ret; -+ -+ if (!qcom_iommu) { -+ dev_err(dev, "cannot attach to IOMMU, is it on the same bus?\n"); -+ return -ENXIO; -+ } -+ -+ /* Ensure that the domain is finalized */ -+ pm_runtime_get_sync(qcom_iommu->dev); -+ ret = qcom_iommu_init_domain(domain, qcom_iommu, dev->iommu_fwspec); -+ pm_runtime_put_sync(qcom_iommu->dev); -+ if (ret < 0) -+ return ret; -+ -+ /* -+ * Sanity check the domain. We don't support domains across -+ * different IOMMUs. -+ */ -+ if (qcom_domain->iommu != qcom_iommu) { -+ dev_err(dev, "cannot attach to IOMMU %s while already " -+ "attached to domain on IOMMU %s\n", -+ dev_name(qcom_domain->iommu->dev), -+ dev_name(qcom_iommu->dev)); -+ return -EINVAL; -+ } -+ -+ return 0; -+} -+ -+static void qcom_iommu_detach_dev(struct iommu_domain *domain, struct device *dev) -+{ -+ struct iommu_fwspec *fwspec = dev->iommu_fwspec; -+ struct qcom_iommu_dev *qcom_iommu = to_iommu(fwspec); -+ struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); -+ unsigned i; -+ -+ if (!qcom_domain->iommu) -+ return; -+ -+ pm_runtime_get_sync(qcom_iommu->dev); -+ for (i = 0; i < fwspec->num_ids; i++) { -+ struct qcom_iommu_ctx *ctx = to_ctx(fwspec, fwspec->ids[i]); -+ -+ /* Disable the context bank: */ -+ iommu_writel(ctx, ARM_SMMU_CB_SCTLR, 0); -+ } -+ pm_runtime_put_sync(qcom_iommu->dev); -+ -+ qcom_domain->iommu = NULL; -+} -+ -+static int qcom_iommu_map(struct iommu_domain *domain, unsigned long iova, -+ phys_addr_t paddr, size_t size, int prot) -+{ -+ int ret; -+ unsigned long flags; -+ struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); -+ struct io_pgtable_ops *ops = qcom_domain->pgtbl_ops; -+ -+ if (!ops) -+ return -ENODEV; -+ -+ spin_lock_irqsave(&qcom_domain->pgtbl_lock, flags); -+ ret = ops->map(ops, iova, paddr, size, prot); -+ spin_unlock_irqrestore(&qcom_domain->pgtbl_lock, flags); -+ return ret; -+} -+ -+static size_t qcom_iommu_unmap(struct iommu_domain *domain, unsigned long iova, -+ size_t size) -+{ -+ size_t ret; -+ unsigned long flags; -+ struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); -+ struct io_pgtable_ops *ops = qcom_domain->pgtbl_ops; -+ -+ if (!ops) -+ return 0; -+ -+ /* NOTE: unmap can be called after client device is powered off, -+ * for example, with GPUs or anything involving dma-buf. So we -+ * cannot rely on the device_link. Make sure the IOMMU is on to -+ * avoid unclocked accesses in the TLB inv path: -+ */ -+ pm_runtime_get_sync(qcom_domain->iommu->dev); -+ spin_lock_irqsave(&qcom_domain->pgtbl_lock, flags); -+ ret = ops->unmap(ops, iova, size); -+ spin_unlock_irqrestore(&qcom_domain->pgtbl_lock, flags); -+ pm_runtime_put_sync(qcom_domain->iommu->dev); -+ -+ return ret; -+} -+ -+static phys_addr_t qcom_iommu_iova_to_phys(struct iommu_domain *domain, -+ dma_addr_t iova) -+{ -+ phys_addr_t ret; -+ unsigned long flags; -+ struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain); -+ struct io_pgtable_ops *ops = qcom_domain->pgtbl_ops; -+ -+ if (!ops) -+ return 0; -+ -+ spin_lock_irqsave(&qcom_domain->pgtbl_lock, flags); -+ ret = ops->iova_to_phys(ops, iova); -+ spin_unlock_irqrestore(&qcom_domain->pgtbl_lock, flags); -+ -+ return ret; -+} -+ -+static bool qcom_iommu_capable(enum iommu_cap cap) -+{ -+ switch (cap) { -+ case IOMMU_CAP_CACHE_COHERENCY: -+ /* -+ * Return true here as the SMMU can always send out coherent -+ * requests. -+ */ -+ return true; -+ case IOMMU_CAP_NOEXEC: -+ return true; -+ default: -+ return false; -+ } -+} -+ -+static int qcom_iommu_add_device(struct device *dev) -+{ -+ struct qcom_iommu_dev *qcom_iommu = to_iommu(dev->iommu_fwspec); -+ struct iommu_group *group; -+ struct device_link *link; -+ -+ if (!qcom_iommu) -+ return -ENODEV; -+ -+ /* -+ * Establish the link between iommu and master, so that the -+ * iommu gets runtime enabled/disabled as per the master's -+ * needs. -+ */ -+ link = device_link_add(dev, qcom_iommu->dev, DL_FLAG_PM_RUNTIME); -+ if (!link) { -+ dev_err(qcom_iommu->dev, "Unable to create device link between %s and %s\n", -+ dev_name(qcom_iommu->dev), dev_name(dev)); -+ return -ENODEV; -+ } -+ -+ group = iommu_group_get_for_dev(dev); -+ if (IS_ERR_OR_NULL(group)) -+ return PTR_ERR_OR_ZERO(group); -+ -+ iommu_group_put(group); -+ iommu_device_link(&qcom_iommu->iommu, dev); -+ -+ return 0; -+} -+ -+static void qcom_iommu_remove_device(struct device *dev) -+{ -+ struct qcom_iommu_dev *qcom_iommu = to_iommu(dev->iommu_fwspec); -+ -+ if (!qcom_iommu) -+ return; -+ -+ iommu_device_unlink(&qcom_iommu->iommu, dev); -+ iommu_group_remove_device(dev); -+ iommu_fwspec_free(dev); -+} -+ -+static int qcom_iommu_of_xlate(struct device *dev, struct of_phandle_args *args) -+{ -+ struct qcom_iommu_dev *qcom_iommu; -+ struct platform_device *iommu_pdev; -+ unsigned asid = args->args[0]; -+ -+ if (args->args_count != 1) { -+ dev_err(dev, "incorrect number of iommu params found for %s " -+ "(found %d, expected 1)\n", -+ args->np->full_name, args->args_count); -+ return -EINVAL; -+ } -+ -+ iommu_pdev = of_find_device_by_node(args->np); -+ if (WARN_ON(!iommu_pdev)) -+ return -EINVAL; -+ -+ qcom_iommu = platform_get_drvdata(iommu_pdev); -+ -+ /* make sure the asid specified in dt is valid, so we don't have -+ * to sanity check this elsewhere, since 'asid - 1' is used to -+ * index into qcom_iommu->ctxs: -+ */ -+ if (WARN_ON(asid < 1) || -+ WARN_ON(asid > qcom_iommu->num_ctxs)) -+ return -EINVAL; -+ -+ if (!dev->iommu_fwspec->iommu_priv) { -+ dev->iommu_fwspec->iommu_priv = qcom_iommu; -+ } else { -+ /* make sure devices iommus dt node isn't referring to -+ * multiple different iommu devices. Multiple context -+ * banks are ok, but multiple devices are not: -+ */ -+ if (WARN_ON(qcom_iommu != dev->iommu_fwspec->iommu_priv)) -+ return -EINVAL; -+ } -+ -+ return iommu_fwspec_add_ids(dev, &asid, 1); -+} -+ -+static const struct iommu_ops qcom_iommu_ops = { -+ .capable = qcom_iommu_capable, -+ .domain_alloc = qcom_iommu_domain_alloc, -+ .domain_free = qcom_iommu_domain_free, -+ .attach_dev = qcom_iommu_attach_dev, -+ .detach_dev = qcom_iommu_detach_dev, -+ .map = qcom_iommu_map, -+ .unmap = qcom_iommu_unmap, -+ .map_sg = default_iommu_map_sg, -+ .iova_to_phys = qcom_iommu_iova_to_phys, -+ .add_device = qcom_iommu_add_device, -+ .remove_device = qcom_iommu_remove_device, -+ .device_group = generic_device_group, -+ .of_xlate = qcom_iommu_of_xlate, -+ .pgsize_bitmap = SZ_4K | SZ_64K | SZ_1M | SZ_16M, -+}; -+ -+static int qcom_iommu_enable_clocks(struct qcom_iommu_dev *qcom_iommu) -+{ -+ int ret; -+ -+ ret = clk_prepare_enable(qcom_iommu->iface_clk); -+ if (ret) { -+ dev_err(qcom_iommu->dev, "Couldn't enable iface_clk\n"); -+ return ret; -+ } -+ -+ ret = clk_prepare_enable(qcom_iommu->bus_clk); -+ if (ret) { -+ dev_err(qcom_iommu->dev, "Couldn't enable bus_clk\n"); -+ clk_disable_unprepare(qcom_iommu->iface_clk); -+ return ret; -+ } -+ -+ return 0; -+} -+ -+static void qcom_iommu_disable_clocks(struct qcom_iommu_dev *qcom_iommu) -+{ -+ clk_disable_unprepare(qcom_iommu->bus_clk); -+ clk_disable_unprepare(qcom_iommu->iface_clk); -+} -+ -+static int get_asid(const struct device_node *np) -+{ -+ u32 reg; -+ -+ /* read the "reg" property directly to get the relative address -+ * of the context bank, and calculate the asid from that: -+ */ -+ if (of_property_read_u32_index(np, "reg", 0, ®)) -+ return -ENODEV; -+ -+ return reg / 0x1000; /* context banks are 0x1000 apart */ -+} -+ -+static int qcom_iommu_ctx_probe(struct platform_device *pdev) -+{ -+ struct qcom_iommu_ctx *ctx; -+ struct device *dev = &pdev->dev; -+ struct qcom_iommu_dev *qcom_iommu = dev_get_drvdata(dev->parent); -+ struct resource *res; -+ int ret, irq; -+ -+ ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL); -+ if (!ctx) -+ return -ENOMEM; -+ -+ ctx->dev = dev; -+ platform_set_drvdata(pdev, ctx); -+ -+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0); -+ ctx->base = devm_ioremap_resource(dev, res); -+ if (IS_ERR(ctx->base)) -+ return PTR_ERR(ctx->base); -+ -+ irq = platform_get_irq(pdev, 0); -+ if (irq < 0) { -+ dev_err(dev, "failed to get irq\n"); -+ return -ENODEV; -+ } -+ -+ /* clear IRQs before registering fault handler, just in case the -+ * boot-loader left us a surprise: -+ */ -+ iommu_writel(ctx, ARM_SMMU_CB_FSR, iommu_readl(ctx, ARM_SMMU_CB_FSR)); -+ -+ ret = devm_request_irq(dev, irq, -+ qcom_iommu_fault, -+ IRQF_SHARED, -+ "qcom-iommu-fault", -+ ctx); -+ if (ret) { -+ dev_err(dev, "failed to request IRQ %u\n", irq); -+ return ret; -+ } -+ -+ ret = get_asid(dev->of_node); -+ if (ret < 0) { -+ dev_err(dev, "missing reg property\n"); -+ return ret; -+ } -+ -+ ctx->asid = ret; -+ -+ dev_dbg(dev, "found asid %u\n", ctx->asid); -+ -+ qcom_iommu->ctxs[ctx->asid - 1] = ctx; -+ -+ return 0; -+} -+ -+static int qcom_iommu_ctx_remove(struct platform_device *pdev) -+{ -+ struct qcom_iommu_dev *qcom_iommu = dev_get_drvdata(pdev->dev.parent); -+ struct qcom_iommu_ctx *ctx = platform_get_drvdata(pdev); -+ -+ platform_set_drvdata(pdev, NULL); -+ -+ qcom_iommu->ctxs[ctx->asid - 1] = NULL; -+ -+ return 0; -+} -+ -+static const struct of_device_id ctx_of_match[] = { -+ { .compatible = "qcom,msm-iommu-v1-ns" }, -+ { .compatible = "qcom,msm-iommu-v1-sec" }, -+ { /* sentinel */ } -+}; -+ -+static struct platform_driver qcom_iommu_ctx_driver = { -+ .driver = { -+ .name = "qcom-iommu-ctx", -+ .of_match_table = of_match_ptr(ctx_of_match), -+ }, -+ .probe = qcom_iommu_ctx_probe, -+ .remove = qcom_iommu_ctx_remove, -+}; -+ -+static int qcom_iommu_device_probe(struct platform_device *pdev) -+{ -+ struct device_node *child; -+ struct qcom_iommu_dev *qcom_iommu; -+ struct device *dev = &pdev->dev; -+ struct resource *res; -+ int ret, sz, max_asid = 0; -+ -+ /* find the max asid (which is 1:1 to ctx bank idx), so we know how -+ * many child ctx devices we have: -+ */ -+ for_each_child_of_node(dev->of_node, child) -+ max_asid = max(max_asid, get_asid(child)); -+ -+ sz = sizeof(*qcom_iommu) + (max_asid * sizeof(qcom_iommu->ctxs[0])); -+ -+ qcom_iommu = devm_kzalloc(dev, sz, GFP_KERNEL); -+ if (!qcom_iommu) -+ return -ENOMEM; -+ qcom_iommu->num_ctxs = max_asid; -+ qcom_iommu->dev = dev; -+ -+ res = platform_get_resource(pdev, IORESOURCE_MEM, 0); -+ if (res) -+ qcom_iommu->local_base = devm_ioremap_resource(dev, res); -+ -+ qcom_iommu->iface_clk = devm_clk_get(dev, "iface"); -+ if (IS_ERR(qcom_iommu->iface_clk)) { -+ dev_err(dev, "failed to get iface clock\n"); -+ return PTR_ERR(qcom_iommu->iface_clk); -+ } -+ -+ qcom_iommu->bus_clk = devm_clk_get(dev, "bus"); -+ if (IS_ERR(qcom_iommu->bus_clk)) { -+ dev_err(dev, "failed to get bus clock\n"); -+ return PTR_ERR(qcom_iommu->bus_clk); -+ } -+ -+ if (of_property_read_u32(dev->of_node, "qcom,iommu-secure-id", -+ &qcom_iommu->sec_id)) { -+ dev_err(dev, "missing qcom,iommu-secure-id property\n"); -+ return -ENODEV; -+ } -+ -+ platform_set_drvdata(pdev, qcom_iommu); -+ -+ pm_runtime_enable(dev); -+ -+ /* register context bank devices, which are child nodes: */ -+ ret = devm_of_platform_populate(dev); -+ if (ret) { -+ dev_err(dev, "Failed to populate iommu contexts\n"); -+ return ret; -+ } -+ -+ ret = iommu_device_sysfs_add(&qcom_iommu->iommu, dev, NULL, -+ dev_name(dev)); -+ if (ret) { -+ dev_err(dev, "Failed to register iommu in sysfs\n"); -+ return ret; -+ } -+ -+ iommu_device_set_ops(&qcom_iommu->iommu, &qcom_iommu_ops); -+ iommu_device_set_fwnode(&qcom_iommu->iommu, dev->fwnode); -+ -+ ret = iommu_device_register(&qcom_iommu->iommu); -+ if (ret) { -+ dev_err(dev, "Failed to register iommu\n"); -+ return ret; -+ } -+ -+ bus_set_iommu(&platform_bus_type, &qcom_iommu_ops); -+ -+ if (qcom_iommu->local_base) { -+ pm_runtime_get_sync(dev); -+ writel_relaxed(0xffffffff, qcom_iommu->local_base + SMMU_INTR_SEL_NS); -+ pm_runtime_put_sync(dev); -+ } -+ -+ return 0; -+} -+ -+static int qcom_iommu_device_remove(struct platform_device *pdev) -+{ -+ struct qcom_iommu_dev *qcom_iommu = platform_get_drvdata(pdev); -+ -+ bus_set_iommu(&platform_bus_type, NULL); -+ -+ pm_runtime_force_suspend(&pdev->dev); -+ platform_set_drvdata(pdev, NULL); -+ iommu_device_sysfs_remove(&qcom_iommu->iommu); -+ iommu_device_unregister(&qcom_iommu->iommu); -+ -+ return 0; -+} -+ -+#ifdef CONFIG_PM -+static int qcom_iommu_resume(struct device *dev) -+{ -+ struct platform_device *pdev = to_platform_device(dev); -+ struct qcom_iommu_dev *qcom_iommu = platform_get_drvdata(pdev); -+ -+ return qcom_iommu_enable_clocks(qcom_iommu); -+} -+ -+static int qcom_iommu_suspend(struct device *dev) -+{ -+ struct platform_device *pdev = to_platform_device(dev); -+ struct qcom_iommu_dev *qcom_iommu = platform_get_drvdata(pdev); -+ -+ qcom_iommu_disable_clocks(qcom_iommu); -+ -+ return 0; -+} -+#endif -+ -+static const struct dev_pm_ops qcom_iommu_pm_ops = { -+ SET_RUNTIME_PM_OPS(qcom_iommu_suspend, qcom_iommu_resume, NULL) -+ SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, -+ pm_runtime_force_resume) -+}; -+ -+static const struct of_device_id qcom_iommu_of_match[] = { -+ { .compatible = "qcom,msm-iommu-v1" }, -+ { /* sentinel */ } -+}; -+MODULE_DEVICE_TABLE(of, qcom_iommu_of_match); -+ -+static struct platform_driver qcom_iommu_driver = { -+ .driver = { -+ .name = "qcom-iommu", -+ .of_match_table = of_match_ptr(qcom_iommu_of_match), -+ .pm = &qcom_iommu_pm_ops, -+ }, -+ .probe = qcom_iommu_device_probe, -+ .remove = qcom_iommu_device_remove, -+}; -+ -+static int __init qcom_iommu_init(void) -+{ -+ int ret; -+ -+ ret = platform_driver_register(&qcom_iommu_ctx_driver); -+ if (ret) -+ return ret; -+ -+ ret = platform_driver_register(&qcom_iommu_driver); -+ if (ret) -+ platform_driver_unregister(&qcom_iommu_ctx_driver); -+ -+ return ret; -+} -+ -+static void __exit qcom_iommu_exit(void) -+{ -+ platform_driver_unregister(&qcom_iommu_driver); -+ platform_driver_unregister(&qcom_iommu_ctx_driver); -+} -+ -+module_init(qcom_iommu_init); -+module_exit(qcom_iommu_exit); -+ -+IOMMU_OF_DECLARE(qcom_iommu_dev, "qcom,msm-iommu-v1", NULL); -+ -+MODULE_DESCRIPTION("IOMMU API for QCOM IOMMU v1 implementations"); -+MODULE_LICENSE("GPL v2"); -From patchwork Thu Jul 13 12:07:47 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [RESEND,4/4] iommu: qcom: initialize secure page table -From: Rob Clark <robdclark@gmail.com> -X-Patchwork-Id: 9838373 -Message-Id: <20170713120747.20490-5-robdclark@gmail.com> -To: iommu@lists.linux-foundation.org -Cc: linux-arm-msm@vger.kernel.org, Archit Taneja <architt@codeaurora.org>, - Rob Herring <robh@kernel.org>, Will Deacon <will.deacon@arm.com>, - Sricharan <sricharan@codeaurora.org>, - Mark Rutland <mark.rutland@arm.com>, Robin Murphy <robin.murphy@arm.com>, - Stanimir Varbanov <stanimir.varbanov@linaro.org>, - Rob Clark <robdclark@gmail.com> -Date: Thu, 13 Jul 2017 08:07:47 -0400 - -From: Stanimir Varbanov <stanimir.varbanov@linaro.org> - -This basically gets the secure page table size, allocates memory for -secure pagetables and passes the physical address to the trusted zone. - -Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> -Signed-off-by: Rob Clark <robdclark@gmail.com> ---- - drivers/iommu/qcom_iommu.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 64 insertions(+) - -diff --git a/drivers/iommu/qcom_iommu.c b/drivers/iommu/qcom_iommu.c -index 860cad1cb167..48b62aa52787 100644 ---- a/drivers/iommu/qcom_iommu.c -+++ b/drivers/iommu/qcom_iommu.c -@@ -604,6 +604,51 @@ static void qcom_iommu_disable_clocks(struct qcom_iommu_dev *qcom_iommu) - clk_disable_unprepare(qcom_iommu->iface_clk); - } - -+static int qcom_iommu_sec_ptbl_init(struct device *dev) -+{ -+ size_t psize = 0; -+ unsigned int spare = 0; -+ void *cpu_addr; -+ dma_addr_t paddr; -+ unsigned long attrs; -+ static bool allocated = false; -+ int ret; -+ -+ if (allocated) -+ return 0; -+ -+ ret = qcom_scm_iommu_secure_ptbl_size(spare, &psize); -+ if (ret) { -+ dev_err(dev, "failed to get iommu secure pgtable size (%d)\n", -+ ret); -+ return ret; -+ } -+ -+ dev_info(dev, "iommu sec: pgtable size: %zu\n", psize); -+ -+ attrs = DMA_ATTR_NO_KERNEL_MAPPING; -+ -+ cpu_addr = dma_alloc_attrs(dev, psize, &paddr, GFP_KERNEL, attrs); -+ if (!cpu_addr) { -+ dev_err(dev, "failed to allocate %zu bytes for pgtable\n", -+ psize); -+ return -ENOMEM; -+ } -+ -+ ret = qcom_scm_iommu_secure_ptbl_init(paddr, psize, spare); -+ if (ret) { -+ dev_err(dev, "failed to init iommu pgtable (%d)\n", ret); -+ goto free_mem; -+ } -+ -+ allocated = true; -+ return 0; -+ -+free_mem: -+ dma_free_attrs(dev, psize, cpu_addr, paddr, attrs); -+ return ret; -+} -+ - static int get_asid(const struct device_node *np) - { - u32 reg; -@@ -700,6 +745,17 @@ static struct platform_driver qcom_iommu_ctx_driver = { - .remove = qcom_iommu_ctx_remove, - }; - -+static bool qcom_iommu_has_secure_context(struct qcom_iommu_dev *qcom_iommu) -+{ -+ struct device_node *child; -+ -+ for_each_child_of_node(qcom_iommu->dev->of_node, child) -+ if (of_device_is_compatible(child, "qcom,msm-iommu-v1-sec")) -+ return true; -+ -+ return false; -+} -+ - static int qcom_iommu_device_probe(struct platform_device *pdev) - { - struct device_node *child; -@@ -744,6 +800,14 @@ static int qcom_iommu_device_probe(struct platform_device *pdev) - return -ENODEV; - } - -+ if (qcom_iommu_has_secure_context(qcom_iommu)) { -+ ret = qcom_iommu_sec_ptbl_init(dev); -+ if (ret) { -+ dev_err(dev, "cannot init secure pg table(%d)\n", ret); -+ return ret; -+ } -+ } -+ - platform_set_drvdata(pdev, qcom_iommu); - - pm_runtime_enable(dev); -From patchwork Mon Jun 12 12:43:15 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [1/3] ARM64: DT: add gpu for msm8916 -From: Rob Clark <robdclark@gmail.com> -X-Patchwork-Id: 9781057 -Message-Id: <20170612124317.29313-1-robdclark@gmail.com> -To: linux-arm-msm@vger.kernel.org -Cc: Stephen Boyd <sboyd@codeaurora.org>, Andy Gross <agross@codeaurora.org>, - Stanimir Varbanov <stanimir.varbanov@linaro.org>, - Rob Clark <robdclark@gmail.com> -Date: Mon, 12 Jun 2017 08:43:15 -0400 - -Signed-off-by: Rob Clark <robdclark@gmail.com> -Reviewed-by: Stephen Boyd <sboyd@codeaurora.org> ---- - arch/arm64/boot/dts/qcom/msm8916.dtsi | 35 +++++++++++++++++++++++++++++++++++ - 1 file changed, 35 insertions(+) - -diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi -index ab30939..24c24ab 100644 ---- a/arch/arm64/boot/dts/qcom/msm8916.dtsi -+++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi -@@ -204,6 +204,17 @@ - - }; - -+ gpu_opp_table: opp_table { -+ compatible = "operating-points-v2"; -+ -+ opp-400000000 { -+ opp-hz = /bits/ 64 <400000000>; -+ }; -+ opp-19200000 { -+ opp-hz = /bits/ 64 <19200000>; -+ }; -+ }; -+ - timer { - compatible = "arm,armv8-timer"; - interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, -@@ -698,6 +709,30 @@ - #thermal-sensor-cells = <1>; - }; - -+ gpu@1c00000 { -+ compatible = "qcom,adreno-306.0", "qcom,adreno"; -+ reg = <0x01c00000 0x20000>; -+ reg-names = "kgsl_3d0_reg_memory"; -+ interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; -+ interrupt-names = "kgsl_3d0_irq"; -+ clock-names = -+ "core", -+ "iface", -+ "mem", -+ "mem_iface", -+ "alt_mem_iface", -+ "gfx3d"; -+ clocks = -+ <&gcc GCC_OXILI_GFX3D_CLK>, -+ <&gcc GCC_OXILI_AHB_CLK>, -+ <&gcc GCC_OXILI_GMEM_CLK>, -+ <&gcc GCC_BIMC_GFX_CLK>, -+ <&gcc GCC_BIMC_GPU_CLK>, -+ <&gcc GFX3D_CLK_SRC>; -+ power-domains = <&gcc OXILI_GDSC>; -+ operating-points-v2 = <&gpu_opp_table>; -+ }; -+ - mdss: mdss@1a00000 { - compatible = "qcom,mdss"; - reg = <0x1a00000 0x1000>, -From patchwork Mon Jun 12 12:43:16 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [2/3] ARM64: DT: add video codec devicetree node -From: Rob Clark <robdclark@gmail.com> -X-Patchwork-Id: 9781059 -Message-Id: <20170612124317.29313-2-robdclark@gmail.com> -To: linux-arm-msm@vger.kernel.org -Cc: Stephen Boyd <sboyd@codeaurora.org>, Andy Gross <agross@codeaurora.org>, - Stanimir Varbanov <stanimir.varbanov@linaro.org>, - Rob Clark <robdclark@gmail.com> -Date: Mon, 12 Jun 2017 08:43:16 -0400 - -From: Stanimir Varbanov <stanimir.varbanov@linaro.org> - -Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> -Signed-off-by: Rob Clark <robdclark@gmail.com> -Reviewed-by: Stephen Boyd <sboyd@codeaurora.org> ---- - arch/arm64/boot/dts/qcom/msm8916.dtsi | 28 ++++++++++++++++++++++++++++ - 1 file changed, 28 insertions(+) - -diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi -index 24c24ab..1dcd632 100644 ---- a/arch/arm64/boot/dts/qcom/msm8916.dtsi -+++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi -@@ -88,6 +88,13 @@ - no-map; - }; - -+ venus_mem: venus@89900000 { -+ compatible = "shared-dma-pool"; -+ reg = <0x0 0x89900000 0x0 0x800000>; -+ alignment = <0x1000>; -+ no-map; -+ }; -+ - mba_mem: mba@8ea00000 { - no-map; - reg = <0 0x8ea00000 0 0x100000>; -@@ -1214,6 +1221,27 @@ - }; - }; - }; -+ -+ venus: video-codec@1d00000 { -+ compatible = "qcom,msm8916-venus"; -+ reg = <0x01d00000 0xff000>; -+ interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; -+ power-domains = <&gcc VENUS_GDSC>; -+ clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>, -+ <&gcc GCC_VENUS0_AHB_CLK>, -+ <&gcc GCC_VENUS0_AXI_CLK>; -+ clock-names = "core", "iface", "bus"; -+ memory-region = <&venus_mem>; -+ status = "okay"; -+ -+ video-decoder { -+ compatible = "venus-decoder"; -+ }; -+ -+ video-encoder { -+ compatible = "venus-encoder"; -+ }; -+ }; - }; - - smd { -From patchwork Mon Jun 12 12:43:17 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [3/3] ARM64: DT: add iommu for msm8916 -From: Rob Clark <robdclark@gmail.com> -X-Patchwork-Id: 9781061 -Message-Id: <20170612124317.29313-3-robdclark@gmail.com> -To: linux-arm-msm@vger.kernel.org -Cc: Stephen Boyd <sboyd@codeaurora.org>, Andy Gross <agross@codeaurora.org>, - Stanimir Varbanov <stanimir.varbanov@linaro.org>, - Rob Clark <robdclark@gmail.com> -Date: Mon, 12 Jun 2017 08:43:17 -0400 - -Signed-off-by: Rob Clark <robdclark@gmail.com> -Reviewed-by: Stephen Boyd <sboyd@codeaurora.org> ---- - arch/arm64/boot/dts/qcom/msm8916.dtsi | 57 +++++++++++++++++++++++++++++++++++ - 1 file changed, 57 insertions(+) - -diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi -index 1dcd632..9a1d7ef 100644 ---- a/arch/arm64/boot/dts/qcom/msm8916.dtsi -+++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi -@@ -716,6 +716,59 @@ - #thermal-sensor-cells = <1>; - }; - -+ apps_iommu: iommu@1ef0000 { -+ #address-cells = <1>; -+ #size-cells = <1>; -+ #iommu-cells = <1>; -+ compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1"; -+ ranges = <0 0x1e20000 0x40000>; -+ reg = <0x1ef0000 0x3000>; -+ clocks = <&gcc GCC_SMMU_CFG_CLK>, -+ <&gcc GCC_APSS_TCU_CLK>; -+ clock-names = "iface", "bus"; -+ qcom,iommu-secure-id = <17>; -+ -+ // mdp_0: -+ iommu-ctx@4000 { -+ compatible = "qcom,msm-iommu-v1-ns"; -+ reg = <0x4000 0x1000>; -+ interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; -+ }; -+ -+ // venus_ns: -+ iommu-ctx@5000 { -+ compatible = "qcom,msm-iommu-v1-sec"; -+ reg = <0x5000 0x1000>; -+ interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; -+ }; -+ }; -+ -+ gpu_iommu: iommu@1f08000 { -+ #address-cells = <1>; -+ #size-cells = <1>; -+ #iommu-cells = <1>; -+ compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1"; -+ ranges = <0 0x1f08000 0x10000>; -+ clocks = <&gcc GCC_SMMU_CFG_CLK>, -+ <&gcc GCC_GFX_TCU_CLK>; -+ clock-names = "iface", "bus"; -+ qcom,iommu-secure-id = <18>; -+ -+ // gfx3d_user: -+ iommu-ctx@1000 { -+ compatible = "qcom,msm-iommu-v1-ns"; -+ reg = <0x1000 0x1000>; -+ interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>; -+ }; -+ -+ // gfx3d_priv: -+ iommu-ctx@2000 { -+ compatible = "qcom,msm-iommu-v1-ns"; -+ reg = <0x2000 0x1000>; -+ interrupts = <GIC_SPI 242 0>; -+ }; -+ }; -+ - gpu@1c00000 { - compatible = "qcom,adreno-306.0", "qcom,adreno"; - reg = <0x01c00000 0x20000>; -@@ -738,6 +791,7 @@ - <&gcc GFX3D_CLK_SRC>; - power-domains = <&gcc OXILI_GDSC>; - operating-points-v2 = <&gpu_opp_table>; -+ iommus = <&gpu_iommu 1>, <&gpu_iommu 2>; - }; - - mdss: mdss@1a00000 { -@@ -781,6 +835,8 @@ - "core_clk", - "vsync_clk"; - -+ iommus = <&apps_iommu 4>; -+ - ports { - #address-cells = <1>; - #size-cells = <0>; -@@ -1231,6 +1287,7 @@ - <&gcc GCC_VENUS0_AHB_CLK>, - <&gcc GCC_VENUS0_AXI_CLK>; - clock-names = "core", "iface", "bus"; -+ iommus = <&apps_iommu 5>; - memory-region = <&venus_mem>; - status = "okay"; - diff --git a/qcom-msm-ci_hdrc_msm_probe-missing-of_node_get.patch b/qcom-msm-ci_hdrc_msm_probe-missing-of_node_get.patch deleted file mode 100644 index bc1884782..000000000 --- a/qcom-msm-ci_hdrc_msm_probe-missing-of_node_get.patch +++ /dev/null @@ -1,45 +0,0 @@ -From patchwork Tue Jul 18 23:31:28 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: usb: chipidea: msm: ci_hdrc_msm_probe() missing of_node_get() -From: Frank Rowand <frowand.list@gmail.com> -X-Patchwork-Id: 9850189 -Message-Id: <1500420688-11912-1-git-send-email-frowand.list@gmail.com> -To: Peter Chen <Peter.Chen@nxp.com>, - Greg Kroah-Hartman <gregkh@linuxfoundation.org>, linux-usb@vger.kernel.org -Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org -Date: Tue, 18 Jul 2017 16:31:28 -0700 - -From: Frank Rowand <frank.rowand@sony.com> - -Boot fails for qcom-apq8074-dragonboard on 4.13-rc1 with error: -OF: ERROR: Bad of_node_put() on /soc/usb@f9a55000 - -The error will occur if the configuration is set to: - CONFIG_OF_OVERLAY y - CONFIG_OF_UNITTEST y - CONFIG_OF_DYNAMIC y - CONFIG_OF_RESOLVE y - -If CONFIG_OF_DYNAMIC is enabled then of_node_release() detects an -attempt to release a node that is still attached to the device tree. - -Signed-off-by: Frank Rowand <frank.rowand@sony.com> ---- - drivers/usb/chipidea/ci_hdrc_msm.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/usb/chipidea/ci_hdrc_msm.c b/drivers/usb/chipidea/ci_hdrc_msm.c -index 0bdfcdcbf7a5..bb626120296f 100644 ---- a/drivers/usb/chipidea/ci_hdrc_msm.c -+++ b/drivers/usb/chipidea/ci_hdrc_msm.c -@@ -251,7 +251,7 @@ static int ci_hdrc_msm_probe(struct platform_device *pdev) - if (ret) - goto err_mux; - -- ulpi_node = of_find_node_by_name(pdev->dev.of_node, "ulpi"); -+ ulpi_node = of_find_node_by_name(of_node_get(pdev->dev.of_node), "ulpi"); - if (ulpi_node) { - phy_node = of_get_next_available_child(ulpi_node, NULL); - ci->hsic = of_device_is_compatible(phy_node, "qcom,usb-hsic-phy"); diff --git a/qcom-msm89xx-fixes.patch b/qcom-msm89xx-fixes.patch index a3298e432..f7ac2815c 100644 --- a/qcom-msm89xx-fixes.patch +++ b/qcom-msm89xx-fixes.patch @@ -1,81 +1,3 @@ -From 283d0e00a18b294ec56f1fb904896a546704faaf Mon Sep 17 00:00:00 2001 -From: Rob Clark <robdclark@gmail.com> -Date: Fri, 30 Jun 2017 11:47:21 -0400 -Subject: [PATCH 3/6] soc: qcom: smsm: fix of_node refcnting problem - -of_find_node_with_property() drops the reference to the 'from' node, -which eventually (after enough -EPROBE_DEFERs) drops the last reference -to the node causing all sorts of fun problems, and this nice splat. - - BUG: sleeping function called from invalid context at ../kernel/locking/mutex.c:747 - in_atomic(): 1, irqs_disabled(): 128, pid: 33, name: kworker/0:1 - 4 locks held by kworker/0:1/33: - #0: ("events"){.+.+.+}, at: [<ffff0000080fa91c>] process_one_work+0x1a4/0x728 - #1: (deferred_probe_work){+.+.+.}, at: [<ffff0000080fa91c>] process_one_work+0x1a4/0x728 - #2: (&dev->mutex){......}, at: [<ffff000008676078>] __device_attach+0x30/0x168 - #3: (devtree_lock){......}, at: [<ffff000008828fd0>] of_find_node_with_property+0x30/0xe0 - irq event stamp: 18976 - hardirqs last enabled at (18975): [<ffff00000815794c>] __down_trylock_console_sem+0x74/0xb8 - hardirqs last disabled at (18976): [<ffff0000089e26d4>] _raw_spin_lock_irqsave+0x2c/0x78 - softirqs last enabled at (16880): [<ffff0000080e0f00>] __do_softirq+0x580/0x640 - softirqs last disabled at (16871): [<ffff0000080e13a4>] irq_exit+0xe4/0x138 - CPU: 0 PID: 33 Comm: kworker/0:1 Tainted: G E 4.12.0-rc5+ #1455 - Hardware name: qualcomm dragonboard410c/dragonboard410c, BIOS 2017.07-rc1-00234-g22fa70a-dirty 06/26/2017 - Workqueue: events deferred_probe_work_func - Call trace: - [<ffff000008089ee0>] dump_backtrace+0x0/0x230 - [<ffff00000808a134>] show_stack+0x24/0x30 - [<ffff0000084e1944>] dump_stack+0xac/0xe8 - [<ffff00000810d7e0>] ___might_sleep+0x150/0x230 - [<ffff00000810d918>] __might_sleep+0x58/0x90 - [<ffff0000089dde18>] __mutex_lock+0x50/0x870 - [<ffff0000089de674>] mutex_lock_nested+0x3c/0x50 - [<ffff000008388ae0>] kernfs_remove+0x30/0x50 - [<ffff00000838b720>] sysfs_remove_dir+0x58/0x70 - [<ffff0000084e393c>] kobject_del+0x1c/0x58 - [<ffff0000084e374c>] kobject_put+0xb4/0x208 - [<ffff00000882c364>] of_node_put+0x24/0x30 - [<ffff000008829018>] of_find_node_with_property+0x78/0xe0 - [<ffff000000aff5f4>] qcom_smsm_probe+0x194/0x720 [smsm] - [<ffff0000086793b4>] platform_drv_probe+0x74/0x110 - [<ffff0000086765bc>] driver_probe_device+0x2b4/0x420 - [<ffff000008676920>] __device_attach_driver+0xd0/0x150 - [<ffff000008673e78>] bus_for_each_drv+0x68/0xa8 - [<ffff00000867611c>] __device_attach+0xd4/0x168 - [<ffff000008676a1c>] device_initial_probe+0x24/0x30 - [<ffff000008675380>] bus_probe_device+0xa0/0xa8 - [<ffff000008675948>] deferred_probe_work_func+0xb8/0xf8 - [<ffff0000080fa9d4>] process_one_work+0x25c/0x728 - [<ffff0000080faef4>] worker_thread+0x54/0x3d8 - [<ffff0000081031d8>] kthread+0x110/0x140 - [<ffff000008082d90>] ret_from_fork+0x10/0x40 - OF: ERROR: Bad of_node_put() on /smsm - CPU: 0 PID: 33 Comm: kworker/0:1 Tainted: G W E 4.12.0-rc5+ #1455 - Hardware name: qualcomm dragonboard410c/dragonboard410c, BIOS 2017.07-rc1-00234-g22fa70a-dirty 06/26/2017 - Workqueue: events deferred_probe_work_func - -Signed-off-by: Rob Clark <robdclark@gmail.com> ---- - drivers/soc/qcom/smsm.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/drivers/soc/qcom/smsm.c b/drivers/soc/qcom/smsm.c -index d0337b2a71c8..a64ecd597a22 100644 ---- a/drivers/soc/qcom/smsm.c -+++ b/drivers/soc/qcom/smsm.c -@@ -495,7 +495,8 @@ static int qcom_smsm_probe(struct platform_device *pdev) - if (!smsm->hosts) - return -ENOMEM; - -- local_node = of_find_node_with_property(pdev->dev.of_node, "#qcom,smem-state-cells"); -+ local_node = of_find_node_with_property(of_node_get(pdev->dev.of_node), -+ "#qcom,smem-state-cells"); - if (!local_node) { - dev_err(&pdev->dev, "no state entry\n"); - return -EINVAL; --- -2.13.0 - From 40cb129048e5d2456da8d9d6468f292da3071b91 Mon Sep 17 00:00:00 2001 From: Rob Clark <robdclark@gmail.com> Date: Fri, 30 Jun 2017 16:40:23 -0400 @@ -107,84 +29,3 @@ index b1449ad67fc0..22ad37c9808c 100644 -- 2.13.0 - -From ae9b4fa55748cc9ce3c8ac039e46feab7257eff9 Mon Sep 17 00:00:00 2001 -From: Rob Clark <robdclark@gmail.com> -Date: Sun, 2 Jul 2017 09:23:36 -0400 -Subject: [PATCH 5/6] soc: qcom: wcnss_ctrl: add missing MODULE_DEVICE_TABLE() - -This fixes a problem of wifi module not loading on db410c. - -Signed-off-by: Rob Clark <robdclark@gmail.com> -Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> ---- - drivers/soc/qcom/wcnss_ctrl.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/soc/qcom/wcnss_ctrl.c b/drivers/soc/qcom/wcnss_ctrl.c -index b9069184df19..d008e5b82db4 100644 ---- a/drivers/soc/qcom/wcnss_ctrl.c -+++ b/drivers/soc/qcom/wcnss_ctrl.c -@@ -347,6 +347,7 @@ static const struct of_device_id wcnss_ctrl_of_match[] = { - { .compatible = "qcom,wcnss", }, - {} - }; -+MODULE_DEVICE_TABLE(of, wcnss_ctrl_of_match); - - static struct rpmsg_driver wcnss_ctrl_driver = { - .probe = wcnss_ctrl_probe, --- -2.13.0 - -From 173c1207986956ea4c00601a67c952751a1985e6 Mon Sep 17 00:00:00 2001 -From: Peter Robinson <pbrobinson@gmail.com> -Date: Mon, 3 Jul 2017 10:10:21 +0100 -Subject: [PATCH 6/6] wcn36xx: check dma_mapping_error() - -Fixes splat: - - wcn36xx a204000.wcnss:smd-edge:wcnss:wifi: DMA-API: device driver failed to check map error[device address=0x00000000b45ba000] [size=3872 bytes] [mapped as single] - ------------[ cut here ]------------ - WARNING: CPU: 0 PID: 0 at ../lib/dma-debug.c:1167 check_unmap+0x474/0x8d0 - Modules linked in: bnep(E) arc4(E) wcn36xx(E) mac80211(E) btqcomsmd(E) btqca(E) bluetooth(E) cfg80211(E) ecdh_generic(E) rfkill(E) vfat(E) fat(E) wcnss_ctrl qcom_wcnss_pil(E) mdt_loader(E) qcom_common(E) remoteproc(E) crc32_ce(E) virtio_ring(E) snd_soc_lpass_apq8016(E) snd_soc_lpass_cpu(E) virtio(E) snd_soc_lpass_platform(E) leds_gpio(E) snd_soc_hdmi_codec(E) snd_soc_apq8016_sbc(E) snd_soc_msm8916_digital(E) snd_soc_core(E) qcom_spmi_temp_alarm(E) ac97_bus(E) snd_pcm_dmaengine(E) snd_seq(E) snd_seq_device(E) snd_pcm(E) spi_qup(E) nvmem_qfprom(E) snd_timer(E) snd(E) soundcore(E) msm_rng(E) qcom_tsens(E) nvmem_core(E) uas(E) usb_storage(E) dm9601(E) cdc_ether(E) usbnet(E) mii(E) mmc_block(E) sdhci_msm(E) sdhci_pltfm(E) qcom_spmi_vadc(E) qcom_vadc_common(PE) clk_smd_rpm(E) industrialio(E) - qcom_smd_regulator(E) pinctrl_spmi_mpp(E) pinctrl_spmi_gpio(E) rtc_pm8xxx(E) adv7511(E) smd_rpm(E) qcom_spmi_pmic(E) regmap_spmi(E) phy_msm_usb(E) usb3503(E) extcon_usb_gpio(E) ci_hdrc_msm(E) ci_hdrc(E) qcom_hwspinlock(E) udc_core(E) extcon_core(E) ehci_msm(E) i2c_qup(E) sdhci(E) msm(E) mmc_core(E) drm_kms_helper(E) syscopyarea(E) sysfillrect(E) sysimgblt(E) fb_sys_fops(E) spmi_pmic_arb(E) drm(E) spmi(E) qcom_smd(E) rpmsg_core smsm(E) gpio_keys(E) smp2p(E) smem(E) hwspinlock_core(E) sunrpc(E) scsi_transport_iscsi(E) - CPU: 0 PID: 0 Comm: swapper/0 Tainted: P E 4.12.0-rc7+ #1476 - Hardware name: qualcomm dragonboard410c/dragonboard410c, BIOS 2017.07-rc1-00234-g22fa70a-dirty 06/26/2017 - task: ffff000009049780 task.stack: ffff000009030000 - PC is at check_unmap+0x474/0x8d0 - LR is at check_unmap+0x474/0x8d0 - ... - Mapped at: - dma_entry_alloc+0x68/0xa8 - debug_dma_map_page+0x94/0x148 - wcn36xx_dxe_fill_skb.isra.1+0xbc/0xf8 [wcn36xx] - wcn36xx_dxe_init+0x244/0x398 [wcn36xx] - wcn36xx_start+0xf4/0x298 [wcn36xx] - -v2: pbrobinson: add kfree_skb(skb); - -Signed-off-by: Rob Clark <robdclark@gmail.com> -Signed-off-by: Peter Robinson <pbrobinson@gmail.com> ---- - drivers/net/wireless/ath/wcn36xx/dxe.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/drivers/net/wireless/ath/wcn36xx/dxe.c b/drivers/net/wireless/ath/wcn36xx/dxe.c -index 87dfdaf9044c..d5c810a8cc52 100644 ---- a/drivers/net/wireless/ath/wcn36xx/dxe.c -+++ b/drivers/net/wireless/ath/wcn36xx/dxe.c -@@ -289,6 +289,11 @@ static int wcn36xx_dxe_fill_skb(struct device *dev, struct wcn36xx_dxe_ctl *ctl) - skb_tail_pointer(skb), - WCN36XX_PKT_SIZE, - DMA_FROM_DEVICE); -+ if (dma_mapping_error(dev, dxe->dst_addr_l)) { -+ dev_err(dev, "unable to map skb\n"); -+ kfree_skb(skb); -+ return -ENOMEM; -+ } - ctl->skb = skb; - - return 0; --- -2.13.0 - diff --git a/qxl-fixes.patch b/qxl-fixes.patch index 558204ac5..933f27c4a 100644 --- a/qxl-fixes.patch +++ b/qxl-fixes.patch @@ -1,133 +1,201 @@ -From c463b4ad6b2ac5a40c959e6c636eafc7edb1a63b Mon Sep 17 00:00:00 2001 +From 56cbcb6c41932b19ef0d838f1ff25a662a2e403d Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann <kraxel@redhat.com> -Date: Wed, 6 Sep 2017 11:31:51 +0200 -Subject: qxl: fix primary surface handling +Date: Thu, 19 Oct 2017 08:21:49 +0200 +Subject: [PATCH] drm/qxl: replace QXL_INFO with DRM_DEBUG_DRIVER -The atomic conversion of the qxl driver didn't got the primary surface -handling completely right. It works in the common simple cases, but -fails for example when changing the display resolution using xrandr or -in multihead setups. +Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> +Reviewed-by: Dave Airlie <airlied@redhat.com> +Link: http://patchwork.freedesktop.org/patch/msgid/20171019062150.28090-2-kraxel@redhat.com +--- + drivers/gpu/drm/qxl/qxl_cmd.c | 16 +++++++--------- + drivers/gpu/drm/qxl/qxl_drv.h | 26 +------------------------- + drivers/gpu/drm/qxl/qxl_fb.c | 13 +++++-------- + drivers/gpu/drm/qxl/qxl_release.c | 5 ++--- + drivers/gpu/drm/qxl/qxl_ttm.c | 4 ++-- + 5 files changed, 17 insertions(+), 47 deletions(-) -The rules are simple: There is one primary surface. Before defining a -new one you have to destroy the old one. +diff --git a/drivers/gpu/drm/qxl/qxl_cmd.c b/drivers/gpu/drm/qxl/qxl_cmd.c +index 74fc9362ecf9..8ec53d5abd62 100644 +--- a/drivers/gpu/drm/qxl/qxl_cmd.c ++++ b/drivers/gpu/drm/qxl/qxl_cmd.c +@@ -219,7 +219,7 @@ int qxl_garbage_collect(struct qxl_device *qdev) + union qxl_release_info *info; -This patch makes qxl_primary_atomic_update() destroy the primary surface -before defining a new one. It fixes is_primary flag updates. It adds -is_primary checks so we don't try to update the primary surface in case -it already has the state we want it being in. + while (qxl_ring_pop(qdev->release_ring, &id)) { +- QXL_INFO(qdev, "popped %lld\n", id); ++ DRM_DEBUG_DRIVER("popped %lld\n", id); + while (id) { + release = qxl_release_from_id_locked(qdev, id); + if (release == NULL) +@@ -229,8 +229,8 @@ int qxl_garbage_collect(struct qxl_device *qdev) + next_id = info->next; + qxl_release_unmap(qdev, release, info); -Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> ---- - drivers/gpu/drm/qxl/qxl_display.c | 34 +++++++++++++++++++--------------- - 1 file changed, 19 insertions(+), 15 deletions(-) +- QXL_INFO(qdev, "popped %lld, next %lld\n", id, +- next_id); ++ DRM_DEBUG_DRIVER("popped %lld, next %lld\n", id, ++ next_id); -diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c -index 03fe182..7babdd8f 100644 ---- a/drivers/gpu/drm/qxl/qxl_display.c -+++ b/drivers/gpu/drm/qxl/qxl_display.c -@@ -512,23 +512,25 @@ static void qxl_primary_atomic_update(struct drm_plane *plane, - .y2 = qfb->base.height - }; - -- if (!old_state->fb) { -- qxl_io_log(qdev, -- "create primary fb: %dx%d,%d,%d\n", -- bo->surf.width, bo->surf.height, -- bo->surf.stride, bo->surf.format); -+ if (old_state->fb) { -+ qfb_old = to_qxl_framebuffer(old_state->fb); -+ bo_old = gem_to_qxl_bo(qfb_old->obj); -+ } else { -+ bo_old = NULL; -+ } - -- qxl_io_create_primary(qdev, 0, bo); -- bo->is_primary = true; -+ if (bo == bo_old) - return; - -- } else { -- qfb_old = to_qxl_framebuffer(old_state->fb); -- bo_old = gem_to_qxl_bo(qfb_old->obj); -+ if (bo_old && bo_old->is_primary) { -+ qxl_io_destroy_primary(qdev); - bo_old->is_primary = false; + switch (release->type) { + case QXL_RELEASE_DRAWABLE: +@@ -248,7 +248,7 @@ int qxl_garbage_collect(struct qxl_device *qdev) + } } - -- bo->is_primary = true; -+ if (!bo->is_primary) { -+ qxl_io_create_primary(qdev, 0, bo); -+ bo->is_primary = true; -+ } - qxl_draw_dirty_fb(qdev, qfb, bo, 0, 0, &norect, 1, 1); + +- QXL_INFO(qdev, "%s: %d\n", __func__, i); ++ DRM_DEBUG_DRIVER("%d\n", i); + + return i; } - -@@ -537,13 +539,15 @@ static void qxl_primary_atomic_disable(struct drm_plane *plane, +@@ -381,8 +381,7 @@ void qxl_io_create_primary(struct qxl_device *qdev, { - struct qxl_device *qdev = plane->dev->dev_private; - -- if (old_state->fb) -- { struct qxl_framebuffer *qfb = -+ if (old_state->fb) { -+ struct qxl_framebuffer *qfb = - to_qxl_framebuffer(old_state->fb); - struct qxl_bo *bo = gem_to_qxl_bo(qfb->obj); - -- qxl_io_destroy_primary(qdev); -- bo->is_primary = false; -+ if (bo->is_primary) { -+ qxl_io_destroy_primary(qdev); -+ bo->is_primary = false; -+ } - } + struct qxl_surface_create *create; + +- QXL_INFO(qdev, "%s: qdev %p, ram_header %p\n", __func__, qdev, +- qdev->ram_header); ++ DRM_DEBUG_DRIVER("qdev %p, ram_header %p\n", qdev, qdev->ram_header); + create = &qdev->ram_header->create_surface; + create->format = bo->surf.format; + create->width = bo->surf.width; +@@ -390,8 +389,7 @@ void qxl_io_create_primary(struct qxl_device *qdev, + create->stride = bo->surf.stride; + create->mem = qxl_bo_physical_address(qdev, bo, offset); + +- QXL_INFO(qdev, "%s: mem = %llx, from %p\n", __func__, create->mem, +- bo->kptr); ++ DRM_DEBUG_DRIVER("mem = %llx, from %p\n", create->mem, bo->kptr); + + create->flags = QXL_SURF_FLAG_KEEP_DATA; + create->type = QXL_SURF_TYPE_PRIMARY; +@@ -401,7 +399,7 @@ void qxl_io_create_primary(struct qxl_device *qdev, + + void qxl_io_memslot_add(struct qxl_device *qdev, uint8_t id) + { +- QXL_INFO(qdev, "qxl_memslot_add %d\n", id); ++ DRM_DEBUG_DRIVER("qxl_memslot_add %d\n", id); + wait_for_io_cmd(qdev, id, QXL_IO_MEMSLOT_ADD_ASYNC); } - --- -cgit v0.12 -From 05026e6e19b29104ddba4e8979e6c7af17944695 Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann <kraxel@redhat.com> -Date: Fri, 15 Sep 2017 12:46:15 +0200 -Subject: [testing] qxl: fix pinning +diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h +index 3397a1907336..d707b351875c 100644 +--- a/drivers/gpu/drm/qxl/qxl_drv.h ++++ b/drivers/gpu/drm/qxl/qxl_drv.h +@@ -62,33 +62,9 @@ -cleanup_fb() unpins the just activated framebuffer instead of the -old one. Oops. + #define QXL_DEBUGFS_MAX_COMPONENTS 32 -Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> ---- - drivers/gpu/drm/qxl/qxl_display.c | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) +-extern int qxl_log_level; + extern int qxl_num_crtc; + extern int qxl_max_ioctls; -diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c -index 7babdd8f..afc2272 100644 ---- a/drivers/gpu/drm/qxl/qxl_display.c -+++ b/drivers/gpu/drm/qxl/qxl_display.c -@@ -705,14 +705,15 @@ static void qxl_plane_cleanup_fb(struct drm_plane *plane, - struct drm_gem_object *obj; - struct qxl_bo *user_bo; - -- if (!plane->state->fb) { -- /* we never executed prepare_fb, so there's nothing to -+ if (!old_state->fb) { -+ /* -+ * we never executed prepare_fb, so there's nothing to - * unpin. - */ - return; +-enum { +- QXL_INFO_LEVEL = 1, +- QXL_DEBUG_LEVEL = 2, +-}; +- +-#define QXL_INFO(qdev, fmt, ...) do { \ +- if (qxl_log_level >= QXL_INFO_LEVEL) { \ +- qxl_io_log(qdev, fmt, __VA_ARGS__); \ +- } \ +- } while (0) +-#define QXL_DEBUG(qdev, fmt, ...) do { \ +- if (qxl_log_level >= QXL_DEBUG_LEVEL) { \ +- qxl_io_log(qdev, fmt, __VA_ARGS__); \ +- } \ +- } while (0) +-#define QXL_INFO_ONCE(qdev, fmt, ...) do { \ +- static int done; \ +- if (!done) { \ +- done = 1; \ +- QXL_INFO(qdev, fmt, __VA_ARGS__); \ +- } \ +- } while (0) +- + #define DRM_FILE_OFFSET 0x100000000ULL + #define DRM_FILE_PAGE_OFFSET (DRM_FILE_OFFSET >> PAGE_SHIFT) + +@@ -351,7 +327,7 @@ int qxl_check_idle(struct qxl_ring *ring); + static inline void * + qxl_fb_virtual_address(struct qxl_device *qdev, unsigned long physical) + { +- QXL_INFO(qdev, "not implemented (%lu)\n", physical); ++ DRM_DEBUG_DRIVER("not implemented (%lu)\n", physical); + return 0; + } + +diff --git a/drivers/gpu/drm/qxl/qxl_fb.c b/drivers/gpu/drm/qxl/qxl_fb.c +index 844c4a31ca13..23af3e352673 100644 +--- a/drivers/gpu/drm/qxl/qxl_fb.c ++++ b/drivers/gpu/drm/qxl/qxl_fb.c +@@ -240,18 +240,15 @@ static int qxlfb_create(struct qxl_fbdev *qfbdev, + return ret; + + qbo = gem_to_qxl_bo(gobj); +- QXL_INFO(qdev, "%s: %dx%d %d\n", __func__, mode_cmd.width, +- mode_cmd.height, mode_cmd.pitches[0]); ++ DRM_DEBUG_DRIVER("%dx%d %d\n", mode_cmd.width, ++ mode_cmd.height, mode_cmd.pitches[0]); + + shadow = vmalloc(mode_cmd.pitches[0] * mode_cmd.height); + /* TODO: what's the usual response to memory allocation errors? */ + BUG_ON(!shadow); +- QXL_INFO(qdev, +- "surface0 at gpu offset %lld, mmap_offset %lld (virt %p, shadow %p)\n", +- qxl_bo_gpu_offset(qbo), +- qxl_bo_mmap_offset(qbo), +- qbo->kptr, +- shadow); ++ DRM_DEBUG_DRIVER("surface0 at gpu offset %lld, mmap_offset %lld (virt %p, shadow %p)\n", ++ qxl_bo_gpu_offset(qbo), qxl_bo_mmap_offset(qbo), ++ qbo->kptr, shadow); + size = mode_cmd.pitches[0] * mode_cmd.height; + + info = drm_fb_helper_alloc_fbi(&qfbdev->helper); +diff --git a/drivers/gpu/drm/qxl/qxl_release.c b/drivers/gpu/drm/qxl/qxl_release.c +index e6ec845b5be0..a6da6fa6ad58 100644 +--- a/drivers/gpu/drm/qxl/qxl_release.c ++++ b/drivers/gpu/drm/qxl/qxl_release.c +@@ -154,7 +154,7 @@ qxl_release_alloc(struct qxl_device *qdev, int type, + return handle; } - -- obj = to_qxl_framebuffer(plane->state->fb)->obj; -+ obj = to_qxl_framebuffer(old_state->fb)->obj; - user_bo = gem_to_qxl_bo(obj); - qxl_bo_unpin(user_bo); + *ret = release; +- QXL_INFO(qdev, "allocated release %d\n", handle); ++ DRM_DEBUG_DRIVER("allocated release %d\n", handle); + release->id = handle; + return handle; } +@@ -179,8 +179,7 @@ void + qxl_release_free(struct qxl_device *qdev, + struct qxl_release *release) + { +- QXL_INFO(qdev, "release %d, type %d\n", release->id, +- release->type); ++ DRM_DEBUG_DRIVER("release %d, type %d\n", release->id, release->type); + + if (release->surface_release_id) + qxl_surface_id_dealloc(qdev, release->surface_release_id); +diff --git a/drivers/gpu/drm/qxl/qxl_ttm.c b/drivers/gpu/drm/qxl/qxl_ttm.c +index 7ecf8a4b9fe6..ab4823875311 100644 +--- a/drivers/gpu/drm/qxl/qxl_ttm.c ++++ b/drivers/gpu/drm/qxl/qxl_ttm.c +@@ -136,8 +136,8 @@ int qxl_mmap(struct file *filp, struct vm_area_struct *vma) + "filp->private_data->minor->dev->dev_private == NULL\n"); + return -EINVAL; + } +- QXL_INFO(qdev, "%s: filp->private_data = 0x%p, vma->vm_pgoff = %lx\n", +- __func__, filp->private_data, vma->vm_pgoff); ++ DRM_DEBUG_DRIVER("filp->private_data = 0x%p, vma->vm_pgoff = %lx\n", ++ filp->private_data, vma->vm_pgoff); + + r = ttm_bo_mmap(filp, vma, &qdev->mman.bdev); + if (unlikely(r != 0)) -- -cgit v0.12 +2.14.3 -From 7a39a01887acc66d9b318d5e5898cf00d323eb8f Mon Sep 17 00:00:00 2001 +From 62676d10b483a2ff6e8b08c5e7c7d63a831343f5 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann <kraxel@redhat.com> -Date: Wed, 18 Oct 2017 13:18:40 +0200 -Subject: qxl: alloc & use shadow for dumb buffers +Date: Thu, 19 Oct 2017 08:21:50 +0200 +Subject: [PATCH] qxl: alloc & use shadow for dumb buffers This patch changes the way the primary surface is used for dumb framebuffers. Instead of configuring the bo itself as primary surface @@ -148,6 +216,8 @@ case qemu is asked to write out a dump of the guest display (screendump monitor command). Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> +Reviewed-by: Dave Airlie <airlied@redhat.com> +Link: http://patchwork.freedesktop.org/patch/msgid/20171019062150.28090-3-kraxel@redhat.com --- drivers/gpu/drm/qxl/qxl_cmd.c | 6 ++++- drivers/gpu/drm/qxl/qxl_display.c | 49 ++++++++++++++++++++++++++++++++++++--- @@ -156,10 +226,10 @@ Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> 4 files changed, 54 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/qxl/qxl_cmd.c b/drivers/gpu/drm/qxl/qxl_cmd.c -index 74fc936..3eb9208 100644 +index 8ec53d5abd62..c0fb52c6d4ca 100644 --- a/drivers/gpu/drm/qxl/qxl_cmd.c +++ b/drivers/gpu/drm/qxl/qxl_cmd.c -@@ -388,7 +388,11 @@ void qxl_io_create_primary(struct qxl_device *qdev, +@@ -387,7 +387,11 @@ void qxl_io_create_primary(struct qxl_device *qdev, create->width = bo->surf.width; create->height = bo->surf.height; create->stride = bo->surf.stride; @@ -170,10 +240,10 @@ index 74fc936..3eb9208 100644 + create->mem = qxl_bo_physical_address(qdev, bo, offset); + } - QXL_INFO(qdev, "%s: mem = %llx, from %p\n", __func__, create->mem, - bo->kptr); + DRM_DEBUG_DRIVER("mem = %llx, from %p\n", create->mem, bo->kptr); + diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c -index afc2272..da6648e 100644 +index afbf50d0c08f..4756b3c9bf2c 100644 --- a/drivers/gpu/drm/qxl/qxl_display.c +++ b/drivers/gpu/drm/qxl/qxl_display.c @@ -305,7 +305,9 @@ static const struct drm_crtc_funcs qxl_crtc_funcs = { @@ -186,7 +256,7 @@ index afc2272..da6648e 100644 drm_gem_object_unreference_unlocked(qxl_fb->obj); drm_framebuffer_cleanup(fb); kfree(qxl_fb); -@@ -511,6 +513,7 @@ static void qxl_primary_atomic_update(struct drm_plane *plane, +@@ -508,6 +510,7 @@ static void qxl_primary_atomic_update(struct drm_plane *plane, .x2 = qfb->base.width, .y2 = qfb->base.height }; @@ -194,7 +264,7 @@ index afc2272..da6648e 100644 if (old_state->fb) { qfb_old = to_qxl_framebuffer(old_state->fb); -@@ -522,15 +525,23 @@ static void qxl_primary_atomic_update(struct drm_plane *plane, +@@ -519,15 +522,23 @@ static void qxl_primary_atomic_update(struct drm_plane *plane, if (bo == bo_old) return; @@ -220,9 +290,9 @@ index afc2272..da6648e 100644 qxl_draw_dirty_fb(qdev, qfb, bo, 0, 0, &norect, 1, 1); } -@@ -682,8 +693,9 @@ void qxl_cursor_atomic_disable(struct drm_plane *plane, - int qxl_plane_prepare_fb(struct drm_plane *plane, - struct drm_plane_state *new_state) +@@ -679,8 +690,9 @@ static void qxl_cursor_atomic_disable(struct drm_plane *plane, + static int qxl_plane_prepare_fb(struct drm_plane *plane, + struct drm_plane_state *new_state) { + struct qxl_device *qdev = plane->dev->dev_private; struct drm_gem_object *obj; @@ -231,7 +301,7 @@ index afc2272..da6648e 100644 int ret; if (!new_state->fb) -@@ -692,6 +704,32 @@ int qxl_plane_prepare_fb(struct drm_plane *plane, +@@ -689,6 +701,32 @@ static int qxl_plane_prepare_fb(struct drm_plane *plane, obj = to_qxl_framebuffer(new_state->fb)->obj; user_bo = gem_to_qxl_bo(obj); @@ -264,7 +334,7 @@ index afc2272..da6648e 100644 ret = qxl_bo_pin(user_bo, QXL_GEM_DOMAIN_CPU, NULL); if (ret) return ret; -@@ -716,6 +754,11 @@ static void qxl_plane_cleanup_fb(struct drm_plane *plane, +@@ -713,6 +751,11 @@ static void qxl_plane_cleanup_fb(struct drm_plane *plane, obj = to_qxl_framebuffer(old_state->fb)->obj; user_bo = gem_to_qxl_bo(obj); qxl_bo_unpin(user_bo); @@ -277,10 +347,10 @@ index afc2272..da6648e 100644 static const uint32_t qxl_cursor_plane_formats[] = { diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h -index 3591d23..b5e9dc6 100644 +index d707b351875c..08752c0ffb35 100644 --- a/drivers/gpu/drm/qxl/qxl_drv.h +++ b/drivers/gpu/drm/qxl/qxl_drv.h -@@ -112,6 +112,8 @@ struct qxl_bo { +@@ -89,6 +89,8 @@ struct qxl_bo { /* Constant after initialization */ struct drm_gem_object gem_base; bool is_primary; /* is this now a primary surface */ @@ -290,7 +360,7 @@ index 3591d23..b5e9dc6 100644 struct qxl_surface surf; uint32_t surface_id; diff --git a/drivers/gpu/drm/qxl/qxl_dumb.c b/drivers/gpu/drm/qxl/qxl_dumb.c -index 5e65d5d..11085ab 100644 +index 5e65d5d2d937..11085ab01374 100644 --- a/drivers/gpu/drm/qxl/qxl_dumb.c +++ b/drivers/gpu/drm/qxl/qxl_dumb.c @@ -63,6 +63,7 @@ int qxl_mode_dumb_create(struct drm_file *file_priv, @@ -302,5 +372,5 @@ index 5e65d5d..11085ab 100644 args->handle = handle; return 0; -- -2.13.5 +2.14.3 diff --git a/qxl_cursor_fix.patch b/qxl_cursor_fix.patch deleted file mode 100644 index 8d59cb48b..000000000 --- a/qxl_cursor_fix.patch +++ /dev/null @@ -1,565 +0,0 @@ -From fda212272d75dd46a53bdeba9466c6f7db7ee3fa Mon Sep 17 00:00:00 2001 -From: Ray Strode <rstrode@redhat.com> -Date: Fri, 17 Nov 2017 15:08:05 -0500 -Subject: [PATCH 1/2] drm/qxl: unref cursor bo when finished with it - -qxl_cursor_atomic_update allocs a bo for the cursor that -it never frees up at the end of the function. - -This commit fixes that. - -Signed-off-by: Ray Strode <rstrode@redhat.com> ---- - drivers/gpu/drm/qxl/qxl_display.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c -index da6648e75374..dab9f860626f 100644 ---- a/drivers/gpu/drm/qxl/qxl_display.c -+++ b/drivers/gpu/drm/qxl/qxl_display.c -@@ -551,61 +551,61 @@ static void qxl_primary_atomic_disable(struct drm_plane *plane, - struct qxl_device *qdev = plane->dev->dev_private; - - if (old_state->fb) { - struct qxl_framebuffer *qfb = - to_qxl_framebuffer(old_state->fb); - struct qxl_bo *bo = gem_to_qxl_bo(qfb->obj); - - if (bo->is_primary) { - qxl_io_destroy_primary(qdev); - bo->is_primary = false; - } - } - } - - int qxl_plane_atomic_check(struct drm_plane *plane, - struct drm_plane_state *state) - { - return 0; - } - - static void qxl_cursor_atomic_update(struct drm_plane *plane, - struct drm_plane_state *old_state) - { - struct drm_device *dev = plane->dev; - struct qxl_device *qdev = dev->dev_private; - struct drm_framebuffer *fb = plane->state->fb; - struct qxl_release *release; - struct qxl_cursor_cmd *cmd; - struct qxl_cursor *cursor; - struct drm_gem_object *obj; -- struct qxl_bo *cursor_bo, *user_bo = NULL; -+ struct qxl_bo *cursor_bo = NULL, *user_bo = NULL; - int ret; - void *user_ptr; - int size = 64*64*4; - - ret = qxl_alloc_release_reserved(qdev, sizeof(*cmd), - QXL_RELEASE_CURSOR_CMD, - &release, NULL); - if (ret) - return; - - if (fb != old_state->fb) { - obj = to_qxl_framebuffer(fb)->obj; - user_bo = gem_to_qxl_bo(obj); - - /* pinning is done in the prepare/cleanup framevbuffer */ - ret = qxl_bo_kmap(user_bo, &user_ptr); - if (ret) - goto out_free_release; - - ret = qxl_alloc_bo_reserved(qdev, release, - sizeof(struct qxl_cursor) + size, - &cursor_bo); - if (ret) - goto out_kunmap; - - ret = qxl_release_reserve_list(release, true); - if (ret) - goto out_free_bo; - - ret = qxl_bo_kmap(cursor_bo, (void **)&cursor); -@@ -621,60 +621,62 @@ static void qxl_cursor_atomic_update(struct drm_plane *plane, - cursor->data_size = size; - cursor->chunk.next_chunk = 0; - cursor->chunk.prev_chunk = 0; - cursor->chunk.data_size = size; - memcpy(cursor->chunk.data, user_ptr, size); - qxl_bo_kunmap(cursor_bo); - qxl_bo_kunmap(user_bo); - - cmd = (struct qxl_cursor_cmd *) qxl_release_map(qdev, release); - cmd->u.set.visible = 1; - cmd->u.set.shape = qxl_bo_physical_address(qdev, - cursor_bo, 0); - cmd->type = QXL_CURSOR_SET; - } else { - - ret = qxl_release_reserve_list(release, true); - if (ret) - goto out_free_release; - - cmd = (struct qxl_cursor_cmd *) qxl_release_map(qdev, release); - cmd->type = QXL_CURSOR_MOVE; - } - - cmd->u.position.x = plane->state->crtc_x + fb->hot_x; - cmd->u.position.y = plane->state->crtc_y + fb->hot_y; - - qxl_release_unmap(qdev, release, &cmd->release_info); - qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false); - qxl_release_fence_buffer_objects(release); - -+ qxl_bo_unref (&cursor_bo); -+ - return; - - out_backoff: - qxl_release_backoff_reserve_list(release); - out_free_bo: - qxl_bo_unref(&cursor_bo); - out_kunmap: - qxl_bo_kunmap(user_bo); - out_free_release: - qxl_release_free(qdev, release); - return; - - } - - void qxl_cursor_atomic_disable(struct drm_plane *plane, - struct drm_plane_state *old_state) - { - struct qxl_device *qdev = plane->dev->dev_private; - struct qxl_release *release; - struct qxl_cursor_cmd *cmd; - int ret; - - ret = qxl_alloc_release_reserved(qdev, sizeof(*cmd), - QXL_RELEASE_CURSOR_CMD, - &release, NULL); - if (ret) - return; - - ret = qxl_release_reserve_list(release, true); - if (ret) { --- -2.14.3 - - -From c779c917be6cd38a0c39ebb10f75f223efc5ffef Mon Sep 17 00:00:00 2001 -From: Ray Strode <rstrode@redhat.com> -Date: Fri, 17 Nov 2017 14:49:46 -0500 -Subject: [PATCH 2/2] drm/qxl: reapply cursor after resetting primary - -QXL associates mouse state with its primary plane. - -Destroying a primary plane and putting a new one -in place has the side effect of destroying the cursor -as well. - -This commit changes the driver to reapply the cursor -any time a new primary is created. It achieves this -by keeping a reference to the cursor bo on the qxl_crtc -struct. - -This fix is very similar to commit 4532b241a4b which -got implicitly reverted as part of implementing the -atomic modeset feature. - -Signed-off-by: Ray Strode <rstrode@redhat.com> - -https://bugzilla.redhat.com/show_bug.cgi?id=1512097 ---- - drivers/gpu/drm/qxl/qxl_display.c | 59 +++++++++++++++++++++++++++++++++++++++ - drivers/gpu/drm/qxl/qxl_drv.h | 2 ++ - 2 files changed, 61 insertions(+) - -diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c -index dab9f860626f..ef5c3a83130f 100644 ---- a/drivers/gpu/drm/qxl/qxl_display.c -+++ b/drivers/gpu/drm/qxl/qxl_display.c -@@ -262,60 +262,61 @@ static int qxl_add_common_modes(struct drm_connector *connector, - mode = drm_cvt_mode(dev, common_modes[i].w, common_modes[i].h, - 60, false, false, false); - if (common_modes[i].w == pwidth && common_modes[i].h == pheight) - mode->type |= DRM_MODE_TYPE_PREFERRED; - drm_mode_probed_add(connector, mode); - } - return i - 1; - } - - static void qxl_crtc_atomic_flush(struct drm_crtc *crtc, - struct drm_crtc_state *old_crtc_state) - { - struct drm_device *dev = crtc->dev; - struct drm_pending_vblank_event *event; - unsigned long flags; - - if (crtc->state && crtc->state->event) { - event = crtc->state->event; - crtc->state->event = NULL; - - spin_lock_irqsave(&dev->event_lock, flags); - drm_crtc_send_vblank_event(crtc, event); - spin_unlock_irqrestore(&dev->event_lock, flags); - } - } - - static void qxl_crtc_destroy(struct drm_crtc *crtc) - { - struct qxl_crtc *qxl_crtc = to_qxl_crtc(crtc); - -+ qxl_bo_unref(&qxl_crtc->cursor_bo); - drm_crtc_cleanup(crtc); - kfree(qxl_crtc); - } - - static const struct drm_crtc_funcs qxl_crtc_funcs = { - .set_config = drm_atomic_helper_set_config, - .destroy = qxl_crtc_destroy, - .page_flip = drm_atomic_helper_page_flip, - .reset = drm_atomic_helper_crtc_reset, - .atomic_duplicate_state = drm_atomic_helper_crtc_duplicate_state, - .atomic_destroy_state = drm_atomic_helper_crtc_destroy_state, - }; - - void qxl_user_framebuffer_destroy(struct drm_framebuffer *fb) - { - struct qxl_framebuffer *qxl_fb = to_qxl_framebuffer(fb); - struct qxl_bo *bo = gem_to_qxl_bo(qxl_fb->obj); - - WARN_ON(bo->shadow); - drm_gem_object_unreference_unlocked(qxl_fb->obj); - drm_framebuffer_cleanup(fb); - kfree(qxl_fb); - } - - static int qxl_framebuffer_surface_dirty(struct drm_framebuffer *fb, - struct drm_file *file_priv, - unsigned flags, unsigned color, - struct drm_clip_rect *clips, - unsigned num_clips) - { -@@ -471,193 +472,251 @@ static void qxl_crtc_disable(struct drm_crtc *crtc) - static const struct drm_crtc_helper_funcs qxl_crtc_helper_funcs = { - .dpms = qxl_crtc_dpms, - .disable = qxl_crtc_disable, - .mode_fixup = qxl_crtc_mode_fixup, - .mode_set_nofb = qxl_mode_set_nofb, - .commit = qxl_crtc_commit, - .atomic_flush = qxl_crtc_atomic_flush, - }; - - int qxl_primary_atomic_check(struct drm_plane *plane, - struct drm_plane_state *state) - { - struct qxl_device *qdev = plane->dev->dev_private; - struct qxl_framebuffer *qfb; - struct qxl_bo *bo; - - if (!state->crtc || !state->fb) - return 0; - - qfb = to_qxl_framebuffer(state->fb); - bo = gem_to_qxl_bo(qfb->obj); - - if (bo->surf.stride * bo->surf.height > qdev->vram_size) { - DRM_ERROR("Mode doesn't fit in vram size (vgamem)"); - return -EINVAL; - } - - return 0; - } - -+static int qxl_primary_apply_cursor(struct drm_plane *plane) -+{ -+ struct drm_device *dev = plane->dev; -+ struct qxl_device *qdev = dev->dev_private; -+ struct drm_framebuffer *fb = plane->state->fb; -+ struct qxl_crtc *qcrtc = to_qxl_crtc(plane->state->crtc); -+ struct qxl_cursor_cmd *cmd; -+ struct qxl_release *release; -+ int ret = 0; -+ -+ if (!qcrtc->cursor_bo) -+ return 0; -+ -+ ret = qxl_alloc_release_reserved(qdev, sizeof(*cmd), -+ QXL_RELEASE_CURSOR_CMD, -+ &release, NULL); -+ if (ret) -+ return ret; -+ -+ ret = qxl_release_list_add(release, qcrtc->cursor_bo); -+ if (ret) -+ goto out_free_release; -+ -+ ret = qxl_release_reserve_list(release, false); -+ if (ret) -+ goto out_free_release; -+ -+ cmd = (struct qxl_cursor_cmd *)qxl_release_map(qdev, release); -+ cmd->type = QXL_CURSOR_SET; -+ cmd->u.set.position.x = plane->state->crtc_x + fb->hot_x; -+ cmd->u.set.position.y = plane->state->crtc_y + fb->hot_y; -+ -+ cmd->u.set.shape = qxl_bo_physical_address(qdev, qcrtc->cursor_bo, 0); -+ -+ cmd->u.set.visible = 1; -+ qxl_release_unmap(qdev, release, &cmd->release_info); -+ -+ qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false); -+ qxl_release_fence_buffer_objects(release); -+ -+ return ret; -+ -+out_free_release: -+ qxl_release_free(qdev, release); -+ return ret; -+} -+ - static void qxl_primary_atomic_update(struct drm_plane *plane, - struct drm_plane_state *old_state) - { - struct qxl_device *qdev = plane->dev->dev_private; - struct qxl_framebuffer *qfb = - to_qxl_framebuffer(plane->state->fb); - struct qxl_framebuffer *qfb_old; - struct qxl_bo *bo = gem_to_qxl_bo(qfb->obj); - struct qxl_bo *bo_old; - struct drm_clip_rect norect = { - .x1 = 0, - .y1 = 0, - .x2 = qfb->base.width, - .y2 = qfb->base.height - }; -+ int ret; - bool same_shadow = false; - - if (old_state->fb) { - qfb_old = to_qxl_framebuffer(old_state->fb); - bo_old = gem_to_qxl_bo(qfb_old->obj); - } else { - bo_old = NULL; - } - - if (bo == bo_old) - return; - - if (bo_old && bo_old->shadow && bo->shadow && - bo_old->shadow == bo->shadow) { - same_shadow = true; - } - - if (bo_old && bo_old->is_primary) { - if (!same_shadow) - qxl_io_destroy_primary(qdev); - bo_old->is_primary = false; -+ -+ ret = qxl_primary_apply_cursor(plane); -+ if (ret) { -+ DRM_ERROR("could not set cursor after creating primary"); -+ } - } - - if (!bo->is_primary) { - if (!same_shadow) - qxl_io_create_primary(qdev, 0, bo); - bo->is_primary = true; - } - - qxl_draw_dirty_fb(qdev, qfb, bo, 0, 0, &norect, 1, 1); - } - - static void qxl_primary_atomic_disable(struct drm_plane *plane, - struct drm_plane_state *old_state) - { - struct qxl_device *qdev = plane->dev->dev_private; - - if (old_state->fb) { - struct qxl_framebuffer *qfb = - to_qxl_framebuffer(old_state->fb); - struct qxl_bo *bo = gem_to_qxl_bo(qfb->obj); - - if (bo->is_primary) { - qxl_io_destroy_primary(qdev); - bo->is_primary = false; - } - } - } - - int qxl_plane_atomic_check(struct drm_plane *plane, - struct drm_plane_state *state) - { - return 0; - } - - static void qxl_cursor_atomic_update(struct drm_plane *plane, - struct drm_plane_state *old_state) - { - struct drm_device *dev = plane->dev; - struct qxl_device *qdev = dev->dev_private; - struct drm_framebuffer *fb = plane->state->fb; -+ struct qxl_crtc *qcrtc = to_qxl_crtc(plane->state->crtc); - struct qxl_release *release; - struct qxl_cursor_cmd *cmd; - struct qxl_cursor *cursor; - struct drm_gem_object *obj; - struct qxl_bo *cursor_bo = NULL, *user_bo = NULL; - int ret; - void *user_ptr; - int size = 64*64*4; - - ret = qxl_alloc_release_reserved(qdev, sizeof(*cmd), - QXL_RELEASE_CURSOR_CMD, - &release, NULL); - if (ret) - return; - - if (fb != old_state->fb) { - obj = to_qxl_framebuffer(fb)->obj; - user_bo = gem_to_qxl_bo(obj); - - /* pinning is done in the prepare/cleanup framevbuffer */ - ret = qxl_bo_kmap(user_bo, &user_ptr); - if (ret) - goto out_free_release; - - ret = qxl_alloc_bo_reserved(qdev, release, - sizeof(struct qxl_cursor) + size, - &cursor_bo); - if (ret) - goto out_kunmap; - - ret = qxl_release_reserve_list(release, true); - if (ret) - goto out_free_bo; - - ret = qxl_bo_kmap(cursor_bo, (void **)&cursor); - if (ret) - goto out_backoff; - - cursor->header.unique = 0; - cursor->header.type = SPICE_CURSOR_TYPE_ALPHA; - cursor->header.width = 64; - cursor->header.height = 64; - cursor->header.hot_spot_x = fb->hot_x; - cursor->header.hot_spot_y = fb->hot_y; - cursor->data_size = size; - cursor->chunk.next_chunk = 0; - cursor->chunk.prev_chunk = 0; - cursor->chunk.data_size = size; - memcpy(cursor->chunk.data, user_ptr, size); - qxl_bo_kunmap(cursor_bo); - qxl_bo_kunmap(user_bo); - - cmd = (struct qxl_cursor_cmd *) qxl_release_map(qdev, release); - cmd->u.set.visible = 1; - cmd->u.set.shape = qxl_bo_physical_address(qdev, - cursor_bo, 0); - cmd->type = QXL_CURSOR_SET; -+ -+ qxl_bo_unref (&qcrtc->cursor_bo); -+ qcrtc->cursor_bo = cursor_bo; -+ cursor_bo = NULL; - } else { - - ret = qxl_release_reserve_list(release, true); - if (ret) - goto out_free_release; - - cmd = (struct qxl_cursor_cmd *) qxl_release_map(qdev, release); - cmd->type = QXL_CURSOR_MOVE; - } - - cmd->u.position.x = plane->state->crtc_x + fb->hot_x; - cmd->u.position.y = plane->state->crtc_y + fb->hot_y; - - qxl_release_unmap(qdev, release, &cmd->release_info); - qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false); - qxl_release_fence_buffer_objects(release); - - qxl_bo_unref (&cursor_bo); - - return; - - out_backoff: - qxl_release_backoff_reserve_list(release); - out_free_bo: - qxl_bo_unref(&cursor_bo); - out_kunmap: - qxl_bo_kunmap(user_bo); - out_free_release: - qxl_release_free(qdev, release); - return; -diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h -index b5e9dc6eebac..d3e2373ef821 100644 ---- a/drivers/gpu/drm/qxl/qxl_drv.h -+++ b/drivers/gpu/drm/qxl/qxl_drv.h -@@ -107,60 +107,62 @@ struct qxl_bo { - struct ttm_bo_kmap_obj kmap; - unsigned pin_count; - void *kptr; - int type; - - /* Constant after initialization */ - struct drm_gem_object gem_base; - bool is_primary; /* is this now a primary surface */ - bool is_dumb; - struct qxl_bo *shadow; - bool hw_surf_alloc; - struct qxl_surface surf; - uint32_t surface_id; - struct qxl_release *surf_create; - }; - #define gem_to_qxl_bo(gobj) container_of((gobj), struct qxl_bo, gem_base) - #define to_qxl_bo(tobj) container_of((tobj), struct qxl_bo, tbo) - - struct qxl_gem { - struct mutex mutex; - struct list_head objects; - }; - - struct qxl_bo_list { - struct ttm_validate_buffer tv; - }; - - struct qxl_crtc { - struct drm_crtc base; - int index; -+ -+ struct qxl_bo *cursor_bo; - }; - - struct qxl_output { - int index; - struct drm_connector base; - struct drm_encoder enc; - }; - - struct qxl_framebuffer { - struct drm_framebuffer base; - struct drm_gem_object *obj; - }; - - #define to_qxl_crtc(x) container_of(x, struct qxl_crtc, base) - #define drm_connector_to_qxl_output(x) container_of(x, struct qxl_output, base) - #define drm_encoder_to_qxl_output(x) container_of(x, struct qxl_output, enc) - #define to_qxl_framebuffer(x) container_of(x, struct qxl_framebuffer, base) - - struct qxl_mman { - struct ttm_bo_global_ref bo_global_ref; - struct drm_global_reference mem_global_ref; - bool mem_global_referenced; - struct ttm_bo_device bdev; - }; - - struct qxl_mode_info { - bool mode_config_initialized; - - /* pointer to fbdev info structure */ - struct qxl_fbdev *qfbdev; --- -2.14.3 - diff --git a/selinux-Generalize-support-for-NNP-nosuid-SELinux-do.patch b/selinux-Generalize-support-for-NNP-nosuid-SELinux-do.patch deleted file mode 100644 index 797566c8d..000000000 --- a/selinux-Generalize-support-for-NNP-nosuid-SELinux-do.patch +++ /dev/null @@ -1,220 +0,0 @@ -From af63f4193f9fbbbac50fc766417d74735afd87ef Mon Sep 17 00:00:00 2001 -From: Stephen Smalley <sds@tycho.nsa.gov> -Date: Mon, 31 Jul 2017 10:12:46 -0400 -Subject: [PATCH] selinux: Generalize support for NNP/nosuid SELinux domain - transitions - -As systemd ramps up enabling NNP (NoNewPrivileges) for system services, -it is increasingly breaking SELinux domain transitions for those services -and their descendants. systemd enables NNP not only for services whose -unit files explicitly specify NoNewPrivileges=yes but also for services -whose unit files specify any of the following options in combination with -running without CAP_SYS_ADMIN (e.g. specifying User= or a -CapabilityBoundingSet= without CAP_SYS_ADMIN): SystemCallFilter=, -SystemCallArchitectures=, RestrictAddressFamilies=, RestrictNamespaces=, -PrivateDevices=, ProtectKernelTunables=, ProtectKernelModules=, -MemoryDenyWriteExecute=, or RestrictRealtime= as per the systemd.exec(5) -man page. - -The end result is bad for the security of both SELinux-disabled and -SELinux-enabled systems. Packagers have to turn off these -options in the unit files to preserve SELinux domain transitions. For -users who choose to disable SELinux, this means that they miss out on -at least having the systemd-supported protections. For users who keep -SELinux enabled, they may still be missing out on some protections -because it isn't necessarily guaranteed that the SELinux policy for -that service provides the same protections in all cases. - -commit 7b0d0b40cd78 ("selinux: Permit bounded transitions under -NO_NEW_PRIVS or NOSUID.") allowed bounded transitions under NNP in -order to support limited usage for sandboxing programs. However, -defining typebounds for all of the affected service domains -is impractical to implement in policy, since typebounds requires us -to ensure that each domain is allowed everything all of its descendant -domains are allowed, and this has to be repeated for the entire chain -of domain transitions. There is no way to clone all allow rules from -descendants to their ancestors in policy currently, and doing so would -be undesirable even if it were practical, as it requires leaking -permissions to objects and operations into ancestor domains that could -weaken their own security in order to allow them to the descendants -(e.g. if a descendant requires execmem permission, then so do all of -its ancestors; if a descendant requires execute permission to a file, -then so do all of its ancestors; if a descendant requires read to a -symbolic link or temporary file, then so do all of its ancestors...). -SELinux domains are intentionally not hierarchical / bounded in this -manner normally, and making them so would undermine their protections -and least privilege. - -We have long had a similar tension with SELinux transitions and nosuid -mounts, albeit not as severe. Users often have had to choose between -retaining nosuid on a mount and allowing SELinux domain transitions on -files within those mounts. This likewise leads to unfortunate tradeoffs -in security. - -Decouple NNP/nosuid from SELinux transitions, so that we don't have to -make a choice between them. Introduce a nnp_nosuid_transition policy -capability that enables transitions under NNP/nosuid to be based on -a permission (nnp_transition for NNP; nosuid_transition for nosuid) -between the old and new contexts in addition to the current support -for bounded transitions. Domain transitions can then be allowed in -policy without requiring the parent to be a strict superset of all of -its children. - -With this change, systemd unit files can be left unmodified from upstream. -SELinux-disabled and SELinux-enabled users will benefit from retaining any -of the systemd-provided protections. SELinux policy will only need to -be adapted to enable the new policy capability and to allow the -new permissions between domain pairs as appropriate. - -NB: Allowing nnp_transition between two contexts opens up the potential -for the old context to subvert the new context by installing seccomp -filters before the execve. Allowing nosuid_transition between two contexts -opens up the potential for a context transition to occur on a file from -an untrusted filesystem (e.g. removable media or remote filesystem). Use -with care. - -Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov> -Signed-off-by: Paul Moore <paul@paul-moore.com> ---- - security/selinux/hooks.c | 47 +++++++++++++++++++++++++------------ - security/selinux/include/classmap.h | 2 ++ - security/selinux/include/security.h | 2 ++ - security/selinux/ss/services.c | 7 +++++- - 4 files changed, 42 insertions(+), 16 deletions(-) - -diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c -index 00ad46e166f6..04b8e1082c9a 100644 ---- a/security/selinux/hooks.c -+++ b/security/selinux/hooks.c -@@ -2318,6 +2318,7 @@ static int check_nnp_nosuid(const struct linux_binprm *bprm, - int nnp = (bprm->unsafe & LSM_UNSAFE_NO_NEW_PRIVS); - int nosuid = !mnt_may_suid(bprm->file->f_path.mnt); - int rc; -+ u32 av; - - if (!nnp && !nosuid) - return 0; /* neither NNP nor nosuid */ -@@ -2326,24 +2327,40 @@ static int check_nnp_nosuid(const struct linux_binprm *bprm, - return 0; /* No change in credentials */ - - /* -- * The only transitions we permit under NNP or nosuid -- * are transitions to bounded SIDs, i.e. SIDs that are -- * guaranteed to only be allowed a subset of the permissions -- * of the current SID. -+ * If the policy enables the nnp_nosuid_transition policy capability, -+ * then we permit transitions under NNP or nosuid if the -+ * policy allows the corresponding permission between -+ * the old and new contexts. - */ -- rc = security_bounded_transition(old_tsec->sid, new_tsec->sid); -- if (rc) { -- /* -- * On failure, preserve the errno values for NNP vs nosuid. -- * NNP: Operation not permitted for caller. -- * nosuid: Permission denied to file. -- */ -+ if (selinux_policycap_nnp_nosuid_transition) { -+ av = 0; - if (nnp) -- return -EPERM; -- else -- return -EACCES; -+ av |= PROCESS2__NNP_TRANSITION; -+ if (nosuid) -+ av |= PROCESS2__NOSUID_TRANSITION; -+ rc = avc_has_perm(old_tsec->sid, new_tsec->sid, -+ SECCLASS_PROCESS2, av, NULL); -+ if (!rc) -+ return 0; - } -- return 0; -+ -+ /* -+ * We also permit NNP or nosuid transitions to bounded SIDs, -+ * i.e. SIDs that are guaranteed to only be allowed a subset -+ * of the permissions of the current SID. -+ */ -+ rc = security_bounded_transition(old_tsec->sid, new_tsec->sid); -+ if (!rc) -+ return 0; -+ -+ /* -+ * On failure, preserve the errno values for NNP vs nosuid. -+ * NNP: Operation not permitted for caller. -+ * nosuid: Permission denied to file. -+ */ -+ if (nnp) -+ return -EPERM; -+ return -EACCES; - } - - static int selinux_bprm_set_creds(struct linux_binprm *bprm) -diff --git a/security/selinux/include/classmap.h b/security/selinux/include/classmap.h -index b9fe3434b036..35ffb29a69cb 100644 ---- a/security/selinux/include/classmap.h -+++ b/security/selinux/include/classmap.h -@@ -48,6 +48,8 @@ struct security_class_mapping secclass_map[] = { - "setrlimit", "rlimitinh", "dyntransition", "setcurrent", - "execmem", "execstack", "execheap", "setkeycreate", - "setsockcreate", "getrlimit", NULL } }, -+ { "process2", -+ { "nnp_transition", "nosuid_transition", NULL } }, - { "system", - { "ipc_info", "syslog_read", "syslog_mod", - "syslog_console", "module_request", "module_load", NULL } }, -diff --git a/security/selinux/include/security.h b/security/selinux/include/security.h -index e91f08c16c0b..3e323179159a 100644 ---- a/security/selinux/include/security.h -+++ b/security/selinux/include/security.h -@@ -73,6 +73,7 @@ enum { - POLICYDB_CAPABILITY_EXTSOCKCLASS, - POLICYDB_CAPABILITY_ALWAYSNETWORK, - POLICYDB_CAPABILITY_CGROUPSECLABEL, -+ POLICYDB_CAPABILITY_NNP_NOSUID_TRANSITION, - __POLICYDB_CAPABILITY_MAX - }; - #define POLICYDB_CAPABILITY_MAX (__POLICYDB_CAPABILITY_MAX - 1) -@@ -84,6 +85,7 @@ extern int selinux_policycap_openperm; - extern int selinux_policycap_extsockclass; - extern int selinux_policycap_alwaysnetwork; - extern int selinux_policycap_cgroupseclabel; -+extern int selinux_policycap_nnp_nosuid_transition; - - /* - * type_datum properties -diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c -index 2f02fa67ec2e..16c55de21b9f 100644 ---- a/security/selinux/ss/services.c -+++ b/security/selinux/ss/services.c -@@ -76,7 +76,8 @@ char *selinux_policycap_names[__POLICYDB_CAPABILITY_MAX] = { - "open_perms", - "extended_socket_class", - "always_check_network", -- "cgroup_seclabel" -+ "cgroup_seclabel", -+ "nnp_nosuid_transition" - }; - - int selinux_policycap_netpeer; -@@ -84,6 +85,7 @@ int selinux_policycap_openperm; - int selinux_policycap_extsockclass; - int selinux_policycap_alwaysnetwork; - int selinux_policycap_cgroupseclabel; -+int selinux_policycap_nnp_nosuid_transition; - - static DEFINE_RWLOCK(policy_rwlock); - -@@ -2009,6 +2011,9 @@ static void security_load_policycaps(void) - selinux_policycap_cgroupseclabel = - ebitmap_get_bit(&policydb.policycaps, - POLICYDB_CAPABILITY_CGROUPSECLABEL); -+ selinux_policycap_nnp_nosuid_transition = -+ ebitmap_get_bit(&policydb.policycaps, -+ POLICYDB_CAPABILITY_NNP_NOSUID_TRANSITION); - - for (i = 0; i < ARRAY_SIZE(selinux_policycap_names); i++) - pr_info("SELinux: policy capability %s=%d\n", --- -2.14.3 - diff --git a/silence-fbcon-logo.patch b/silence-fbcon-logo.patch index b8f099679..2054b3c6b 100644 --- a/silence-fbcon-logo.patch +++ b/silence-fbcon-logo.patch @@ -6,13 +6,13 @@ Subject: [PATCH] silence fbcon logo Bugzilla: N/A Upstream-status: Fedora mustard --- - drivers/video/console/fbcon.c | 26 +++++++++++++++++++------- + drivers/video/fbdev/core/fbcon.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) -diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c +diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c index afd3301ac40c..2e08ba0ade3e 100644 ---- a/drivers/video/console/fbcon.c -+++ b/drivers/video/console/fbcon.c +--- a/drivers/video/fbdev/core/fbcon.c ++++ b/drivers/video/fbdev/core/fbcon.c @@ -634,13 +634,15 @@ static void fbcon_prepare_logo(struct vc_data *vc, struct fb_info *info, kfree(save); } @@ -36,10 +36,11 @@ index afd3301ac40c..2e08ba0ade3e 100644 } } #endif /* MODULE */ -@@ -3654,6 +3656,16 @@ static void __exit fb_console_exit(void) - - module_exit(fb_console_exit); - +@@ -3671,4 +3671,15 @@ void __exit fb_console_exit(void) + do_unregister_con_driver(&fb_con); + console_unlock(); + } ++ +#else + +static int __init quiet_logo(char *str) @@ -51,8 +52,6 @@ index afd3301ac40c..2e08ba0ade3e 100644 +early_param("quiet", quiet_logo); + #endif - - MODULE_LICENSE("GPL"); -- 2.7.4 @@ -1,3 +1,3 @@ -SHA512 (linux-4.13.tar.xz) = a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2 -SHA512 (perf-man-4.13.tar.gz) = 9bcc2cd8e56ec583ed2d8e0b0c88e7a94035a1915e40b3177bb02d6c0f10ddd4df9b097b1f5af59efc624226b613e240ddba8ddc2156f3682f992d5455fc5c03 -SHA512 (patch-4.13.16.xz) = 6d9e6593477fb7aa663e6b9cdccb1d30df8d3bb3721b93afa9ddefce539d267bee062809dd6c50135ba113cf5220ef4b2799f25eca73c791ff59f4480189d211 +SHA512 (linux-4.14.tar.xz) = 77e43a02d766c3d73b7e25c4aafb2e931d6b16e870510c22cef0cdb05c3acb7952b8908ebad12b10ef982c6efbe286364b1544586e715cf38390e483927904d8 +SHA512 (perf-man-4.14.tar.gz) = 76a9d8adc284cdffd4b3fbb060e7f9a14109267707ce1d03f4c3239cd70d8d164f697da3a0f90a363fbcac42a61d3c378afbcc2a86f112c501b9cb5ce74ef9f8 +SHA512 (patch-4.14.3.xz) = 36a08a4c1c93c4fefb95273f3bfe4cac724d8e7c4f90d6e42a11c3afbbdd35b537f3380985a730c9aca491359f9bbdc4747ac444dd6b2625443c28df285cf74a diff --git a/v3-1-2-Input-synaptics-rmi4---RMI4-can-also-use-SMBUS-version-3.patch b/v3-1-2-Input-synaptics-rmi4---RMI4-can-also-use-SMBUS-version-3.patch deleted file mode 100644 index 5a8825793..000000000 --- a/v3-1-2-Input-synaptics-rmi4---RMI4-can-also-use-SMBUS-version-3.patch +++ /dev/null @@ -1,42 +0,0 @@ -From patchwork Sun Nov 5 17:09:50 2017 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: [v3,1/2] Input: synaptics-rmi4 - RMI4 can also use SMBUS version 3 -From: Yiannis Marangos <yiannis.marangos@gmail.com> -X-Patchwork-Id: 10042385 -Message-Id: <20171105170951.20261-2-yiannis.marangos@gmail.com> -To: linux-input@vger.kernel.org, dmitry.torokhov@gmail.com -Cc: Yiannis Marangos <yiannis.marangos@gmail.com> -Date: Sun, 5 Nov 2017 19:09:50 +0200 - -Some synaptics devices such as LEN0073 use SMBUS version 3. - -Signed-off-by: Yiannis Marangos <yiannis.marangos@gmail.com> -Acked-by: Benjamin Tissoires <benjamion.tissoires@redhat.com> ---- - drivers/input/rmi4/rmi_smbus.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/input/rmi4/rmi_smbus.c b/drivers/input/rmi4/rmi_smbus.c -index 225025a0940c..b6ccf39c6a7b 100644 ---- a/drivers/input/rmi4/rmi_smbus.c -+++ b/drivers/input/rmi4/rmi_smbus.c -@@ -312,7 +312,7 @@ static int rmi_smb_probe(struct i2c_client *client, - rmi_smb->xport.dev = &client->dev; - rmi_smb->xport.pdata = *pdata; - rmi_smb->xport.pdata.irq = client->irq; -- rmi_smb->xport.proto_name = "smb2"; -+ rmi_smb->xport.proto_name = "smb"; - rmi_smb->xport.ops = &rmi_smb_ops; - - smbus_version = rmi_smb_get_version(rmi_smb); -@@ -322,7 +322,7 @@ static int rmi_smb_probe(struct i2c_client *client, - rmi_dbg(RMI_DEBUG_XPORT, &client->dev, "Smbus version is %d", - smbus_version); - -- if (smbus_version != 2) { -+ if (smbus_version != 2 && smbus_version != 3) { - dev_err(&client->dev, "Unrecognized SMB version %d\n", - smbus_version); - return -ENODEV; |