Bumps all over the place. Work of the last weeks.

To much of a hassle to split into seperate commits.
Needed to push as I see my SSD degrading and are afraid of the crash.
This commit is contained in:
j1nx 2024-07-20 13:04:35 +00:00
parent 4d74ba30d6
commit c474d35965
244 changed files with 4828 additions and 929 deletions

@ -1 +1 @@
Subproject commit 12ff415b340d2ff48f6665cc685e67bbd640a4e1
Subproject commit 3d03602f2ea49939a3874d566adb0c16e5fa3fce

View File

@ -302,6 +302,7 @@ menu "Plugins"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-ovos-backend-client/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-ovos-backend-manager/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-ovos-bus-client/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-ovos-gui-plugin-shell-companion/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-ovos-config-assistant/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-ovos-lingua-franca/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/python-ovos-notifications-service/Config.in"

View File

@ -1 +1 @@
mitigations=off snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_compat_alsa=0 dwc_otg.lpm_enable=0 acpi=off cgroup_enable=memory psi=1 usb-storage.quirks=174c:55aa:u,2109:0715:u,152d:0578:u,152d:0579:u,152d:1561:u,174c:0829:u,14b0:0206:u
system_heap.max_order=0 numa=fake=8 numa_policy=interleave iommu_dma_numa_policy=interleave mitigations=off snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_compat_alsa=0 dwc_otg.lpm_enable=0 acpi=off cgroup_enable=memory psi=1 usb-storage.quirks=174c:55aa:u,2109:0715:u,152d:0578:u,152d:0579:u,152d:1561:u,174c:0829:u,14b0:0206:u

View File

@ -1,7 +1,6 @@
set default="0"
set fallback="1"
set timeout="1"
set MACHINE_ID=""
if [ "$MACHINE_ID" == "" ]; then
boot_condition="systemd.condition-first-boot=true"
@ -12,7 +11,7 @@ set menu_color_highlight=white/red
load_env
default_cmdline="rootfstype=squashfs systemd.machine_id=$MACHINE_ID fsck.repair=yes zram.enabled=1 zram.num_devices=3 console=console consoleblank=0 loglevel=0 vt.global_cursor_default=0 logo.nologo systemd.show_status=0 systemd.unified_cgroup_hierarchy=1 cgroup_enable=cpuset cgroup_memory=1 $boot_condition rootwait quiet splash"
default_cmdline="systemd.machine_id=$MACHINE_ID fsck.repair=yes zram.enabled=1 zram.num_devices=3 console=console consoleblank=0 loglevel=0 vt.global_cursor_default=0 logo.nologo systemd.show_status=0 systemd.unified_cgroup_hierarchy=1 cgroup_enable=cpuset cgroup_memory=1 $boot_condition rootwait quiet splash"
file_env -f ($root)/cmdline.txt cmdline
regexp --set 1:boothd (.+),.+ ${root}

View File

@ -42,3 +42,5 @@ CONFIG_HYPERVISOR_GUEST=HYPERVISOR_GUEST
# CONFIG_CDROM is not set
# CONFIG_VIDEO_IRS1125 is not set
# CONFIG_LEDS_TRIGGER_AUDIO is not set
CONFIG_NUMA_EMULATION=y

View File

@ -0,0 +1,779 @@
From d569c8828bbc9ffebbf5825121d70e4f63f11dbb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ma=C3=ADra=20Canal?= <mcanal@igalia.com>
Date: Fri, 17 May 2024 11:40:23 -0300
Subject: [PATCH 1/8] numa: Add simple generic NUMA emulation
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Add some common code for splitting the memory into N emulated NUMA memory
nodes.
Individual architecture can then enable selecting this option and use the
existing numa=fake=<N> kernel argument to enable it.
Memory is always split into equally sized chunks.
Signed-off-by: Maíra Canal <mcanal@igalia.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Co-developed-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: “Rafael J. Wysocki" <rafael@kernel.org>
---
drivers/base/Kconfig | 7 ++++
drivers/base/Makefile | 1 +
drivers/base/arch_numa.c | 6 ++++
drivers/base/numa_emulation.c | 67 +++++++++++++++++++++++++++++++++++
drivers/base/numa_emulation.h | 21 +++++++++++
5 files changed, 102 insertions(+)
create mode 100644 drivers/base/numa_emulation.c
create mode 100644 drivers/base/numa_emulation.h
diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig
index 2b8fd6bb7da0b..1f60cd4dd057d 100644
--- a/drivers/base/Kconfig
+++ b/drivers/base/Kconfig
@@ -230,6 +230,13 @@ config GENERIC_ARCH_NUMA
Enable support for generic NUMA implementation. Currently, RISC-V
and ARM64 use it.
+config GENERIC_ARCH_NUMA_EMULATION
+ bool
+ depends on GENERIC_ARCH_NUMA
+ help
+ Enable NUMA emulation. Note that NUMA emulation will only be used if
+ the machine has no NUMA node.
+
config FW_DEVLINK_SYNC_STATE_TIMEOUT
bool "sync_state() behavior defaults to timeout instead of strict"
help
diff --git a/drivers/base/Makefile b/drivers/base/Makefile
index 3079bfe53d04d..34fcf5bd73702 100644
--- a/drivers/base/Makefile
+++ b/drivers/base/Makefile
@@ -25,6 +25,7 @@ obj-$(CONFIG_DEV_COREDUMP) += devcoredump.o
obj-$(CONFIG_GENERIC_MSI_IRQ) += platform-msi.o
obj-$(CONFIG_GENERIC_ARCH_TOPOLOGY) += arch_topology.o
obj-$(CONFIG_GENERIC_ARCH_NUMA) += arch_numa.o
+obj-$(CONFIG_GENERIC_ARCH_NUMA_EMULATION) += numa_emulation.o
obj-$(CONFIG_ACPI) += physical_location.o
obj-y += test/
diff --git a/drivers/base/arch_numa.c b/drivers/base/arch_numa.c
index 5b59d133b6af4..6ad08f681b3cc 100644
--- a/drivers/base/arch_numa.c
+++ b/drivers/base/arch_numa.c
@@ -15,6 +15,8 @@
#include <asm/sections.h>
+#include "numa_emulation.h"
+
struct pglist_data *node_data[MAX_NUMNODES] __read_mostly;
EXPORT_SYMBOL(node_data);
nodemask_t numa_nodes_parsed __initdata;
@@ -30,6 +32,8 @@ static __init int numa_parse_early_param(char *opt)
return -EINVAL;
if (str_has_prefix(opt, "off"))
numa_off = true;
+ if (str_has_prefix(opt, "fake="))
+ return numa_emu_cmdline(opt + 5);
return 0;
}
@@ -471,6 +475,8 @@ void __init arch_numa_init(void)
return;
if (acpi_disabled && !numa_init(of_numa_init))
return;
+ if (!numa_init(numa_emu_init))
+ return;
}
numa_init(dummy_numa_init);
diff --git a/drivers/base/numa_emulation.c b/drivers/base/numa_emulation.c
new file mode 100644
index 0000000000000..df652fa8351b6
--- /dev/null
+++ b/drivers/base/numa_emulation.c
@@ -0,0 +1,67 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Simple NUMA emulation.
+ *
+ * Copyright © 2024 Raspberry Pi Ltd
+ *
+ * Author: Maíra Canal <mcanal@igalia.com>
+ * Author: Tvrtko Ursulin <tursulin@igalia.com>
+ */
+#include <linux/memblock.h>
+
+#include "numa_emulation.h"
+
+static unsigned int emu_nodes;
+
+int __init numa_emu_cmdline(char *str)
+{
+ int ret;
+
+ ret = kstrtouint(str, 10, &emu_nodes);
+ if (ret)
+ return ret;
+
+ if (emu_nodes > MAX_NUMNODES) {
+ pr_notice("numa=fake=%u too large, reducing to %u\n",
+ emu_nodes, MAX_NUMNODES);
+ emu_nodes = MAX_NUMNODES;
+ }
+
+ return 0;
+}
+
+int __init numa_emu_init(void)
+{
+ phys_addr_t start, end;
+ unsigned long size;
+ unsigned int i;
+ int ret;
+
+ if (!emu_nodes)
+ return -EINVAL;
+
+ start = memblock_start_of_DRAM();
+ end = memblock_end_of_DRAM() - 1;
+
+ size = DIV_ROUND_DOWN_ULL(end - start + 1, emu_nodes);
+ size = PAGE_ALIGN_DOWN(size);
+
+ for (i = 0; i < emu_nodes; i++) {
+ u64 s, e;
+
+ s = start + i * size;
+ e = s + size - 1;
+
+ if (i == (emu_nodes - 1) && e != end)
+ e = end;
+
+ pr_info("Faking a node at [mem %pap-%pap]\n", &s, &e);
+ ret = numa_add_memblk(i, s, e + 1);
+ if (ret) {
+ pr_err("Failed to add fake NUMA node %d!\n", i);
+ break;
+ }
+ }
+
+ return ret;
+}
diff --git a/drivers/base/numa_emulation.h b/drivers/base/numa_emulation.h
new file mode 100644
index 0000000000000..62b38215a2f00
--- /dev/null
+++ b/drivers/base/numa_emulation.h
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * NUMA emulation header
+ *
+ * Copyright © 2024 Raspberry Pi Ltd
+ */
+
+#ifdef CONFIG_GENERIC_ARCH_NUMA_EMULATION
+int numa_emu_cmdline(char *str);
+int __init numa_emu_init(void);
+#else
+static inline int numa_emu_cmdline(char *str)
+{
+ return -EINVAL;
+}
+
+static int __init numa_emu_init(void)
+{
+ return -EOPNOTSUPP;
+}
+#endif /* CONFIG_NUMA_EMU */
From 2cde7ba8bc2b4fd89e4ba4bce990980f6c012509 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ma=C3=ADra=20Canal?= <mcanal@igalia.com>
Date: Fri, 17 May 2024 11:40:34 -0300
Subject: [PATCH 2/8] arm64/numa: Add NUMA emulation for ARM64
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Allow selecting NUMA emulation on arm64.
Signed-off-by: Maíra Canal <mcanal@igalia.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: “Rafael J. Wysocki" <rafael@kernel.org>
---
arch/arm64/Kconfig | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index c9691b0c0f29a..8d63a70f57c77 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -1461,6 +1461,16 @@ config NODES_SHIFT
Specify the maximum number of NUMA Nodes available on the target
system. Increases memory reserved to accommodate various tables.
+config NUMA_EMULATION
+ bool "NUMA emulation"
+ depends on NUMA
+ select GENERIC_ARCH_NUMA_EMULATION
+ help
+ Enable NUMA emulation support. A flat machine will be split into
+ virtual nodes when booted with "numa=fake=N", where N is the number
+ of nodes, the system RAM will be split into N equal chunks, and
+ assigned to each node.
+
source "kernel/Kconfig.hz"
config ARCH_SPARSEMEM_ENABLE
From e7f3f4cd90409d8249913fa7a67f14d71f348dfa Mon Sep 17 00:00:00 2001
From: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Date: Wed, 3 Jul 2024 17:16:15 +0100
Subject: [PATCH 3/8] mm/mempolicy: Rename some functions
Will make the following backported patches a bit easier.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
---
mm/mempolicy.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index e52e3a0b8f2e6..0555c2f2ee032 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -1968,7 +1968,7 @@ unsigned int mempolicy_slab_node(void)
* node in pol->nodes (starting from n=0), wrapping around if n exceeds the
* number of present nodes.
*/
-static unsigned offset_il_node(struct mempolicy *pol, unsigned long n)
+static unsigned interleave_nid(struct mempolicy *pol, unsigned long n)
{
nodemask_t nodemask = pol->nodes;
unsigned int target, nnodes;
@@ -1994,7 +1994,7 @@ static unsigned offset_il_node(struct mempolicy *pol, unsigned long n)
}
/* Determine a node number for interleave */
-static inline unsigned interleave_nid(struct mempolicy *pol,
+static inline unsigned interleave_vma(struct mempolicy *pol,
struct vm_area_struct *vma, unsigned long addr, int shift)
{
if (vma) {
@@ -2010,7 +2010,7 @@ static inline unsigned interleave_nid(struct mempolicy *pol,
BUG_ON(shift < PAGE_SHIFT);
off = vma->vm_pgoff >> (shift - PAGE_SHIFT);
off += (addr - vma->vm_start) >> shift;
- return offset_il_node(pol, off);
+ return interleave_nid(pol, off);
} else
return interleave_nodes(pol);
}
@@ -2042,8 +2042,8 @@ int huge_node(struct vm_area_struct *vma, unsigned long addr, gfp_t gfp_flags,
mode = (*mpol)->mode;
if (unlikely(mode == MPOL_INTERLEAVE)) {
- nid = interleave_nid(*mpol, vma, addr,
- huge_page_shift(hstate_vma(vma)));
+ nid = interleave_vma(*mpol, vma, addr,
+ huge_page_shift(hstate_vma(vma)));
} else {
nid = policy_node(gfp_flags, *mpol, numa_node_id());
if (mode == MPOL_BIND || mode == MPOL_PREFERRED_MANY)
@@ -2196,7 +2196,7 @@ struct folio *vma_alloc_folio(gfp_t gfp, int order, struct vm_area_struct *vma,
struct page *page;
unsigned nid;
- nid = interleave_nid(pol, vma, addr, PAGE_SHIFT + order);
+ nid = interleave_vma(pol, vma, addr, PAGE_SHIFT + order);
mpol_cond_put(pol);
gfp |= __GFP_COMP;
page = alloc_page_interleave(gfp, order, nid);
@@ -2602,7 +2602,7 @@ int mpol_misplaced(struct page *page, struct vm_area_struct *vma, unsigned long
case MPOL_INTERLEAVE:
pgoff = vma->vm_pgoff;
pgoff += (addr - vma->vm_start) >> PAGE_SHIFT;
- polnid = offset_il_node(pol, pgoff);
+ polnid = interleave_nid(pol, pgoff);
break;
case MPOL_PREFERRED:
From 9c182de03088ee46fe49dbe5a1d5cba5ef4b49f5 Mon Sep 17 00:00:00 2001
From: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Date: Wed, 22 May 2024 17:12:16 +0100
Subject: [PATCH 4/8] mm/numa: Allow override of kernel's default NUMA policy
Add numa_policy kernel argument to allow overriding the kernel's default
NUMA policy at boot time.
Syntax identical to what tmpfs accepts as it's mpol argument is accepted.
Some examples:
numa_policy=interleave
numa_policy=interleave=skip-interleave
numa_policy=bind:0-3,5,7,9-15
numa_policy=bind=static:1-2
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
---
mm/mempolicy.c | 49 ++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 42 insertions(+), 7 deletions(-)
diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index 0555c2f2ee032..335d478051713 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -2974,7 +2974,9 @@ void __init numa_policy_init(void)
/* Reset policy of current process to default */
void numa_default_policy(void)
{
- do_set_mempolicy(MPOL_DEFAULT, 0, NULL);
+ struct mempolicy *pol = &default_policy;
+
+ do_set_mempolicy(pol->mode, pol->flags, &pol->nodes);
}
/*
@@ -2992,7 +2994,6 @@ static const char * const policy_modes[] =
};
-#ifdef CONFIG_TMPFS
/**
* mpol_parse_str - parse string to mempolicy, for tmpfs mpol mount option.
* @str: string containing mempolicy to parse
@@ -3005,13 +3006,18 @@ static const char * const policy_modes[] =
*/
int mpol_parse_str(char *str, struct mempolicy **mpol)
{
- struct mempolicy *new = NULL;
+ struct mempolicy *new;
unsigned short mode_flags;
nodemask_t nodes;
char *nodelist = strchr(str, ':');
char *flags = strchr(str, '=');
int err = 1, mode;
+ if (*mpol)
+ new = *mpol;
+ else
+ new = NULL;
+
if (flags)
*flags++ = '\0'; /* terminate mode string */
@@ -3090,9 +3096,16 @@ int mpol_parse_str(char *str, struct mempolicy **mpol)
goto out;
}
- new = mpol_new(mode, mode_flags, &nodes);
- if (IS_ERR(new))
- goto out;
+ if (!new) {
+ new = mpol_new(mode, mode_flags, &nodes);
+ if (IS_ERR(new))
+ goto out;
+ } else {
+ atomic_set(&new->refcnt, 1);
+ new->mode = mode;
+ new->flags = mode_flags;
+ new->home_node = NUMA_NO_NODE;
+ }
/*
* Save nodes for mpol_to_str() to show the tmpfs mount options
@@ -3125,7 +3138,29 @@ int mpol_parse_str(char *str, struct mempolicy **mpol)
*mpol = new;
return err;
}
-#endif /* CONFIG_TMPFS */
+
+static int __init setup_numapolicy(char *str)
+{
+ struct mempolicy pol = { }, *ppol = &pol;
+ char buf[128];
+ int ret;
+
+ if (str)
+ ret = mpol_parse_str(str, &ppol);
+ else
+ ret = -EINVAL;
+
+ if (!ret) {
+ default_policy = pol;
+ mpol_to_str(buf, sizeof(buf), &pol);
+ pr_info("NUMA default policy overridden to '%s'\n", buf);
+ } else {
+ pr_warn("Unable to parse numa_policy=\n");
+ }
+
+ return ret == 0;
+}
+__setup("numa_policy=", setup_numapolicy);
/**
* mpol_to_str - format a mempolicy structure for printing
From 0ca75652ca247ed850f999d70a35b29c3a873062 Mon Sep 17 00:00:00 2001
From: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Date: Tue, 18 Jun 2024 15:48:59 +0100
Subject: [PATCH 5/8] iommu/dma: Add ability to configure NUMA allocation
policy for remapped allocations
Add iommu_dma_numa_policy= kernel parameter which can be used to modify
the NUMA allocation policy of remapped buffer allocations.
Policy is only used for devices which are not associated with a NUMA node.
Syntax identical to what tmpfs accepts as it's mpol argument is accepted.
Some examples:
iommu_dma_numa_policy=interleave
iommu_dma_numa_policy=interleave=skip-interleave
iommu_dma_numa_policy=bind:0-3,5,7,9-15
iommu_dma_numa_policy=bind=static:1-2
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
---
drivers/iommu/dma-iommu.c | 45 +++++++++++++++++++++++++++++++++++++++
include/linux/mempolicy.h | 12 +++++++++++
mm/mempolicy.c | 45 +++++++++++++++++++++++++++++++++++++++
3 files changed, 102 insertions(+)
diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index 2da969fc89900..7f320c1982c07 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -20,6 +20,7 @@
#include <linux/iova.h>
#include <linux/irq.h>
#include <linux/list_sort.h>
+#include <linux/mempolicy.h>
#include <linux/memremap.h>
#include <linux/mm.h>
#include <linux/mutex.h>
@@ -775,11 +776,50 @@ static void __iommu_dma_free_pages(struct page **pages, int count)
kvfree(pages);
}
+static struct mempolicy iommu_dma_mpol = {
+#ifdef CONFIG_NUMA
+ .refcnt = ATOMIC_INIT(1), /* never free it */
+ .mode = MPOL_LOCAL,
+#endif
+};
+
+static int __init setup_numapolicy(char *str)
+{
+ struct mempolicy pol = { }, *ppol = &pol;
+ char buf[128];
+ int ret;
+
+ if (str)
+ ret = mpol_parse_str(str, &ppol);
+ else
+ ret = -EINVAL;
+
+ if (!ret) {
+ iommu_dma_mpol = pol;
+ mpol_to_str(buf, sizeof(buf), &pol);
+ pr_info("DMA IOMMU NUMA default policy overridden to '%s'\n", buf);
+ } else {
+ pr_warn("Unable to parse dma_iommu_numa_policy=\n");
+ }
+
+ return ret == 0;
+}
+__setup("iommu_dma_numa_policy=", setup_numapolicy);
+
static struct page **__iommu_dma_alloc_pages(struct device *dev,
unsigned int count, unsigned long order_mask, gfp_t gfp)
{
struct page **pages;
unsigned int i = 0, nid = dev_to_node(dev);
+#ifdef CONFIG_NUMA
+ const bool use_numa = nid == NUMA_NO_NODE &&
+ iommu_dma_mpol.mode != MPOL_LOCAL;
+#else
+ const bool use_numa = false;
+#endif
+
+ if (use_numa)
+ order_mask = 1;
order_mask &= GENMASK(MAX_ORDER, 0);
if (!order_mask)
@@ -795,6 +835,7 @@ static struct page **__iommu_dma_alloc_pages(struct device *dev,
while (count) {
struct page *page = NULL;
unsigned int order_size;
+ nodemask_t *nodemask;
/*
* Higher-order allocations are a convenience rather
@@ -809,6 +850,10 @@ static struct page **__iommu_dma_alloc_pages(struct device *dev,
order_size = 1U << order;
if (order_mask > order_size)
alloc_flags |= __GFP_NORETRY;
+ if (use_numa)
+ nodemask = numa_policy_nodemask(gfp,
+ &iommu_dma_mpol,
+ i, &nid);
page = alloc_pages_node(nid, alloc_flags, order);
if (!page)
continue;
diff --git a/include/linux/mempolicy.h b/include/linux/mempolicy.h
index d232de7cdc569..23545ec0c64c7 100644
--- a/include/linux/mempolicy.h
+++ b/include/linux/mempolicy.h
@@ -140,6 +140,8 @@ bool vma_policy_mof(struct vm_area_struct *vma);
extern void numa_default_policy(void);
extern void numa_policy_init(void);
+nodemask_t *numa_policy_nodemask(gfp_t gfp, struct mempolicy *pol, pgoff_t ilx,
+ int *nid);
extern void mpol_rebind_task(struct task_struct *tsk, const nodemask_t *new);
extern void mpol_rebind_mm(struct mm_struct *mm, nodemask_t *new);
@@ -234,6 +236,12 @@ static inline void numa_policy_init(void)
{
}
+static inline nodemask_t *
+numa_policy_nodemask(gfp_t gfp, struct mempolicy *pol, pgoff_t ilx, int *nid)
+{
+ return NULL;
+}
+
static inline void numa_default_policy(void)
{
}
@@ -278,6 +286,10 @@ static inline int mpol_parse_str(char *str, struct mempolicy **mpol)
}
#endif
+static inline void mpol_to_str(char *buffer, int maxlen, struct mempolicy *pol)
+{
+}
+
static inline int mpol_misplaced(struct page *page, struct vm_area_struct *vma,
unsigned long address)
{
diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index 335d478051713..461a6512cb9ab 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -124,8 +124,10 @@ enum zone_type policy_zone = 0;
* run-time system-wide default policy => local allocation
*/
static struct mempolicy default_policy = {
+#ifdef CONFIG_NUMA
.refcnt = ATOMIC_INIT(1), /* never free it */
.mode = MPOL_LOCAL,
+#endif
};
static struct mempolicy preferred_node_policy[MAX_NUMNODES];
@@ -300,7 +302,9 @@ static struct mempolicy *mpol_new(unsigned short mode, unsigned short flags,
policy = kmem_cache_alloc(policy_cache, GFP_KERNEL);
if (!policy)
return ERR_PTR(-ENOMEM);
+#ifdef CONFIG_NUMA
atomic_set(&policy->refcnt, 1);
+#endif
policy->mode = mode;
policy->flags = flags;
policy->home_node = NUMA_NO_NODE;
@@ -2015,6 +2019,47 @@ static inline unsigned interleave_vma(struct mempolicy *pol,
return interleave_nodes(pol);
}
+#define NO_INTERLEAVE_INDEX (-1UL) /* use task il_prev for interleaving */
+
+nodemask_t *numa_policy_nodemask(gfp_t gfp, struct mempolicy *pol, pgoff_t ilx,
+ int *nid)
+{
+ nodemask_t *nodemask = NULL;
+
+ switch (pol->mode) {
+ case MPOL_PREFERRED:
+ /* Override input node id */
+ *nid = first_node(pol->nodes);
+ break;
+ case MPOL_PREFERRED_MANY:
+ nodemask = &pol->nodes;
+ if (pol->home_node != NUMA_NO_NODE)
+ *nid = pol->home_node;
+ break;
+ case MPOL_BIND:
+ /* Restrict to nodemask (but not on lower zones) */
+ if (apply_policy_zone(pol, gfp_zone(gfp)) &&
+ cpuset_nodemask_valid_mems_allowed(&pol->nodes))
+ nodemask = &pol->nodes;
+ if (pol->home_node != NUMA_NO_NODE)
+ *nid = pol->home_node;
+ /*
+ * __GFP_THISNODE shouldn't even be used with the bind policy
+ * because we might easily break the expectation to stay on the
+ * requested node and not break the policy.
+ */
+ WARN_ON_ONCE(gfp & __GFP_THISNODE);
+ break;
+ case MPOL_INTERLEAVE:
+ /* Override input node id */
+ *nid = (ilx == NO_INTERLEAVE_INDEX) ?
+ interleave_nodes(pol) : interleave_nid(pol, ilx);
+ break;
+ }
+
+ return nodemask;
+}
+
#ifdef CONFIG_HUGETLBFS
/*
* huge_node(@vma, @addr, @gfp_flags, @mpol)
From 4036deca99c4ee4a4e9da6f3809594da27c8fcf9 Mon Sep 17 00:00:00 2001
From: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Date: Wed, 17 Jul 2024 09:33:21 +0100
Subject: [PATCH 6/8] dma-buf: system_heap: Allow specifying maximum allocation
order
system_heap.max_order=<uint>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
---
drivers/dma-buf/heaps/system_heap.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/dma-buf/heaps/system_heap.c b/drivers/dma-buf/heaps/system_heap.c
index 9076d47ed2ef4..9dc5dfeaca2a7 100644
--- a/drivers/dma-buf/heaps/system_heap.c
+++ b/drivers/dma-buf/heaps/system_heap.c
@@ -54,6 +54,11 @@ static gfp_t order_flags[] = {HIGH_ORDER_GFP, HIGH_ORDER_GFP, LOW_ORDER_GFP};
static const unsigned int orders[] = {8, 4, 0};
#define NUM_ORDERS ARRAY_SIZE(orders)
+static unsigned int module_max_order = orders[0];
+
+module_param_named(max_order, module_max_order, uint, 0400);
+MODULE_PARM_DESC(max_order, "Maximum allocation order override.");
+
static struct sg_table *dup_sg_table(struct sg_table *table)
{
struct sg_table *new_table;
@@ -339,7 +344,7 @@ static struct dma_buf *system_heap_allocate(struct dma_heap *heap,
struct system_heap_buffer *buffer;
DEFINE_DMA_BUF_EXPORT_INFO(exp_info);
unsigned long size_remaining = len;
- unsigned int max_order = orders[0];
+ unsigned int max_order = module_max_order;
struct dma_buf *dmabuf;
struct sg_table *table;
struct scatterlist *sg;
@@ -433,6 +438,9 @@ static int system_heap_create(void)
if (IS_ERR(sys_heap))
return PTR_ERR(sys_heap);
+ if (module_max_order > orders[0])
+ module_max_order = orders[0];
+
return 0;
}
module_init(system_heap_create);
From 2b3cadacd49729991c06a67a6a34ebe092ad2633 Mon Sep 17 00:00:00 2001
From: Dom Cobley <popcornmix@gmail.com>
Date: Tue, 7 May 2024 19:14:56 +0100
Subject: [PATCH 7/8] config: bcm2711_defconfig/bcm2712_defconfig: Enable NUMA
Signed-off-by: Dom Cobley <popcornmix@gmail.com>
---
arch/arm64/configs/bcm2711_defconfig | 2 ++
arch/arm64/configs/bcm2712_defconfig | 2 ++
2 files changed, 4 insertions(+)
diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig
index f2e5dca7866d3..0e06b79151063 100644
--- a/arch/arm64/configs/bcm2711_defconfig
+++ b/arch/arm64/configs/bcm2711_defconfig
@@ -41,6 +41,7 @@ CONFIG_ARCH_BRCMSTB=y
# CONFIG_CAVIUM_ERRATUM_22375 is not set
# CONFIG_CAVIUM_ERRATUM_23154 is not set
# CONFIG_CAVIUM_ERRATUM_27456 is not set
+CONFIG_NUMA=y
CONFIG_COMPAT=y
CONFIG_ARMV8_DEPRECATED=y
CONFIG_SWP_EMULATION=y
@@ -1678,3 +1679,4 @@ CONFIG_SCHED_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
# CONFIG_UPROBE_EVENTS is not set
# CONFIG_STRICT_DEVMEM is not set
+CONFIG_NUMA_EMULATION=y
diff --git a/arch/arm64/configs/bcm2712_defconfig b/arch/arm64/configs/bcm2712_defconfig
index bdaf3190f9b32..c0d19316844ce 100644
--- a/arch/arm64/configs/bcm2712_defconfig
+++ b/arch/arm64/configs/bcm2712_defconfig
@@ -42,6 +42,7 @@ CONFIG_ARCH_BRCMSTB=y
# CONFIG_CAVIUM_ERRATUM_23154 is not set
# CONFIG_CAVIUM_ERRATUM_27456 is not set
CONFIG_ARM64_16K_PAGES=y
+CONFIG_NUMA=y
CONFIG_COMPAT=y
CONFIG_ARMV8_DEPRECATED=y
CONFIG_SWP_EMULATION=y
@@ -1681,3 +1682,4 @@ CONFIG_SCHED_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
# CONFIG_UPROBE_EVENTS is not set
# CONFIG_STRICT_DEVMEM is not set
+CONFIG_NUMA_EMULATION=y
From d162b2d8f1735208639f376c02ef483f20be2728 Mon Sep 17 00:00:00 2001
From: Dom Cobley <popcornmix@gmail.com>
Date: Thu, 18 Jul 2024 20:22:18 +0100
Subject: [PATCH 8/8] dts: Set preferred numa options in bootargs
Signed-off-by: Dom Cobley <popcornmix@gmail.com>
---
arch/arm/boot/dts/broadcom/bcm2711-rpi-4-b.dts | 2 +-
arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm/boot/dts/broadcom/bcm2711-rpi-4-b.dts b/arch/arm/boot/dts/broadcom/bcm2711-rpi-4-b.dts
index d3a3a1e4d4c68..dc0831a4a260e 100644
--- a/arch/arm/boot/dts/broadcom/bcm2711-rpi-4-b.dts
+++ b/arch/arm/boot/dts/broadcom/bcm2711-rpi-4-b.dts
@@ -266,7 +266,7 @@
/ {
chosen {
- bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0";
+ bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0 system_heap.max_order=0 numa=fake=8 numa_policy=interleave iommu_dma_numa_policy=interleave";
};
/delete-node/ wifi-pwrseq;
diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
index 57ee497628646..16a69973ca0ad 100644
--- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
+++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
@@ -430,7 +430,7 @@ dpi_16bit_gpio2: &rp1_dpi_16bit_gpio2 { };
/ {
chosen: chosen {
- bootargs = "reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe";
+ bootargs = "reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe system_heap.max_order=0 numa=fake=8 numa_policy=interleave iommu_dma_numa_policy=interleave";
stdout-path = "serial10:115200n8";
};

BIN
buildroot-external/board/ovos/raspberrypi/rpi4/RPI_EFI.fd Executable file → Normal file

Binary file not shown.

View File

@ -44,14 +44,14 @@ image disk.img {
partition rootfs-1 {
partition-uuid = c0932a41-44cf-463b-8152-d43188553ed4
partition-type-uuid = 0fc63daf-8483-4772-8e79-3d69d8477de4
image = "rootfs.squashfs"
image = "rootfs.erofs"
size = 512M
}
partition rootfs-2 {
partition-uuid = 3adea996-45ad-4928-920e-ffb5aedd00cb
partition-type-uuid = 0fc63daf-8483-4772-8e79-3d69d8477de4
image = "rootfs.squashfs"
image = "rootfs.erofs"
size = 512M
}

View File

@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Busybox version: 1.36.1
# Fri Mar 29 11:40:35 2024
# Fri Jul 19 10:40:11 2024
#
CONFIG_HAVE_DOT_CONFIG=y

View File

@ -30,12 +30,13 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL)/board/ovos/raspberrypi/rpi4"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,e0c78d59082aaadb95fc301af239c991686a1822)/linux-e0c78d59082aaadb95fc301af239c991686a1822.tar.gz"
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,e1c56acf3355cd539447511fdc1b886e5eb5cca3)/linux-e1c56acf3355cd539447511fdc1b886e5eb5cca3.tar.gz"
BR2_LINUX_KERNEL_DEFCONFIG="bcm2711"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL)/kernel/ovos.config $(BR2_EXTERNAL)/kernel/device-drivers.config $(BR2_EXTERNAL)/kernel/docker.config $(BR2_EXTERNAL)/board/ovos/raspberrypi/kernel.config"
BR2_LINUX_KERNEL_LZ4=y
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2711-rpi-4-b broadcom/bcm2711-rpi-400 broadcom/bcm2711-rpi-cm4"
BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT=y
BR2_LINUX_KERNEL_INSTALL_TARGET=y
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
@ -63,21 +64,27 @@ BR2_PACKAGE_FFMPEG_FFPLAY=y
BR2_PACKAGE_FFMPEG_FFPROBE=y
BR2_PACKAGE_FFMPEG_AVRESAMPLE=y
BR2_PACKAGE_FFMPEG_POSTPROC=y
BR2_PACKAGE_FLAC=y
BR2_PACKAGE_GST1_LIBAV=y
BR2_PACKAGE_PIPEWIRE=y
BR2_PACKAGE_PIPEWIRE_COMPRESS_OFFLOAD=y
BR2_PACKAGE_PIPEWIRE_EXAMPLES=y
BR2_PACKAGE_PIPEWIRE_GSTREAMER=y
BR2_PACKAGE_PIPEWIRE_V4L2=y
BR2_PACKAGE_PULSEAUDIO=y
BR2_PACKAGE_TINYCOMPRESS=y
BR2_PACKAGE_SOX=y
BR2_PACKAGE_V4L2GRAB=y
BR2_PACKAGE_V4L2LOOPBACK=y
BR2_PACKAGE_V4L2LOOPBACK_UTILS=y
BR2_PACKAGE_BZIP2=y
BR2_PACKAGE_GZIP=y
BR2_PACKAGE_LZIP=y
BR2_PACKAGE_LZOP=y
BR2_PACKAGE_P7ZIP=y
BR2_PACKAGE_UNRAR=y
BR2_PACKAGE_UNZIP=y
BR2_PACKAGE_ZIP=y
BR2_PACKAGE_ZSTD=y
BR2_PACKAGE_LSOF=y
BR2_PACKAGE_MEMSTAT=y
BR2_PACKAGE_NMON=y
@ -85,6 +92,7 @@ BR2_PACKAGE_BINUTILS=y
BR2_PACKAGE_CHECK=y
BR2_PACKAGE_DIFFUTILS=y
BR2_PACKAGE_FINDUTILS=y
BR2_PACKAGE_GETTEXT=y
BR2_PACKAGE_GIT_CRYPT=y
BR2_PACKAGE_GREP=y
BR2_PACKAGE_JO=y
@ -96,19 +104,15 @@ BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y
BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT=y
BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT=y
BR2_PACKAGE_E2FSPROGS=y
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
BR2_PACKAGE_E2FSPROGS_FUSE2FS=y
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
BR2_PACKAGE_EROFS_UTILS=y
BR2_PACKAGE_EROFS_UTILS_LZ4=y
BR2_PACKAGE_EROFS_UTILS_LZMA=y
BR2_PACKAGE_EROFS_UTILS_EROFSFUSE=y
BR2_PACKAGE_FUSE_OVERLAYFS=y
BR2_PACKAGE_MTD=y
BR2_PACKAGE_NFS_UTILS=y
BR2_PACKAGE_NTFS_3G=y
BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_SQUASHFS_LZ4=y
BR2_PACKAGE_SQUASHFS_LZMA=y
BR2_PACKAGE_SQUASHFS_LZO=y
BR2_PACKAGE_SQUASHFS_XZ=y
BR2_PACKAGE_SQUASHFS_ZSTD=y
BR2_PACKAGE_MESA3D=y
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D=y
BR2_PACKAGE_MESA3D_VULKAN_DRIVER_BROADCOM=y
@ -121,38 +125,40 @@ BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y
BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4_X=y
BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4_CD=y
BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="$(BR2_EXTERNAL)/board/ovos/raspberrypi/rpi4/config.txt"
# BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS is not set
BR2_PACKAGE_AVRDUDE=y
BR2_PACKAGE_CRYPTSETUP=y
BR2_PACKAGE_DBUS_PYTHON=y
BR2_PACKAGE_GPTFDISK=y
BR2_PACKAGE_GPTFDISK_GDISK=y
BR2_PACKAGE_GPTFDISK_SGDISK=y
BR2_PACKAGE_GPTFDISK_CGDISK=y
BR2_PACKAGE_I2C_TOOLS=y
BR2_PACKAGE_PARTED=y
BR2_PACKAGE_RASPI_GPIO=y
BR2_PACKAGE_READ_EDID=y
BR2_PACKAGE_RNG_TOOLS=y
BR2_PACKAGE_SPI_TOOLS=y
BR2_PACKAGE_USB_MODESWITCH_DATA=y
BR2_PACKAGE_LUA=y
BR2_PACKAGE_PYTHON3=y
BR2_PACKAGE_PYTHON3_PY_PYC=y
BR2_PACKAGE_PYTHON_GOBJECT=y
BR2_PACKAGE_PYTHON_PIP=y
BR2_PACKAGE_PYTHON_PODMAN_COMPOSE=y
BR2_PACKAGE_PYTHON_SPIDEV=y
BR2_PACKAGE_ALSA_LIB_PYTHON=y
BR2_PACKAGE_ALSA_PLUGINS=y
BR2_PACKAGE_LIBSAMPLERATE=y
BR2_PACKAGE_LIBSOXR=y
BR2_PACKAGE_LIBVORBIS=y
BR2_PACKAGE_LILV=y
BR2_PACKAGE_OPUS=y
BR2_PACKAGE_PORTAUDIO=y
BR2_PACKAGE_SBC=y
BR2_PACKAGE_SBC_TOOLS=y
BR2_PACKAGE_SPEEXDSP=y
BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING=y
BR2_PACKAGE_LIBARCHIVE=y
BR2_PACKAGE_LIBDEFLATE=y
BR2_PACKAGE_LZ4_PROGS=y
BR2_PACKAGE_CA_CERTIFICATES=y
BR2_PACKAGE_LIBARGON2=y
BR2_PACKAGE_LIBKSBA=y
BR2_PACKAGE_LIBSSH2=y
BR2_PACKAGE_LIBOPENSSL_BIN=y
@ -163,21 +169,13 @@ BR2_PACKAGE_LIBNFS=y
BR2_PACKAGE_LIBSYSFS=y
BR2_PACKAGE_LOCKDEV=y
BR2_PACKAGE_PHYSFS=y
BR2_PACKAGE_FONTCONFIG=y
BR2_PACKAGE_HARFBUZZ=y
BR2_PACKAGE_LIBEXIF=y
BR2_PACKAGE_LIBPNG=y
BR2_PACKAGE_OPENJPEG=y
BR2_PACKAGE_PIXMAN=y
BR2_PACKAGE_TIFF=y
BR2_PACKAGE_WEBP=y
BR2_PACKAGE_WIREPLUMBER=y
BR2_PACKAGE_ZBAR=y
BR2_PACKAGE_LIBGPIOD2=y
BR2_PACKAGE_LIBGPIOD2_TOOLS=y
BR2_PACKAGE_LIBINPUT=y
BR2_PACKAGE_LIBINPUT_PYTHON_TOOLS=y
BR2_PACKAGE_LIBV4L_UTILS=y
BR2_PACKAGE_JSON_GLIB=y
BR2_PACKAGE_LIBFASTJSON=y
BR2_PACKAGE_LIBCAMERA=y
BR2_PACKAGE_LIBCAMERA_V4L2=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_RPI_VC4=y
@ -186,20 +184,16 @@ BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO=y
BR2_PACKAGE_LIBCAMERA_PIPELINE_VIMC=y
BR2_PACKAGE_LIBCURL=y
BR2_PACKAGE_LIBCURL_CURL=y
BR2_PACKAGE_LIBDNET=y
BR2_PACKAGE_LIBNICE=y
BR2_PACKAGE_LIBRSYNC=y
BR2_PACKAGE_LIBSOUP=y
BR2_PACKAGE_LIBSRTP=y
BR2_PACKAGE_LIBURIPARSER=y
BR2_PACKAGE_LIBWEBSOCKETS=y
BR2_PACKAGE_LIBPSL=y
BR2_PACKAGE_SLIRP4NETNS=y
BR2_PACKAGE_ZEROMQ=y
BR2_PACKAGE_ZEROMQ_WEBSOCKET=y
BR2_PACKAGE_JEMALLOC=y
BR2_PACKAGE_LIBCAP_TOOLS=y
BR2_PACKAGE_LIBNPTH=y
BR2_PACKAGE_LIBFRIBIDI=y
BR2_PACKAGE_LIBUNWIND=y
BR2_PACKAGE_LIBUV=y
BR2_PACKAGE_NCURSES_WCHAR=y
BR2_PACKAGE_AARDVARK_DNS=y
BR2_PACKAGE_AVAHI=y
BR2_PACKAGE_AVAHI_DAEMON=y
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
BR2_PACKAGE_AVAHI_DEFAULT_SERVICES=y
BR2_PACKAGE_BLUEZ_TOOLS=y
@ -213,7 +207,6 @@ BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_NFC=y
BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SAP=y
BR2_PACKAGE_BLUEZ5_UTILS_TOOLS_HID2HCI=y
BR2_PACKAGE_CRDA=y
BR2_PACKAGE_DNSMASQ=y
BR2_PACKAGE_IFUPDOWN=y
BR2_PACKAGE_IPROUTE2=y
BR2_PACKAGE_IPUTILS=y
@ -228,10 +221,12 @@ BR2_PACKAGE_OPENSSH=y
# BR2_PACKAGE_OPENSSH_SANDBOX is not set
BR2_PACKAGE_WGET=y
BR2_PACKAGE_WIRELESS_TOOLS=y
BR2_PACKAGE_WIRELESS_TOOLS_LIB=y
BR2_PACKAGE_WPA_SUPPLICANT=y
BR2_PACKAGE_WPA_SUPPLICANT_WEXT=y
BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y
BR2_PACKAGE_WPA_SUPPLICANT_MESH_NETWORKING=y
BR2_PACKAGE_WPA_SUPPLICANT_OVERRIDES=y
BR2_PACKAGE_WPA_SUPPLICANT_AUTOSCAN=y
BR2_PACKAGE_WPA_SUPPLICANT_HOTSPOT=y
BR2_PACKAGE_WPA_SUPPLICANT_DEBUG_SYSLOG=y
@ -253,12 +248,12 @@ BR2_PACKAGE_COREUTILS=y
BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES=y
BR2_PACKAGE_EFIBOOTMGR=y
BR2_PACKAGE_HTOP=y
BR2_PACKAGE_NUMACTL=y
BR2_PACKAGE_PODMAN=y
BR2_PACKAGE_PODMAN_DRIVER_BTRFS=y
BR2_PACKAGE_PODMAN_DRIVER_DEVICEMAPPER=y
BR2_PACKAGE_PODMAN_DRIVER_VFS=y
BR2_PACKAGE_PROCPS_NG=y
BR2_PACKAGE_RSYSLOG=y
BR2_PACKAGE_SHADOW=y
BR2_PACKAGE_SHADOW_SHADOWGRP=y
BR2_PACKAGE_SHADOW_ACCOUNT_TOOLS_SETUID=y
@ -266,11 +261,12 @@ BR2_PACKAGE_SHADOW_SUBORDINATE_IDS=y
BR2_PACKAGE_SWUPDATE=y
BR2_PACKAGE_SWUPDATE_CONFIG="$(BR2_EXTERNAL)/swupdate.config"
BR2_PACKAGE_SWUPDATE_USB=y
BR2_PACKAGE_SYSTEMD_KERNELINSTALL=y
BR2_PACKAGE_SYSTEMD_ANALYZE=y
BR2_PACKAGE_SYSTEMD_BACKLIGHT=y
BR2_PACKAGE_SYSTEMD_BINFMT=y
# BR2_PACKAGE_SYSTEMD_PSTORE is not set
BR2_PACKAGE_SYSTEMD_FIRSTBOOT=y
BR2_PACKAGE_SYSTEMD_HIBERNATE=y
# BR2_PACKAGE_SYSTEMD_HWDB is not set
BR2_PACKAGE_SYSTEMD_LOCALED=y
BR2_PACKAGE_SYSTEMD_LOGIND=y
@ -279,9 +275,6 @@ BR2_PACKAGE_SYSTEMD_OOMD=y
BR2_PACKAGE_SYSTEMD_POLKIT=y
BR2_PACKAGE_SYSTEMD_RANDOMSEED=y
BR2_PACKAGE_SYSTEMD_REPART=y
# BR2_PACKAGE_SYSTEMD_RESOLVED is not set
BR2_PACKAGE_SYSTEMD_RFKILL=y
# BR2_PACKAGE_SYSTEMD_VCONSOLE is not set
BR2_PACKAGE_TAR=y
BR2_PACKAGE_UTIL_LINUX_BINARIES=y
BR2_PACKAGE_UTIL_LINUX_HWCLOCK=y
@ -300,11 +293,15 @@ BR2_PACKAGE_UTIL_LINUX_ZRAMCTL=y
BR2_PACKAGE_LESS=y
BR2_PACKAGE_NANO=y
BR2_PACKAGE_VIM=y
BR2_TARGET_ROOTFS_SQUASHFS=y
BR2_TARGET_ROOTFS_SQUASHFS4_LZO=y
BR2_TARGET_ROOTFS_EROFS=y
BR2_TARGET_ROOTFS_EROFS_LZ4HC_LEVEL=12
BR2_TARGET_ROOTFS_EROFS_DEDUPE=y
BR2_TARGET_ROOTFS_EROFS_FRAGMENTS=y
BR2_TARGET_ROOTFS_EROFS_ZTAILPACKING=y
BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144
# BR2_TARGET_ROOTFS_TAR is not set
BR2_TARGET_GRUB2=y
BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI="boot linux ext2 fat squash4 part_msdos part_gpt normal efi_gop regexp loadenv echo cat test configfile search search_fs_uuid all_video video font gfxmenu gfxterm gzio xzio"
BR2_TARGET_GRUB2_BUILTIN_MODULES_EFI="boot linux ext2 fat erofs part_msdos part_gpt normal efi_gop regexp loadenv echo cat test configfile search search_fs_uuid all_video video font gfxmenu gfxterm gzio xzio lz4_decompress"
BR2_TARGET_GRUB2_INSTALL_TOOLS=y
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_E2FSPROGS=y
@ -315,6 +312,7 @@ BR2_PACKAGE_HOST_PKGCONF=y
BR2_PACKAGE_BTSPEAKER=y
BR2_PACKAGE_HOSTNAME_SERVICE=y
BR2_PACKAGE_NCPAMIXER=y
BR2_PACKAGE_OPENFEC=y
BR2_PACKAGE_OVOS_BUS_SERVER=y
BR2_PACKAGE_OVOS_CONTAINERS=y
BR2_PACKAGE_OVOS_CONTAINERS_ARCH="arm64"
@ -322,12 +320,11 @@ BR2_PACKAGE_OVOS_CONTAINERS_GUI=y
BR2_PACKAGE_OVOS_SPLASH=y
BR2_PACKAGE_RESPEAKER=y
BR2_PACKAGE_RNNNOISE_LADSPA=y
BR2_PACKAGE_ROC_TOOLKIT=y
BR2_PACKAGE_RPI_EEPROM=y
BR2_PACKAGE_SNAPCAST=y
BR2_PACKAGE_SNAPCAST_SERVER=y
BR2_PACKAGE_SPOTIFYD=y
BR2_PACKAGE_USERLAND_TOOLS=y
BR2_PACKAGE_VOCALFUSION=y
BR2_PACKAGE_PYTHON_ADAFRUIT_BLINKA=y
BR2_PACKAGE_PYTHON_SMBUS2=y
BR2_PACKAGE_PYTHON_OVOS_GUI=y
BR2_PACKAGE_PYTHON_OVOS_BACKEND_CLIENT=y
BR2_PACKAGE_PYTHON_OVOS_GUI_PLUGIN_SHELL_COMPANION=y

View File

@ -38,27 +38,15 @@ CONFIG_MISC_FILESYSTEMS=y
CONFIG_BLOCK=y
CONFIG_EXFAT_FS=m
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
CONFIG_EROFS_FS=y
CONFIG_EROFS_FS_ZIP=y
CONFIG_EROFS_FS_ZIP_LZMA=y
CONFIG_EROFS_FS_ZIP_DEFLATE=y
CONFIG_EROFS_FS_PCPU_KTHREAD=y
CONFIG_EROFS_FS_PCPU_KTHREAD_HIPRI=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_SQUASHFS=y
# CONFIG_SQUASHFS_FILE_CACHE is not set
CONFIG_SQUASHFS_FILE_DIRECT=y
CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
# CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set
# CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE is not set
# CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI is not set
CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZSTD=y
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
# CONFIG_SQUASHFS_EMBEDDED is not set
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
CONFIG_BTRFS_FS=m
CONFIG_OVERLAY_FS=y
CONFIG_TMPFS=y

View File

@ -19,12 +19,9 @@ OVOS_CONTAINERS_IMAGES = ovos-phal \
ovos-cli
ifeq ($(BR2_PACKAGE_OVOS_CONTAINERS_GUI),y)
OVOS_CONTAINERS_IMAGES += ovos-gui-websocket \
ovos-gui-shell
OVOS_CONTAINERS_IMAGES += ovos-gui-shell
define OVOS_CONTAINERS_INSTALL_GUI_SERVICES
$(INSTALL) -D -m 644 $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/ovos-containers/ovos_gui_websocket.container \
$(TARGET_DIR)/home/ovos/.config/containers/systemd/ovos_gui_websocket.container
$(INSTALL) -D -m 644 $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/ovos-containers/ovos_gui.container \
$(TARGET_DIR)/home/ovos/.config/containers/systemd/ovos_gui.container

View File

@ -1,2 +1,2 @@
# md5, sha256 from https://pypi.org/pypi/combo_lock/json
sha256 fd72d49146280ab612679a59b333b68c0b010253e2bf8fdbabda9cb790d60ec8 combo_lock-0.2.5.tar.gz
sha256 3f1ffee954f71e44cfc6c6dff56054452ad9ab6c6ff922f0de2577e8ecc283eb combo_lock-0.2.6.tar.gz

View File

@ -4,9 +4,9 @@
#
################################################################################
PYTHON_COMBO_LOCK_VERSION = 0.2.5
PYTHON_COMBO_LOCK_VERSION = 0.2.6
PYTHON_COMBO_LOCK_SOURCE = combo_lock-$(PYTHON_COMBO_LOCK_VERSION).tar.gz
PYTHON_COMBO_LOCK_SITE = https://files.pythonhosted.org/packages/1a/7d/22bc221fd33a0f72c84ff8c6f6b5f06533825c058fe29a57d12467344cb3
PYTHON_COMBO_LOCK_SITE = https://files.pythonhosted.org/packages/47/79/83e327fc03dd89c7b954eb290d89e9dc639ea3f4d1939139d1cccc452b22
PYTHON_COMBO_LOCK_SETUP_TYPE = setuptools
PYTHON_COMBO_LOCK_LICENSE = apache-2.0

View File

@ -1,2 +1,2 @@
# sha256 from https://pypi.org/pypi/importlib-metadata/json
sha256 92501cdf9cc66ebd3e612f1b4f0c0765dfa42f0fa38ffb319b6bd84dd675d705 importlib_metadata-6.6.0.tar.gz
sha256 b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2 importlib_metadata-7.1.0.tar.gz

View File

@ -4,9 +4,9 @@
#
################################################################################
PYTHON_IMPORTLIB_METADATA_VERSION = 6.6.0
PYTHON_IMPORTLIB_METADATA_VERSION = 7.1.0
PYTHON_IMPORTLIB_METADATA_SOURCE = importlib_metadata-$(PYTHON_IMPORTLIB_METADATA_VERSION).tar.gz
PYTHON_IMPORTLIB_METADATA_SITE = https://files.pythonhosted.org/packages/0b/1f/9de392c2b939384e08812ef93adf37684ec170b5b6e7ea302d9f163c2ea0
PYTHON_IMPORTLIB_METADATA_SITE = https://files.pythonhosted.org/packages/a0/fc/c4e6078d21fc4fa56300a241b87eae76766aa380a23fc450fc85bb7bf547
PYTHON_IMPORTLIB_METADATA_SETUP_TYPE = setuptools
$(eval $(python-package))

View File

@ -1,5 +1,9 @@
config BR2_PACKAGE_PYTHON_OVOS_BACKEND_CLIENT
bool "python-ovos-backend-client"
select BR2_PACKAGE_PYTHON_OVOS_UTILS
select BR2_PACKAGE_PYTHON_OVOS_CONFIG
select BR2_PACKAGE_PYTHON_JSON_DATABASE
select BR2_PACKAGE_PYTHON_OAUTHLIB
help
Unofficial python api for interaction with
https://api.mycroft.ai , also compatible with

View File

@ -1 +1 @@
sha256 dedf51d425346eb650f070da7416e66f67bae6c4a4048fe56e4e409f87cbc553 python-ovos-backend-client-1a746cee2fca3051415b51460a8a8f6897ee61da.tar.gz
sha256 c9430399fc4dc573fb61373b322fbb2528fa95081758ef2c9173f38edfd7d294 python-ovos-backend-client-c10cc52430dbaa57d50121e2e120b5e39e8ccad1.tar.gz

View File

@ -4,7 +4,7 @@
#
################################################################################
PYTHON_OVOS_BACKEND_CLIENT_VERSION = 1a746cee2fca3051415b51460a8a8f6897ee61da
PYTHON_OVOS_BACKEND_CLIENT_VERSION = c10cc52430dbaa57d50121e2e120b5e39e8ccad1
PYTHON_OVOS_BACKEND_CLIENT_SITE = $(call github,OpenVoiceOS,ovos-backend-client,$(PYTHON_OVOS_BACKEND_CLIENT_VERSION))
PYTHON_OVOS_BACKEND_CLIENT_SETUP_TYPE = setuptools
PYTHON_OVOS_BACKEND_CLIENT_LICENSE_FILES = LICENSE

View File

@ -1,22 +0,0 @@
From 1e6814f08646bf3191b26f208b017ca760be7f0f Mon Sep 17 00:00:00 2001
From: j1nx <p.steenbergen@j1nx.nl>
Date: Sun, 7 May 2023 17:24:10 +0200
Subject: [PATCH 1/1] Loosen requirements
---
requirements.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/requirements.txt b/requirements.txt
index 6982818..09b7e69 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
ovos-config >= 0.0.8, < 0.1.0
ovos-utils >= 0.0.32, < 0.1.0
websocket-client>=0.54.0
-pyee>=8.1.0, < 9.0.0
+pyee>=8.1.0
--
2.34.1

View File

@ -1,2 +1,2 @@
# Locally computed sha256 checksums
sha256 6be39206814b1ce4061067aced354b304db2b32cbeaa0b00b7ae8143cac8de7e python-ovos-bus-client-94fbd69ff165ddcd645f02dd28cdd05cb4326bf8.tar.gz
sha256 40f18feb6ce2e98630485df7b20a08c4bfcdf28522e33e1cddcc70ae09d185b6 ovos-bus-client-0.0.9a22.tar.gz

View File

@ -4,8 +4,9 @@
#
################################################################################
PYTHON_OVOS_BUS_CLIENT_VERSION = 94fbd69ff165ddcd645f02dd28cdd05cb4326bf8
PYTHON_OVOS_BUS_CLIENT_SITE = $(call github,OpenVoiceOS,ovos-bus-client,$(PYTHON_OVOS_BUS_CLIENT_VERSION))
PYTHON_OVOS_BUS_CLIENT_VERSION = 0.0.9a22
PYTHON_OVOS_BUS_CLIENT_SOURCE = ovos-bus-client-$(PYTHON_OVOS_BUS_CLIENT_VERSION).tar.gz
PYTHON_OVOS_BUS_CLIENT_SITE = https://files.pythonhosted.org/packages/17/ca/64632caeffa51781822422bb5c0bcede075e5d8958dfb2fb3d490cf89376
PYTHON_OVOS_BUS_CLIENT_SETUP_TYPE = setuptools
PYTHON_OVOS_BUS_CLIENT_LICENSE = Apache-2.0
PYTHON_OVOS_BUS_CLIENT_LICENSE_FILES = LICENSE

View File

@ -1 +1 @@
sha256 026a937926474354dd9b4168e674c15edd3f4c3c25aed46a30b005fa0dca182e python-ovos-config-de57ca2f69fc0b4b95b56f2f486ce75cdd0a421e.tar.gz
sha256 8d02876632b99d4b5db25c8771bab1c4d8f6cfe4fdb21c7bee174dd5475b6f27 python-ovos-config-53597873e570cd26c9cd9c52b99404e9c3383fd3.tar.gz

View File

@ -4,7 +4,7 @@
#
################################################################################
PYTHON_OVOS_CONFIG_VERSION = de57ca2f69fc0b4b95b56f2f486ce75cdd0a421e
PYTHON_OVOS_CONFIG_VERSION = 53597873e570cd26c9cd9c52b99404e9c3383fd3
PYTHON_OVOS_CONFIG_SITE = $(call github,OpenVoiceOS,ovos-config,$(PYTHON_OVOS_CONFIG_VERSION))
PYTHON_OVOS_CONFIG_SETUP_TYPE = setuptools
PYTHON_OVOS_CONFIG_LICENSE_FILES = LICENSE

View File

@ -0,0 +1,15 @@
config BR2_PACKAGE_PYTHON_OVOS_GUI_PLUGIN_SHELL_COMPANION
bool "python-ovos-gui-plugin-shell-companion"
select BR2_PACKAGE_PYTHON_OVOS_PLUGIN_MANAGER
select BR2_PACKAGE_PYTHON_OVOS_UTILS
select BR2_PACKAGE_PYTHON_OVOS_CONFIG
select BR2_PACKAGE_PYTHON_ASTRAL
help
provides various bus APIs that integrate with
ovos-shell.
- color scheme manager
- notifications widgets
- configuration provider (settings UI)
- brightness control (night mode etc)
https://github.com/OpenVoiceOS/ovos-gui-plugin-shell-companion

View File

@ -0,0 +1,2 @@
#sha256 8c240d1e0b2f09701eb223005fab6a286eb5d910e925656f7d883f75f014f41b ovos-gui-plugin-shell-companion-0.0.1a6.tar.gz
sha256 b1263fd03371a4cbdbb306ba50247a98995e27e3c8d97fac50f2c46612239e2a python-ovos-gui-plugin-shell-companion-0.0.1a6.tar.gz

View File

@ -0,0 +1,15 @@
################################################################################
#
# python-ovos-gui-plugin-shell-companion
#
################################################################################
PYTHON_OVOS_GUI_PLUGIN_SHELL_COMPANION_VERSION = 0.0.1a6
#PYTHON_OVOS_GUI_PLUGIN_SHELL_COMPANION_SOURCE = ovos-gui-plugin-shell-companion-$(PYTHON_OVOS_GUI_PLUGIN_SHELL_COMPANION_VERSION).tar.gz
#PYTHON_OVOS_GUI_PLUGIN_SHELL_COMPANION_SITE = https://files.pythonhosted.org/packages/cb/17/c0706995c8a0a30e4648c96d088159bbec94b1e9da39011295f0e52d6a9c
PYTHON_OVOS_GUI_PLUGIN_SHELL_COMPANION_SITE = $(call github,OpenVoiceOS,ovos-gui-plugin-shell-companion,$(PYTHON_OVOS_GUI_PLUGIN_SHELL_COMPANION_VERSION))
PYTHON_OVOS_GUI_PLUGIN_SHELL_COMPANION_SETUP_TYPE = setuptools
PYTHON_OVOS_GUI_PLUGIN_SHELL_COMPANION_LICENSE_FILES = LICENSE
PYTHON_OVOS_GUI_ENV = MYCROFT_LOOSE_REQUIREMENTS=true
$(eval $(python-package))

View File

@ -1,5 +1,10 @@
config BR2_PACKAGE_PYTHON_OVOS_GUI
bool "python-ovos-gui"
select BR2_PACKAGE_PYTHON_OVOS_BUS_CLIENT
select BR2_PACKAGE_PYTHON_OVOS_UTILS
select BR2_PACKAGE_PYTHON_OVOS_CONFIG
select BR2_PACKAGE_PYTHON_TORNADO
select BR2_PACKAGE_PYTHON_OVOS_PLUGIN_MANAGER
help
GUI messagebus service, manages GUI state
and implements the gui protocol

View File

@ -1 +1 @@
sha256 09488c55a2617bf3d2807a84c4f2a8f636ce1b8a547a0ce5c685bba3f8742e96 python-ovos-gui-502dec01d0055c54998280ffaa76d5f54961173f.tar.gz
sha256 5bb3329c701864f1927e18aa7c7754f546703476b04a8d56419602769a9b5c6e ovos-gui-0.1.0a2.tar.gz

View File

@ -4,8 +4,9 @@
#
################################################################################
PYTHON_OVOS_GUI_VERSION = 502dec01d0055c54998280ffaa76d5f54961173f
PYTHON_OVOS_GUI_SITE = $(call github,OpenVoiceOS,ovos-gui,$(PYTHON_OVOS_GUI_VERSION))
PYTHON_OVOS_GUI_VERSION = 0.1.0a2
PYTHON_OVOS_GUI_SOURCE = ovos-gui-$(PYTHON_OVOS_GUI_VERSION).tar.gz
PYTHON_OVOS_GUI_SITE = https://files.pythonhosted.org/packages/99/13/1dcfeb2a0a4f164d8f0467f0032dfc552b1f839da41998d7ab933af3ca3d
PYTHON_OVOS_GUI_SETUP_TYPE = setuptools
PYTHON_OVOS_GUI_LICENSE_FILES = LICENSE
PYTHON_OVOS_GUI_ENV = MYCROFT_LOOSE_REQUIREMENTS=true

View File

@ -1,5 +1,14 @@
config BR2_PACKAGE_PYTHON_OVOS_PLUGIN_MANAGER
bool "python-ovos-plugin-manager"
select BR2_PACKAGE_PYTHON_OVOS_UTILS
select BR2_PACKAGE_PYTHON_OVOS_BUS_CLIENT
select BR2_PACKAGE_PYTHON_OVOS_CONFIG
select BR2_PACKAGE_PYTHON_COMBO_LOCK
select BR2_PACKAGE_PYTHON_REQUESTS
select BR2_PACKAGE_PYTHON_QUEBRA_FRASES
select BR2_PACKAGE_PYTHON_LANGCODES
select BR2_PACKAGE_PYTHON_IMPORTLIB_METADATA
select BR2_PACKAGE_PYTHON_SETUPTOOLS
help
OPM can be used to search, install, load
and create plugins for the OpenVoiceOS ecosystem!

View File

@ -1 +1 @@
sha256 2642bdde9eff11333d60c8097ced046e4d5c16121e60ffff92adc9ac26995f96 python-ovos-plugin-manager-7eba4f0911e68aed315ec9029727ac052d363b95.tar.gz
sha256 22df0d387b80a0bfd294dcfbe8f54c73ef5d74b7067ef1580b8a4778fdce3e71 python-ovos-plugin-manager-9857a3ef5d2b348b2276fbf5821bea71b6678cfa.tar.gz

View File

@ -4,7 +4,7 @@
#
################################################################################
PYTHON_OVOS_PLUGIN_MANAGER_VERSION = 7eba4f0911e68aed315ec9029727ac052d363b95
PYTHON_OVOS_PLUGIN_MANAGER_VERSION = 9857a3ef5d2b348b2276fbf5821bea71b6678cfa
PYTHON_OVOS_PLUGIN_MANAGER_SITE = $(call github,OpenVoiceOS,ovos-plugin-manager,$(PYTHON_OVOS_PLUGIN_MANAGER_VERSION))
PYTHON_OVOS_PLUGIN_MANAGER_SETUP_TYPE = setuptools
PYTHON_OVOS_PLUGIN_MANAGER_LICENSE_FILES = LICENSE

View File

@ -1 +1 @@
sha256 8c3ea3d7f1fe1c54bd070a71b59f7ef0ff8ba62879f0da4d26dc7422bb65faf3 python-ovos-utils-5e43850e138150247da5d151ed4bd2e65a6bb455.tar.gz
sha256 1205ac8ebc3459ca355b4657870dec3918d532e74f9e24413d597393447ab853 ovos_utils-0.1.0a24.tar.gz

View File

@ -4,8 +4,9 @@
#
################################################################################
PYTHON_OVOS_UTILS_VERSION = 5e43850e138150247da5d151ed4bd2e65a6bb455
PYTHON_OVOS_UTILS_SITE = $(call github,OpenVoiceOS,ovos_utils,$(PYTHON_OVOS_UTILS_VERSION))
PYTHON_OVOS_UTILS_VERSION = 0.1.0a24
PYTHON_OVOS_UTILS_SOURCE = ovos_utils-$(PYTHON_OVOS_UTILS_VERSION).tar.gz
PYTHON_OVOS_UTILS_SITE = https://files.pythonhosted.org/packages/2a/fb/ad024a77ad33941b5a51d1e073710d4d458faea21521612a3e45545c5b19
PYTHON_OVOS_UTILS_SETUP_TYPE = setuptools
PYTHON_OVOS_UTILS_LICENSE_FILES = LICENSE
PYTHON_OVOS_UTILS_ENV = MYCROFT_LOOSE_REQUIREMENTS=true

View File

@ -3,16 +3,16 @@
# rpi-eeprom
#
#############################################################
RPI_EEPROM_VERSION = 61023cbd32725a07e094f9b2d01df302f4ddabba
RPI_EEPROM_VERSION = e430a41e7323a1e28fb42b53cf79e5ba9b5ee975
RPI_EEPROM_SITE = $(call github,raspberrypi,rpi-eeprom,$(RPI_EEPROM_VERSION))
RPI_EEPROM_LICENSE = BSD-3-Clause
RPI_EEPROM_LICENSE_FILES = LICENSE
RPI_EEPROM_INSTALL_IMAGES = YES
ifeq ($(BR2_PACKAGE_RPI_EEPROM_RPI4),y)
RPI_EEPROM_FIRMWARE_PATH = firmware-2711/stable/pieeprom-2024-01-22.bin
RPI_EEPROM_FIRMWARE_PATH = firmware-2711/stable/pieeprom-2024-05-17.bin
else ifeq ($(BR2_PACKAGE_RPI_EEPROM_RPI5),y) # Raspberry Pi 5
RPI_EEPROM_FIRMWARE_PATH = firmware-2712/stable/pieeprom-2024-04-05.bin
RPI_EEPROM_FIRMWARE_PATH = firmware-2712/stable/pieeprom-2024-06-05.bin
endif
define RPI_EEPROM_BUILD_CMDS

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
From 64fda55272af2f6281bb12f2b2add77d95c1ca18 Mon Sep 17 00:00:00 2001
From a5ad40efc5cd4e88be94245306fc5b98de6258f8 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <peterz@infradead.org>
Date: Fri, 8 Sep 2023 18:22:48 +0200
Subject: [PATCH 001/196] sched: Constrain locks in sched_submit_work()
Subject: [PATCH 001/198] sched: Constrain locks in sched_submit_work()
Even though sched_submit_work() is ran from preemptible context,
it is discouraged to have it use blocking locks due to the recursion
@ -18,7 +18,7 @@ Link: https://lkml.kernel.org/r/20230908162254.999499-2-bigeasy@linutronix.de
1 file changed, 9 insertions(+)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 1f91e2c12731..73949b8a55d2 100644
index dcb30e304871..ca7a390b9f62 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -6721,11 +6721,18 @@ void __noreturn do_task_dead(void)
@ -50,5 +50,5 @@ index 1f91e2c12731..73949b8a55d2 100644
static void sched_update_worker(struct task_struct *tsk)
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 5c3a150e1c7cb9488ad89b655bfd9fc460e2a2f9 Mon Sep 17 00:00:00 2001
From fd6a359a99008634115a4b429a543718e68ff5c4 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 8 Sep 2023 18:22:49 +0200
Subject: [PATCH 002/196] locking/rtmutex: Avoid unconditional slowpath for
Subject: [PATCH 002/198] locking/rtmutex: Avoid unconditional slowpath for
DEBUG_RT_MUTEXES
With DEBUG_RT_MUTEXES enabled the fast-path rt_mutex_cmpxchg_acquire()
@ -82,5 +82,5 @@ index d1473c624105..c7196de838ed 100644
ww_mutex_set_context_fastpath(lock, ww_ctx);
return 0;
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 274c3a06b39727d2ceea622ec9504725ad066758 Mon Sep 17 00:00:00 2001
From 726fcf358613df82a8068f8aaa9507d67df8de50 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 8 Sep 2023 18:22:50 +0200
Subject: [PATCH 003/196] sched: Extract __schedule_loop()
Subject: [PATCH 003/198] sched: Extract __schedule_loop()
There are currently two implementations of this basic __schedule()
loop, and there is soon to be a third.
@ -15,7 +15,7 @@ Link: https://lkml.kernel.org/r/20230908162254.999499-4-bigeasy@linutronix.de
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 73949b8a55d2..4498af52cf47 100644
index ca7a390b9f62..8f6962c0619b 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -6771,16 +6771,21 @@ static void sched_update_worker(struct task_struct *tsk)
@ -59,5 +59,5 @@ index 73949b8a55d2..4498af52cf47 100644
NOKPROBE_SYMBOL(schedule_rtlock);
#endif
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 7e8cc292a114b7d286d1e01eabe11dad82341a8b Mon Sep 17 00:00:00 2001
From 63efc63673a6fab2c2dae2c23fea60297bbe2394 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <peterz@infradead.org>
Date: Fri, 8 Sep 2023 18:22:51 +0200
Subject: [PATCH 004/196] sched: Provide rt_mutex specific scheduler helpers
Subject: [PATCH 004/198] sched: Provide rt_mutex specific scheduler helpers
With PREEMPT_RT there is a rt_mutex recursion problem where
sched_submit_work() can use an rtlock (aka spinlock_t). More
@ -72,7 +72,7 @@ index 994c25640e15..b2b9e6eb9683 100644
* Must hold either p->pi_lock or task_rq(p)->lock.
*/
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 4498af52cf47..d703c5427cf2 100644
index 8f6962c0619b..b49e976e831d 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -6724,9 +6724,6 @@ static inline void sched_submit_work(struct task_struct *tsk)
@ -133,5 +133,5 @@ index 4498af52cf47..d703c5427cf2 100644
{
if (pi_task)
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 5762f7281a1fdd82c3d062c45b22c923e60ec13b Mon Sep 17 00:00:00 2001
From 3fee7fa89258ca88cff520d3218f2836b2a28967 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 8 Sep 2023 18:22:52 +0200
Subject: [PATCH 005/196] locking/rtmutex: Use rt_mutex specific scheduler
Subject: [PATCH 005/198] locking/rtmutex: Use rt_mutex specific scheduler
helpers
Have rt_mutex use the rt_mutex specific scheduler helpers to avoid
@ -187,5 +187,5 @@ index 48a19ed8486d..842037b2ba54 100644
/*
* The common functions which get wrapped into the rwlock API.
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From b71ab9837960957eba5540fa4f8cbdff716d109a Mon Sep 17 00:00:00 2001
From a249b8b176e8cca383e6e5c1828d22c36550bf4f Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 8 Sep 2023 18:22:53 +0200
Subject: [PATCH 006/196] locking/rtmutex: Add a lockdep assert to catch
Subject: [PATCH 006/198] locking/rtmutex: Add a lockdep assert to catch
potential nested blocking
There used to be a BUG_ON(current->pi_blocked_on) in the lock acquisition
@ -62,5 +62,5 @@ index 842037b2ba54..38e292454fcc 100644
rtlock_slowlock(rtm);
}
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 2343a071fe4d7b166460763b1c136087413162de Mon Sep 17 00:00:00 2001
From 5e7587cbae78256b00529bf6f8bf05fc12016870 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <peterz@infradead.org>
Date: Fri, 15 Sep 2023 17:19:44 +0200
Subject: [PATCH 007/196] futex/pi: Fix recursive rt_mutex waiter state
Subject: [PATCH 007/198] futex/pi: Fix recursive rt_mutex waiter state
Some new assertions pointed out that the existing code has nested rt_mutex wait
state in the futex code.
@ -200,5 +200,5 @@ index cba8b1a6a4cc..4c73e0b81acc 100644
/*
* Fixup the pi_state owner and possibly acquire the lock if we
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From d491a188fa496d6b2cdf75506baf2f0b9c05f9be Mon Sep 17 00:00:00 2001
From 582ec18e1e62afbe50a9da0c175702bdef8cf6f1 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 3 Aug 2023 12:09:31 +0200
Subject: [PATCH 008/196] signal: Add proper comment about the preempt-disable
Subject: [PATCH 008/198] signal: Add proper comment about the preempt-disable
in ptrace_stop().
Commit 53da1d9456fe7 ("fix ptrace slowness") added a preempt-disable section
@ -48,5 +48,5 @@ index 09019017d669..051ed8114cd4 100644
preempt_disable();
read_unlock(&tasklist_lock);
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From a1d2d7b91bc31bbfbfbc05438ecbe88fe2d54202 Mon Sep 17 00:00:00 2001
From 207befc216df4061572b5eb8b1e1f5280b770658 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 3 Aug 2023 12:09:32 +0200
Subject: [PATCH 009/196] signal: Don't disable preemption in ptrace_stop() on
Subject: [PATCH 009/198] signal: Don't disable preemption in ptrace_stop() on
PREEMPT_RT.
On PREEMPT_RT keeping preemption disabled during the invocation of
@ -49,5 +49,5 @@ index 051ed8114cd4..b71026341056 100644
cgroup_leave_frozen(true);
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 623644e53c2a6223a210481f10e12d2018b6217b Mon Sep 17 00:00:00 2001
From 3470ae03d7dbbfaddcd602547d28d0008320f1b2 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 21 Sep 2023 16:15:12 +0200
Subject: [PATCH 010/196] drm/amd/display: Remove migrate_en/dis from
Subject: [PATCH 010/198] drm/amd/display: Remove migrate_en/dis from
dc_fpu_begin().
This is a revert of the commit mentioned below while it is not wrong, as
@ -87,5 +87,5 @@ index 172aa10a8800..86f4c0e04654 100644
if (cpu_has_feature(CPU_FTR_VSX_COMP)) {
disable_kernel_vsx();
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 5249a4a63e601d0bcb87908ce51dc0b62f6623d4 Mon Sep 17 00:00:00 2001
From 83124eabc893637620054a1966019c0a1c02e187 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 21 Sep 2023 16:15:13 +0200
Subject: [PATCH 011/196] drm/amd/display: Simplify the per-CPU usage.
Subject: [PATCH 011/198] drm/amd/display: Simplify the per-CPU usage.
The fpu_recursion_depth counter is used to ensure that dc_fpu_begin()
can be invoked multiple times while the FPU-disable function itself is
@ -128,5 +128,5 @@ index 86f4c0e04654..8bd5926b47e0 100644
+ preempt_enable();
}
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From fafd90c1efec381f2a8a462e9debebe092a8b048 Mon Sep 17 00:00:00 2001
From 332d3bcd23afc3fcf110bc09fcab6b315bac9d34 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 21 Sep 2023 16:15:14 +0200
Subject: [PATCH 012/196] drm/amd/display: Add a warning if the FPU is used
Subject: [PATCH 012/198] drm/amd/display: Add a warning if the FPU is used
outside from task context.
Add a warning if the FPU is used from any context other than task
@ -27,5 +27,5 @@ index 8bd5926b47e0..4ae4720535a5 100644
depth = __this_cpu_inc_return(fpu_recursion_depth);
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 247c1f664220f315889e927b71ea7aa7c9bee733 Mon Sep 17 00:00:00 2001
From 1d341dfc82351031ea1a93de23758b7777a51892 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 21 Sep 2023 16:15:15 +0200
Subject: [PATCH 013/196] drm/amd/display: Move the memory allocation out of
Subject: [PATCH 013/198] drm/amd/display: Move the memory allocation out of
dcn21_validate_bandwidth_fp().
dcn21_validate_bandwidth_fp() is invoked while FPU access has been
@ -92,5 +92,5 @@ index c51badf7b68a..a81a0b9e6884 100644
void dcn21_clk_mgr_set_bw_params_wm_table(struct clk_bw_params *bw_params);
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 4e5f84f3f362e463a2f4b3b678e6f14a4c1022b5 Mon Sep 17 00:00:00 2001
From f36c959a82ec24ab7e9d9a6bdb8bf57873252b29 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 21 Sep 2023 16:15:16 +0200
Subject: [PATCH 014/196] drm/amd/display: Move the memory allocation out of
Subject: [PATCH 014/198] drm/amd/display: Move the memory allocation out of
dcn20_validate_bandwidth_fp().
dcn20_validate_bandwidth_fp() is invoked while FPU access has been
@ -126,5 +126,5 @@ index a81a0b9e6884..b6c34198ddc8 100644
struct pp_smu_wm_range_sets *ranges,
struct _vcs_dpi_soc_bounding_box_st *loaded_bb);
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 3080305e309931d30a95a7f597fd336d8c18abfc Mon Sep 17 00:00:00 2001
From aa8e26abcc3abb3e4131264dc15850c6ee9c5a17 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Mon, 15 Aug 2022 17:29:50 +0200
Subject: [PATCH 015/196] net: Avoid the IPI to free the
Subject: [PATCH 015/198] net: Avoid the IPI to free the
skb_attempt_defer_free() collects a skbs, which was allocated on a
remote CPU, on a per-CPU list. These skbs are either freed on that
@ -40,7 +40,7 @@ index b8e60a20416b..ffa5248a90e2 100644
static inline void input_queue_head_incr(struct softnet_data *sd)
diff --git a/net/core/dev.c b/net/core/dev.c
index 1f6c8945f2ec..1e8928cd3c75 100644
index 5a5bd339f11e..8f193d7b8b41 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -4705,15 +4705,6 @@ static void rps_trigger_softirq(void *data)
@ -92,7 +92,7 @@ index 1f6c8945f2ec..1e8928cd3c75 100644
static int napi_threaded_poll(void *data)
{
struct napi_struct *napi = data;
@@ -11618,7 +11635,11 @@ static int __init net_dev_init(void)
@@ -11619,7 +11636,11 @@ static int __init net_dev_init(void)
INIT_CSD(&sd->csd, rps_trigger_softirq, sd);
sd->cpu = i;
#endif
@ -124,5 +124,5 @@ index f0a9ef1aeaa2..682175af439d 100644
static void skb_splice_csum_page(struct sk_buff *skb, struct page *page,
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From bd995cd727d2224a50948e9b438bfe8047ee1b32 Mon Sep 17 00:00:00 2001
From 0c81e8feb81c26938bb8e1671251c5bbbbe61e71 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 7 Aug 2019 18:15:38 +0200
Subject: [PATCH 016/196] x86: Allow to enable RT
Subject: [PATCH 016/198] x86: Allow to enable RT
Allow to select RT.
@ -12,7 +12,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 1 insertion(+)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index be9248e5cb71..0b9640069679 100644
index 82d12c93feab..231e41817ea4 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -28,6 +28,7 @@ config X86_64
@ -24,5 +24,5 @@ index be9248e5cb71..0b9640069679 100644
select HAVE_ARCH_SOFT_DIRTY
select MODULES_USE_ELF_RELA
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 07b4a5b59a1e0dc9174bf6c59e2678ddea5643a7 Mon Sep 17 00:00:00 2001
From be9039f5df5d87ef2bcdb94692c5c7cf23e1ab57 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 7 Nov 2019 17:49:20 +0100
Subject: [PATCH 017/196] x86: Enable RT also on 32bit
Subject: [PATCH 017/198] x86: Enable RT also on 32bit
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
@ -10,7 +10,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 0b9640069679..282313172756 100644
index 231e41817ea4..fe340c07ddbf 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -28,7 +28,6 @@ config X86_64
@ -30,5 +30,5 @@ index 0b9640069679..282313172756 100644
select ARCH_USE_MEMTEST
select ARCH_USE_QUEUED_RWLOCKS
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From db46aebeac180f931ba8691024ee135c07858583 Mon Sep 17 00:00:00 2001
From 1d5f24ef9b6e648ae4a48efed2517b326d42bd21 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Tue, 1 Aug 2023 17:26:48 +0200
Subject: [PATCH 018/196] sched/rt: Don't try push tasks if there are none.
Subject: [PATCH 018/198] sched/rt: Don't try push tasks if there are none.
I have a RT task X at a high priority and cyclictest on each CPU with
lower priority than X's. If X is active and each CPU wakes their own
@ -59,5 +59,5 @@ index 4ac36eb4cdee..acd1510e8d47 100644
rd->rto_cpu = -1;
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From c7e01a04ed53f115cb3af580ed462135aa6b71b2 Mon Sep 17 00:00:00 2001
From 7ff5e122c0ed81be4b0fd5f95eceff4601ae3b92 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 1 Dec 2021 17:41:09 +0100
Subject: [PATCH 019/196] softirq: Use a dedicated thread for timer wakeups.
Subject: [PATCH 019/198] softirq: Use a dedicated thread for timer wakeups.
A timer/hrtimer softirq is raised in-IRQ context. With threaded
interrupts enabled or on PREEMPT_RT this leads to waking the ksoftirqd
@ -72,10 +72,10 @@ index 4a1dc88ddbff..0efba74a835c 100644
static inline struct task_struct *this_cpu_ksoftirqd(void)
diff --git a/kernel/softirq.c b/kernel/softirq.c
index 210cf5f8d92c..c29c30106eb8 100644
index bd9716d7bb63..0e43058c2e58 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -619,6 +619,29 @@ static inline void tick_irq_exit(void)
@@ -623,6 +623,29 @@ static inline void tick_irq_exit(void)
#endif
}
@ -105,7 +105,7 @@ index 210cf5f8d92c..c29c30106eb8 100644
static inline void __irq_exit_rcu(void)
{
#ifndef __ARCH_IRQ_EXIT_IRQS_DISABLED
@@ -628,8 +651,13 @@ static inline void __irq_exit_rcu(void)
@@ -632,8 +655,13 @@ static inline void __irq_exit_rcu(void)
#endif
account_hardirq_exit(current);
preempt_count_sub(HARDIRQ_OFFSET);
@ -121,7 +121,7 @@ index 210cf5f8d92c..c29c30106eb8 100644
tick_irq_exit();
}
@@ -963,12 +991,70 @@ static struct smp_hotplug_thread softirq_threads = {
@@ -967,12 +995,70 @@ static struct smp_hotplug_thread softirq_threads = {
.thread_comm = "ksoftirqd/%u",
};
@ -229,5 +229,5 @@ index 63a8ce7177dd..7cad6fe3c035 100644
/*
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 7c7aa2fd849aea3a7921810889b8d085bc57eed2 Mon Sep 17 00:00:00 2001
From 2dfa9f9c68b582c25a433a35b9b9b9a6ac924d70 Mon Sep 17 00:00:00 2001
From: Frederic Weisbecker <frederic@kernel.org>
Date: Tue, 5 Apr 2022 03:07:51 +0200
Subject: [PATCH 020/196] rcutorture: Also force sched priority to timersd on
Subject: [PATCH 020/198] rcutorture: Also force sched priority to timersd on
boosting test.
ksoftirqd is statically boosted to the priority level right above the
@ -46,10 +46,10 @@ index 0efba74a835c..f459b0f27c94 100644
extern void raise_hrtimer_softirq(void);
diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
index ade42d6a9d9b..eebb9b4548fb 100644
index 781146600aa4..7ee1c84b52ee 100644
--- a/kernel/rcu/rcutorture.c
+++ b/kernel/rcu/rcutorture.c
@@ -2408,6 +2408,12 @@ static int rcutorture_booster_init(unsigned int cpu)
@@ -2409,6 +2409,12 @@ static int rcutorture_booster_init(unsigned int cpu)
WARN_ON_ONCE(!t);
sp.sched_priority = 2;
sched_setscheduler_nocheck(t, SCHED_FIFO, &sp);
@ -63,10 +63,10 @@ index ade42d6a9d9b..eebb9b4548fb 100644
/* Don't allow time recalculation while creating a new task. */
diff --git a/kernel/softirq.c b/kernel/softirq.c
index c29c30106eb8..1277abc94228 100644
index 0e43058c2e58..63e8b9ad2727 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -620,7 +620,7 @@ static inline void tick_irq_exit(void)
@@ -624,7 +624,7 @@ static inline void tick_irq_exit(void)
}
#ifdef CONFIG_PREEMPT_RT
@ -76,5 +76,5 @@ index c29c30106eb8..1277abc94228 100644
static unsigned int local_pending_timers(void)
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 9d79040c2c1c1f48b290b9cee53e2ad94fe595d3 Mon Sep 17 00:00:00 2001
From b384d371d5d010103ec54eba9b7671fc5185ff2d Mon Sep 17 00:00:00 2001
From: Frederic Weisbecker <frederic@kernel.org>
Date: Tue, 5 Apr 2022 03:07:52 +0200
Subject: [PATCH 021/196] tick: Fix timer storm since introduction of timersd
Subject: [PATCH 021/198] tick: Fix timer storm since introduction of timersd
If timers are pending while the tick is reprogrammed on nohz_mode, the
next expiry is not armed to fire now, it is delayed one jiffy forward
@ -80,10 +80,10 @@ index f459b0f27c94..a5091ac97fc6 100644
DECLARE_PER_CPU(struct task_struct *, ksoftirqd);
diff --git a/kernel/softirq.c b/kernel/softirq.c
index 1277abc94228..a4d359e2c2b5 100644
index 63e8b9ad2727..65477d8e00af 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -621,12 +621,7 @@ static inline void tick_irq_exit(void)
@@ -625,12 +625,7 @@ static inline void tick_irq_exit(void)
#ifdef CONFIG_PREEMPT_RT
DEFINE_PER_CPU(struct task_struct *, timersd);
@ -111,5 +111,5 @@ index 55cbc49f70d1..1a0ed106b192 100644
static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu)
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 0e32a7eea788ed21fcc70c30fd603fdc76b00ac8 Mon Sep 17 00:00:00 2001
From bdf5ee26417220052ec1661debb63390ada3139f Mon Sep 17 00:00:00 2001
From: Junxiao Chang <junxiao.chang@intel.com>
Date: Mon, 20 Feb 2023 09:12:20 +0100
Subject: [PATCH 022/196] softirq: Wake ktimers thread also in softirq.
Subject: [PATCH 022/198] softirq: Wake ktimers thread also in softirq.
If the hrtimer is raised while a softirq is processed then it does not
wake the corresponding ktimers thread. This is due to the optimisation in the
@ -22,10 +22,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/kernel/softirq.c b/kernel/softirq.c
index a4d359e2c2b5..c2474cc4fa51 100644
index 65477d8e00af..ea6198bf64e0 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -646,13 +646,12 @@ static inline void __irq_exit_rcu(void)
@@ -650,13 +650,12 @@ static inline void __irq_exit_rcu(void)
#endif
account_hardirq_exit(current);
preempt_count_sub(HARDIRQ_OFFSET);
@ -45,5 +45,5 @@ index a4d359e2c2b5..c2474cc4fa51 100644
tick_irq_exit();
}
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 57cccbf81b65507bd497f519ccfa101c32b2754c Mon Sep 17 00:00:00 2001
From d3387d952d438dbf7defeed50f8fbc39fba1df70 Mon Sep 17 00:00:00 2001
From: Mike Galbraith <umgwanakikbuti@gmail.com>
Date: Thu, 31 Mar 2016 04:08:28 +0200
Subject: [PATCH 023/196] zram: Replace bit spinlocks with spinlock_t for
Subject: [PATCH 023/198] zram: Replace bit spinlocks with spinlock_t for
PREEMPT_RT.
The bit spinlock disables preemption. The spinlock_t lock becomes a sleeping
@ -98,5 +98,5 @@ index ca7a15bd4845..e64eb607eb45 100644
ktime_t ac_time;
#endif
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From a622600aa33f630c975961c557bc1b42173a7ff6 Mon Sep 17 00:00:00 2001
From 33a68ca25d0b2a563cb067490e89561b53cc5f2b Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Wed, 8 Mar 2023 16:29:38 +0100
Subject: [PATCH 024/196] preempt: Put preempt_enable() within an
Subject: [PATCH 024/198] preempt: Put preempt_enable() within an
instrumentation*() section.
Callers of preempt_enable() can be within an noinstr section leading to:
@ -48,5 +48,5 @@ index 9aa6358a1a16..cd16f0330fba 100644
#define preempt_check_resched() \
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 4ae4b72fbf397e10c5dd99e5a16d05738e7731f9 Mon Sep 17 00:00:00 2001
From 3fe6d131433d048f8ab7dd55f7106599ecefaddd Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 4 Aug 2023 13:30:37 +0200
Subject: [PATCH 025/196] sched/core: Provide a method to check if a task is
Subject: [PATCH 025/198] sched/core: Provide a method to check if a task is
PI-boosted.
Provide a method to check if a task inherited the priority from another
@ -31,7 +31,7 @@ index 67623ffd4a8e..eab173e5d09b 100644
extern void set_user_nice(struct task_struct *p, long nice);
extern int task_prio(const struct task_struct *p);
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index d703c5427cf2..c731c53d6bfd 100644
index b49e976e831d..bbc2e377fc79 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -8923,6 +8923,21 @@ static inline void preempt_dynamic_init(void) { }
@ -57,5 +57,5 @@ index d703c5427cf2..c731c53d6bfd 100644
* yield - yield the current processor to other threads.
*
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From d21a69c84700a97a5acdca48a49c6dab62fa93e6 Mon Sep 17 00:00:00 2001
From 65324c3d45b0bccbf9908de7c05ef3cac61fe87a Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 4 Aug 2023 13:30:38 +0200
Subject: [PATCH 026/196] softirq: Add function to preempt serving softirqs.
Subject: [PATCH 026/198] softirq: Add function to preempt serving softirqs.
Add a functionality for the softirq handler to preempt its current work
if needed. The softirq core has no particular state. It reads and resets
@ -39,7 +39,7 @@ index fc53e0ad56d9..448bbef47456 100644
#endif /* _LINUX_BH_H */
diff --git a/kernel/softirq.c b/kernel/softirq.c
index c2474cc4fa51..cae0ae2e2b0b 100644
index ea6198bf64e0..2fde8af88e48 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -247,6 +247,19 @@ void __local_bh_enable_ip(unsigned long ip, unsigned int cnt)
@ -63,5 +63,5 @@ index c2474cc4fa51..cae0ae2e2b0b 100644
* Invoked from ksoftirqd_run() outside of the interrupt disabled section
* to acquire the per CPU local lock for reentrancy protection.
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From d23ffc79747b058efb25071c175fab84a6aef4a0 Mon Sep 17 00:00:00 2001
From 476585cf12a905280a088c7c2acf505e56f4939e Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Fri, 4 Aug 2023 13:30:39 +0200
Subject: [PATCH 027/196] time: Allow to preempt after a callback.
Subject: [PATCH 027/198] time: Allow to preempt after a callback.
The TIMER_SOFTIRQ handler invokes timer callbacks of the expired timers.
Before each invocation the timer_base::lock is dropped. The only lock
@ -48,5 +48,5 @@ index 7cad6fe3c035..b3fbe97d1e34 100644
raw_spin_lock_irq(&base->lock);
}
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 6c5fd34375840faafa52dc7fcdd2af0ae03f8dc9 Mon Sep 17 00:00:00 2001
From 3c73775d695d5cd02c3e8d459e1df2724b9f24f0 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:19 +0206
Subject: [PATCH 028/196] serial: core: Use lock wrappers
Subject: [PATCH 028/198] serial: core: Use lock wrappers
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@ -41,10 +41,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index a7d5fa892be2..678409c47b88 100644
index 052df85dfd59..71d925e8a79b 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -1058,14 +1058,14 @@ static inline void uart_unlock_and_check_sysrq(struct uart_port *port)
@@ -1078,14 +1078,14 @@ static inline void uart_unlock_and_check_sysrq(struct uart_port *port)
u8 sysrq_ch;
if (!port->has_sysrq) {
@ -61,7 +61,7 @@ index a7d5fa892be2..678409c47b88 100644
if (sysrq_ch)
handle_sysrq(sysrq_ch);
@@ -1077,14 +1077,14 @@ static inline void uart_unlock_and_check_sysrq_irqrestore(struct uart_port *port
@@ -1097,14 +1097,14 @@ static inline void uart_unlock_and_check_sysrq_irqrestore(struct uart_port *port
u8 sysrq_ch;
if (!port->has_sysrq) {
@ -78,7 +78,7 @@ index a7d5fa892be2..678409c47b88 100644
if (sysrq_ch)
handle_sysrq(sysrq_ch);
@@ -1100,12 +1100,12 @@ static inline int uart_prepare_sysrq_char(struct uart_port *port, u8 ch)
@@ -1120,12 +1120,12 @@ static inline int uart_prepare_sysrq_char(struct uart_port *port, u8 ch)
}
static inline void uart_unlock_and_check_sysrq(struct uart_port *port)
{
@ -94,5 +94,5 @@ index a7d5fa892be2..678409c47b88 100644
#endif /* CONFIG_MAGIC_SYSRQ_SERIAL */
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 6deb325a028322c4a4e7b28cbd3b9ec25f80d6a0 Mon Sep 17 00:00:00 2001
From 82c085780a94b3c85d976ade46212fb57e03e99e Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:20 +0206
Subject: [PATCH 029/196] serial: 21285: Use port lock wrappers
Subject: [PATCH 029/198] serial: 21285: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -76,5 +76,5 @@ index d756fcc884cb..4de0c975ebdc 100644
static const char *serial21285_type(struct uart_port *port)
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From cca56d164cac4c49bcfbfa86cb969ad793e86416 Mon Sep 17 00:00:00 2001
From 8c2c911f3a02f5d324c2da970197fc040d65eb8e Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:21 +0206
Subject: [PATCH 030/196] serial: 8250_aspeed_vuart: Use port lock wrappers
Subject: [PATCH 030/198] serial: 8250_aspeed_vuart: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -62,5 +62,5 @@ index 4a9e71b2dbbc..021949f252f8 100644
lsr = serial_port_in(port, UART_LSR);
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 2db644ab7d72fad6b37df65a4851616312692caf Mon Sep 17 00:00:00 2001
From 6a5af1e8fbd6409bd0102147c056daa76ccf7918 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:22 +0206
Subject: [PATCH 031/196] serial: 8250_bcm7271: Use port lock wrappers
Subject: [PATCH 031/198] serial: 8250_bcm7271: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -37,7 +37,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/drivers/tty/serial/8250/8250_bcm7271.c b/drivers/tty/serial/8250/8250_bcm7271.c
index aa5aff046756..ff0662c68725 100644
index 9afd5979c9e0..db23b3a02aef 100644
--- a/drivers/tty/serial/8250/8250_bcm7271.c
+++ b/drivers/tty/serial/8250/8250_bcm7271.c
@@ -567,7 +567,7 @@ static irqreturn_t brcmuart_isr(int irq, void *dev_id)
@ -89,7 +89,7 @@ index aa5aff046756..ff0662c68725 100644
serial8250_do_shutdown(port);
}
@@ -788,7 +788,7 @@ static int brcmuart_handle_irq(struct uart_port *p)
@@ -807,7 +807,7 @@ static int brcmuart_handle_irq(struct uart_port *p)
* interrupt but there is no data ready.
*/
if (((iir & UART_IIR_ID) == UART_IIR_RX_TIMEOUT) && !(priv->shutdown)) {
@ -98,7 +98,7 @@ index aa5aff046756..ff0662c68725 100644
status = serial_port_in(p, UART_LSR);
if ((status & UART_LSR_DR) == 0) {
@@ -813,7 +813,7 @@ static int brcmuart_handle_irq(struct uart_port *p)
@@ -832,7 +832,7 @@ static int brcmuart_handle_irq(struct uart_port *p)
handled = 1;
}
@ -107,7 +107,7 @@ index aa5aff046756..ff0662c68725 100644
if (handled)
return 1;
}
@@ -831,7 +831,7 @@ static enum hrtimer_restart brcmuart_hrtimer_func(struct hrtimer *t)
@@ -850,7 +850,7 @@ static enum hrtimer_restart brcmuart_hrtimer_func(struct hrtimer *t)
if (priv->shutdown)
return HRTIMER_NORESTART;
@ -116,7 +116,7 @@ index aa5aff046756..ff0662c68725 100644
status = serial_port_in(p, UART_LSR);
/*
@@ -855,7 +855,7 @@ static enum hrtimer_restart brcmuart_hrtimer_func(struct hrtimer *t)
@@ -874,7 +874,7 @@ static enum hrtimer_restart brcmuart_hrtimer_func(struct hrtimer *t)
status |= UART_MCR_RTS;
serial_port_out(p, UART_MCR, status);
}
@ -125,7 +125,7 @@ index aa5aff046756..ff0662c68725 100644
return HRTIMER_NORESTART;
}
@@ -1154,10 +1154,10 @@ static int __maybe_unused brcmuart_suspend(struct device *dev)
@@ -1173,10 +1173,10 @@ static int __maybe_unused brcmuart_suspend(struct device *dev)
* This will prevent resume from enabling RTS before the
* baud rate has been restored.
*/
@ -138,7 +138,7 @@ index aa5aff046756..ff0662c68725 100644
serial8250_suspend_port(priv->line);
clk_disable_unprepare(priv->baud_mux_clk);
@@ -1196,10 +1196,10 @@ static int __maybe_unused brcmuart_resume(struct device *dev)
@@ -1215,10 +1215,10 @@ static int __maybe_unused brcmuart_resume(struct device *dev)
if (priv->saved_mctrl & TIOCM_RTS) {
/* Restore RTS */
@ -152,5 +152,5 @@ index aa5aff046756..ff0662c68725 100644
return 0;
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 02148da4732ac5295f4b3285b970becd7b236da9 Mon Sep 17 00:00:00 2001
From 828db145449b7685918b3b30590b9d04eb29e97e Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:23 +0206
Subject: [PATCH 032/196] serial: 8250: Use port lock wrappers
Subject: [PATCH 032/198] serial: 8250: Use port lock wrappers
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@ -468,5 +468,5 @@ index a17803da83f8..cba5a1b1030f 100644
static unsigned int probe_baud(struct uart_port *port)
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 18ff09af02da7e776929e679f07d525b9696cf02 Mon Sep 17 00:00:00 2001
From a754fa6633198948f7f09eeb6c9ee09d5ba9cd4c Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:24 +0206
Subject: [PATCH 033/196] serial: 8250_dma: Use port lock wrappers
Subject: [PATCH 033/198] serial: 8250_dma: Use port lock wrappers
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@ -81,5 +81,5 @@ index 7fa66501792d..8b30ca8fdd3f 100644
int serial8250_tx_dma(struct uart_8250_port *p)
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 15d8a9cc288fb357d7e88d18443499acc485a8f3 Mon Sep 17 00:00:00 2001
From 4870c45e792f351ad18c9730500f8be26377e8c4 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:25 +0206
Subject: [PATCH 034/196] serial: 8250_dw: Use port lock wrappers
Subject: [PATCH 034/198] serial: 8250_dw: Use port lock wrappers
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@ -41,10 +41,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/tty/serial/8250/8250_dw.c b/drivers/tty/serial/8250/8250_dw.c
index a1f2259cc9a9..53c284bb271d 100644
index 8aed33be2ebf..5367bcc6256c 100644
--- a/drivers/tty/serial/8250/8250_dw.c
+++ b/drivers/tty/serial/8250/8250_dw.c
@@ -263,20 +263,20 @@ static int dw8250_handle_irq(struct uart_port *p)
@@ -290,20 +290,20 @@ static int dw8250_handle_irq(struct uart_port *p)
* so we limit the workaround only to non-DMA mode.
*/
if (!up->dma && rx_timeout) {
@ -70,5 +70,5 @@ index a1f2259cc9a9..53c284bb271d 100644
if (status & (UART_LSR_DR | UART_LSR_BI)) {
dw8250_writel_ext(p, RZN1_UART_RDMACR, 0);
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From fcdc4f7bddd9c1296f49c8ab212556c65541f091 Mon Sep 17 00:00:00 2001
From dd51d4714ec1d3482aa85da3d185c2f8553764a0 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:26 +0206
Subject: [PATCH 035/196] serial: 8250_exar: Use port lock wrappers
Subject: [PATCH 035/198] serial: 8250_exar: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -37,10 +37,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c
index 4d20f3aa280c..342786064590 100644
index 27430fdd9e76..17be6ad24a0f 100644
--- a/drivers/tty/serial/8250/8250_exar.c
+++ b/drivers/tty/serial/8250/8250_exar.c
@@ -201,9 +201,9 @@ static int xr17v35x_startup(struct uart_port *port)
@@ -243,9 +243,9 @@ static int xr17v35x_startup(struct uart_port *port)
*
* Synchronize UART_IER access against the console.
*/
@ -53,5 +53,5 @@ index 4d20f3aa280c..342786064590 100644
return serial8250_do_startup(port);
}
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From e8d089bbe434c9b15ac5664ff08008dc7e0e3878 Mon Sep 17 00:00:00 2001
From afda5a365e4f9515b9c3ee95a74f7ab8b5506bce Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:27 +0206
Subject: [PATCH 036/196] serial: 8250_fsl: Use port lock wrappers
Subject: [PATCH 036/198] serial: 8250_fsl: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -64,5 +64,5 @@ index 6af4e1c1210a..f522eb5026c9 100644
}
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From c3cdebecf01d8cd7e7421441fa6a6cc29bef4ad0 Mon Sep 17 00:00:00 2001
From daad1b7d725b68a09709b7ac56af8081c53e767a Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:28 +0206
Subject: [PATCH 037/196] serial: 8250_mtk: Use port lock wrappers
Subject: [PATCH 037/198] serial: 8250_mtk: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -38,7 +38,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/tty/serial/8250/8250_mtk.c b/drivers/tty/serial/8250/8250_mtk.c
index 74da5676ce67..23457daae8a1 100644
index 28f9a2679a20..33699e86eb52 100644
--- a/drivers/tty/serial/8250/8250_mtk.c
+++ b/drivers/tty/serial/8250/8250_mtk.c
@@ -102,7 +102,7 @@ static void mtk8250_dma_rx_complete(void *param)
@ -59,7 +59,7 @@ index 74da5676ce67..23457daae8a1 100644
}
static void mtk8250_rx_dma(struct uart_8250_port *up)
@@ -368,7 +368,7 @@ mtk8250_set_termios(struct uart_port *port, struct ktermios *termios,
@@ -372,7 +372,7 @@ mtk8250_set_termios(struct uart_port *port, struct ktermios *termios,
* Ok, we're now changing the port state. Do it with
* interrupts disabled.
*/
@ -68,7 +68,7 @@ index 74da5676ce67..23457daae8a1 100644
/*
* Update the per-port timeout.
@@ -416,7 +416,7 @@ mtk8250_set_termios(struct uart_port *port, struct ktermios *termios,
@@ -420,7 +420,7 @@ mtk8250_set_termios(struct uart_port *port, struct ktermios *termios,
if (uart_console(port))
up->port.cons->cflag = termios->c_cflag;
@ -78,5 +78,5 @@ index 74da5676ce67..23457daae8a1 100644
if (tty_termios_baud_rate(termios))
tty_termios_encode_baud_rate(termios, baud, baud);
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From f9959f0ba207be470f5be435892eef3ae7ce6f76 Mon Sep 17 00:00:00 2001
From 56532bba46e4ebd1777505b80fcdce6cff87d973 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:29 +0206
Subject: [PATCH 038/196] serial: 8250_omap: Use port lock wrappers
Subject: [PATCH 038/198] serial: 8250_omap: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -37,10 +37,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 26 insertions(+), 26 deletions(-)
diff --git a/drivers/tty/serial/8250/8250_omap.c b/drivers/tty/serial/8250/8250_omap.c
index 346167afe9e1..db5519ce0192 100644
index 8f472a2080ff..78fc1f17d5e2 100644
--- a/drivers/tty/serial/8250/8250_omap.c
+++ b/drivers/tty/serial/8250/8250_omap.c
@@ -401,7 +401,7 @@ static void omap_8250_set_termios(struct uart_port *port,
@@ -405,7 +405,7 @@ static void omap_8250_set_termios(struct uart_port *port,
* interrupts disabled.
*/
pm_runtime_get_sync(port->dev);
@ -49,7 +49,7 @@ index 346167afe9e1..db5519ce0192 100644
/*
* Update the per-port timeout.
@@ -504,7 +504,7 @@ static void omap_8250_set_termios(struct uart_port *port,
@@ -508,7 +508,7 @@ static void omap_8250_set_termios(struct uart_port *port,
}
omap8250_restore_regs(up);
@ -58,7 +58,7 @@ index 346167afe9e1..db5519ce0192 100644
pm_runtime_mark_last_busy(port->dev);
pm_runtime_put_autosuspend(port->dev);
@@ -529,7 +529,7 @@ static void omap_8250_pm(struct uart_port *port, unsigned int state,
@@ -533,7 +533,7 @@ static void omap_8250_pm(struct uart_port *port, unsigned int state,
pm_runtime_get_sync(port->dev);
/* Synchronize UART_IER access against the console. */
@ -67,7 +67,7 @@ index 346167afe9e1..db5519ce0192 100644
serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B);
efr = serial_in(up, UART_EFR);
@@ -541,7 +541,7 @@ static void omap_8250_pm(struct uart_port *port, unsigned int state,
@@ -545,7 +545,7 @@ static void omap_8250_pm(struct uart_port *port, unsigned int state,
serial_out(up, UART_EFR, efr);
serial_out(up, UART_LCR, 0);
@ -76,7 +76,7 @@ index 346167afe9e1..db5519ce0192 100644
pm_runtime_mark_last_busy(port->dev);
pm_runtime_put_autosuspend(port->dev);
@@ -660,7 +660,7 @@ static irqreturn_t omap8250_irq(int irq, void *dev_id)
@@ -676,7 +676,7 @@ static irqreturn_t omap8250_irq(int irq, void *dev_id)
unsigned long delay;
/* Synchronize UART_IER access against the console. */
@ -85,7 +85,7 @@ index 346167afe9e1..db5519ce0192 100644
up->ier = port->serial_in(port, UART_IER);
if (up->ier & (UART_IER_RLSI | UART_IER_RDI)) {
port->ops->stop_rx(port);
@@ -670,7 +670,7 @@ static irqreturn_t omap8250_irq(int irq, void *dev_id)
@@ -686,7 +686,7 @@ static irqreturn_t omap8250_irq(int irq, void *dev_id)
*/
cancel_delayed_work(&up->overrun_backoff);
}
@ -94,7 +94,7 @@ index 346167afe9e1..db5519ce0192 100644
delay = msecs_to_jiffies(up->overrun_backoff_time_ms);
schedule_delayed_work(&up->overrun_backoff, delay);
@@ -717,10 +717,10 @@ static int omap_8250_startup(struct uart_port *port)
@@ -733,10 +733,10 @@ static int omap_8250_startup(struct uart_port *port)
}
/* Synchronize UART_IER access against the console. */
@ -107,7 +107,7 @@ index 346167afe9e1..db5519ce0192 100644
#ifdef CONFIG_PM
up->capabilities |= UART_CAP_RPM;
@@ -733,9 +733,9 @@ static int omap_8250_startup(struct uart_port *port)
@@ -749,9 +749,9 @@ static int omap_8250_startup(struct uart_port *port)
serial_out(up, UART_OMAP_WER, priv->wer);
if (up->dma && !(priv->habit & UART_HAS_EFR2)) {
@ -119,7 +119,7 @@ index 346167afe9e1..db5519ce0192 100644
}
enable_irq(up->port.irq);
@@ -761,10 +761,10 @@ static void omap_8250_shutdown(struct uart_port *port)
@@ -777,10 +777,10 @@ static void omap_8250_shutdown(struct uart_port *port)
serial_out(up, UART_OMAP_EFR2, 0x0);
/* Synchronize UART_IER access against the console. */
@ -132,7 +132,7 @@ index 346167afe9e1..db5519ce0192 100644
disable_irq_nosync(up->port.irq);
dev_pm_clear_wake_irq(port->dev);
@@ -789,10 +789,10 @@ static void omap_8250_throttle(struct uart_port *port)
@@ -805,10 +805,10 @@ static void omap_8250_throttle(struct uart_port *port)
pm_runtime_get_sync(port->dev);
@ -145,7 +145,7 @@ index 346167afe9e1..db5519ce0192 100644
pm_runtime_mark_last_busy(port->dev);
pm_runtime_put_autosuspend(port->dev);
@@ -807,14 +807,14 @@ static void omap_8250_unthrottle(struct uart_port *port)
@@ -823,14 +823,14 @@ static void omap_8250_unthrottle(struct uart_port *port)
pm_runtime_get_sync(port->dev);
/* Synchronize UART_IER access against the console. */
@ -162,7 +162,7 @@ index 346167afe9e1..db5519ce0192 100644
pm_runtime_mark_last_busy(port->dev);
pm_runtime_put_autosuspend(port->dev);
@@ -958,7 +958,7 @@ static void __dma_rx_complete(void *param)
@@ -974,7 +974,7 @@ static void __dma_rx_complete(void *param)
unsigned long flags;
/* Synchronize UART_IER access against the console. */
@ -171,7 +171,7 @@ index 346167afe9e1..db5519ce0192 100644
/*
* If the tx status is not DMA_COMPLETE, then this is a delayed
@@ -967,7 +967,7 @@ static void __dma_rx_complete(void *param)
@@ -983,7 +983,7 @@ static void __dma_rx_complete(void *param)
*/
if (dmaengine_tx_status(dma->rxchan, dma->rx_cookie, &state) !=
DMA_COMPLETE) {
@ -180,7 +180,7 @@ index 346167afe9e1..db5519ce0192 100644
return;
}
__dma_rx_do_complete(p);
@@ -978,7 +978,7 @@ static void __dma_rx_complete(void *param)
@@ -994,7 +994,7 @@ static void __dma_rx_complete(void *param)
omap_8250_rx_dma(p);
}
@ -189,7 +189,7 @@ index 346167afe9e1..db5519ce0192 100644
}
static void omap_8250_rx_dma_flush(struct uart_8250_port *p)
@@ -1083,7 +1083,7 @@ static void omap_8250_dma_tx_complete(void *param)
@@ -1099,7 +1099,7 @@ static void omap_8250_dma_tx_complete(void *param)
dma_sync_single_for_cpu(dma->txchan->device->dev, dma->tx_addr,
UART_XMIT_SIZE, DMA_TO_DEVICE);
@ -198,7 +198,7 @@ index 346167afe9e1..db5519ce0192 100644
dma->tx_running = 0;
@@ -1112,7 +1112,7 @@ static void omap_8250_dma_tx_complete(void *param)
@@ -1128,7 +1128,7 @@ static void omap_8250_dma_tx_complete(void *param)
serial8250_set_THRI(p);
}
@ -207,7 +207,7 @@ index 346167afe9e1..db5519ce0192 100644
}
static int omap_8250_tx_dma(struct uart_8250_port *p)
@@ -1278,7 +1278,7 @@ static int omap_8250_dma_handle_irq(struct uart_port *port)
@@ -1294,7 +1294,7 @@ static int omap_8250_dma_handle_irq(struct uart_port *port)
return IRQ_HANDLED;
}
@ -216,7 +216,7 @@ index 346167afe9e1..db5519ce0192 100644
status = serial_port_in(port, UART_LSR);
@@ -1758,15 +1758,15 @@ static int omap8250_runtime_resume(struct device *dev)
@@ -1774,15 +1774,15 @@ static int omap8250_runtime_resume(struct device *dev)
up = serial8250_get_port(priv->line);
if (up && omap8250_lost_context(up)) {
@ -237,5 +237,5 @@ index 346167afe9e1..db5519ce0192 100644
priv->latency = priv->calc_latency;
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 4ebaf505e5fbbb2afb5bd4f5f48adb577fb39315 Mon Sep 17 00:00:00 2001
From 2ba00850939172df3b1eb9065dfd18bd22ebf52d Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:30 +0206
Subject: [PATCH 039/196] serial: 8250_pci1xxxx: Use port lock wrappers
Subject: [PATCH 039/198] serial: 8250_pci1xxxx: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -67,5 +67,5 @@ index a3b25779d921..53e238c8cc89 100644
mutex_unlock(&tport->mutex);
}
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 6fbcb9f97af265fa1c92e1f95ef0530bb0a5f204 Mon Sep 17 00:00:00 2001
From 6609031dab7f29f6ecbfe93f3b5a0edfeba6e3da Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:31 +0206
Subject: [PATCH 040/196] serial: altera_jtaguart: Use port lock wrappers
Subject: [PATCH 040/198] serial: altera_jtaguart: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -134,5 +134,5 @@ index 5fab4c978891..7090b251dd4d 100644
#endif
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 112dc89a8aea09edaed7b3226b5be6a9b8242141 Mon Sep 17 00:00:00 2001
From b68c948e4b290493f64b6f3eacaec9d6d5e5586d Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:32 +0206
Subject: [PATCH 041/196] serial: altera_uart: Use port lock wrappers
Subject: [PATCH 041/198] serial: altera_uart: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -117,5 +117,5 @@ index a9c41942190c..77835ac68df2 100644
if (port->irq)
free_irq(port->irq, port);
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From d8f628e5aa4ab5114ef77d8506c3bdfd6f7e8b5d Mon Sep 17 00:00:00 2001
From 335e2ed1966a025ed881d48af9e4f83eb9a4908d Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:33 +0206
Subject: [PATCH 042/196] serial: amba-pl010: Use port lock wrappers
Subject: [PATCH 042/198] serial: amba-pl010: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -113,5 +113,5 @@ index b5a7404cbacb..eabbf8afc9b5 100644
}
}
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 7ee23cef36f815349c95b29497c35bda97eba2c4 Mon Sep 17 00:00:00 2001
From 6d23b8de485e6daeb30bb60ebd2549e5ef6efabc Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:34 +0206
Subject: [PATCH 043/196] serial: amba-pl011: Use port lock wrappers
Subject: [PATCH 043/198] serial: amba-pl011: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -328,5 +328,5 @@ index 362bbcdece0d..16c770311069 100644
clk_disable(uap->clk);
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From c85c7c75c6c5c59ddd219cc1f9230d60cf19d0b9 Mon Sep 17 00:00:00 2001
From 0b6067b5319203fff5b964e99691bf95aca008c6 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:35 +0206
Subject: [PATCH 044/196] serial: apb: Use port lock wrappers
Subject: [PATCH 044/198] serial: apb: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -77,5 +77,5 @@ index d3cb341f2c55..364599f256db 100644
static const char *apbuart_type(struct uart_port *port)
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 19f8ba43023ff2ba22f8d92d71bd1ac7705ee6cf Mon Sep 17 00:00:00 2001
From 44c163e253e782c8d5a4317e67ee12cc3820b1cb Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:36 +0206
Subject: [PATCH 045/196] serial: ar933x: Use port lock wrappers
Subject: [PATCH 045/198] serial: ar933x: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -145,5 +145,5 @@ index 924c1a89347c..ffd234673177 100644
local_irq_restore(flags);
}
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 0cd89f0ef7ea21aa9769ef5a405ec8c142685c7b Mon Sep 17 00:00:00 2001
From 0885034ac6bb370faf679bfcd44a7d7d76fdb6dd Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:37 +0206
Subject: [PATCH 046/196] serial: arc_uart: Use port lock wrappers
Subject: [PATCH 046/198] serial: arc_uart: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -98,5 +98,5 @@ index ad4ae19b6ce3..1aa5b2b49c26 100644
static struct console arc_console = {
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From c5aed341415af407a29c6a9376b0a960b455f91c Mon Sep 17 00:00:00 2001
From 13101454e81a130df7745de810f64caeecd461ad Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:38 +0206
Subject: [PATCH 047/196] serial: atmel: Use port lock wrappers
Subject: [PATCH 047/198] serial: atmel: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -120,5 +120,5 @@ index 88cdafa5ac54..1946fafc3f3e 100644
}
}
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From fd2f440a4fa98bdd61c5344811a8b3c53de0e2b4 Mon Sep 17 00:00:00 2001
From d340dc1c843a6528d8f5106ac9df3386c65ed4a1 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:39 +0206
Subject: [PATCH 048/196] serial: bcm63xx-uart: Use port lock wrappers
Subject: [PATCH 048/198] serial: bcm63xx-uart: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -38,7 +38,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/drivers/tty/serial/bcm63xx_uart.c b/drivers/tty/serial/bcm63xx_uart.c
index 0dd8cceb837c..4a08fd5ee61b 100644
index 44c27e5cefbc..b104c36ce5c0 100644
--- a/drivers/tty/serial/bcm63xx_uart.c
+++ b/drivers/tty/serial/bcm63xx_uart.c
@@ -201,7 +201,7 @@ static void bcm_uart_break_ctl(struct uart_port *port, int ctl)
@ -59,7 +59,7 @@ index 0dd8cceb837c..4a08fd5ee61b 100644
}
/*
@@ -332,7 +332,7 @@ static irqreturn_t bcm_uart_interrupt(int irq, void *dev_id)
@@ -335,7 +335,7 @@ static irqreturn_t bcm_uart_interrupt(int irq, void *dev_id)
unsigned int irqstat;
port = dev_id;
@ -68,7 +68,7 @@ index 0dd8cceb837c..4a08fd5ee61b 100644
irqstat = bcm_uart_readl(port, UART_IR_REG);
if (irqstat & UART_RX_INT_STAT)
@@ -353,7 +353,7 @@ static irqreturn_t bcm_uart_interrupt(int irq, void *dev_id)
@@ -356,7 +356,7 @@ static irqreturn_t bcm_uart_interrupt(int irq, void *dev_id)
estat & UART_EXTINP_DCD_MASK);
}
@ -77,7 +77,7 @@ index 0dd8cceb837c..4a08fd5ee61b 100644
return IRQ_HANDLED;
}
@@ -451,9 +451,9 @@ static void bcm_uart_shutdown(struct uart_port *port)
@@ -454,9 +454,9 @@ static void bcm_uart_shutdown(struct uart_port *port)
{
unsigned long flags;
@ -89,7 +89,7 @@ index 0dd8cceb837c..4a08fd5ee61b 100644
bcm_uart_disable(port);
bcm_uart_flush(port);
@@ -470,7 +470,7 @@ static void bcm_uart_set_termios(struct uart_port *port, struct ktermios *new,
@@ -473,7 +473,7 @@ static void bcm_uart_set_termios(struct uart_port *port, struct ktermios *new,
unsigned long flags;
int tries;
@ -98,7 +98,7 @@ index 0dd8cceb837c..4a08fd5ee61b 100644
/* Drain the hot tub fully before we power it off for the winter. */
for (tries = 3; !bcm_uart_tx_empty(port) && tries; tries--)
@@ -546,7 +546,7 @@ static void bcm_uart_set_termios(struct uart_port *port, struct ktermios *new,
@@ -549,7 +549,7 @@ static void bcm_uart_set_termios(struct uart_port *port, struct ktermios *new,
uart_update_timeout(port, new->c_cflag, baud);
bcm_uart_enable(port);
@ -107,7 +107,7 @@ index 0dd8cceb837c..4a08fd5ee61b 100644
}
/*
@@ -712,9 +712,9 @@ static void bcm_console_write(struct console *co, const char *s,
@@ -715,9 +715,9 @@ static void bcm_console_write(struct console *co, const char *s,
/* bcm_uart_interrupt() already took the lock */
locked = 0;
} else if (oops_in_progress) {
@ -119,7 +119,7 @@ index 0dd8cceb837c..4a08fd5ee61b 100644
locked = 1;
}
@@ -725,7 +725,7 @@ static void bcm_console_write(struct console *co, const char *s,
@@ -728,7 +728,7 @@ static void bcm_console_write(struct console *co, const char *s,
wait_for_xmitr(port);
if (locked)
@ -129,5 +129,5 @@ index 0dd8cceb837c..4a08fd5ee61b 100644
}
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 5428bc92da81ac03fa3530a74ba51e833bbbac01 Mon Sep 17 00:00:00 2001
From d9d52896ca258256888030cfd311a37a98e919a4 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:40 +0206
Subject: [PATCH 049/196] serial: cpm_uart: Use port lock wrappers
Subject: [PATCH 049/198] serial: cpm_uart: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -71,5 +71,5 @@ index 626423022d62..be4af6eda4c2 100644
}
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 64f3446cd9cbba31faf719284c85750b28f22c5d Mon Sep 17 00:00:00 2001
From 916cc53f908e1ad5abefe7c1a152b4fe7bbaee76 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:41 +0206
Subject: [PATCH 050/196] serial: digicolor: Use port lock wrappers
Subject: [PATCH 050/198] serial: digicolor: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -114,5 +114,5 @@ index 128b5479e813..5004125f3045 100644
/* Wait for transmitter to become empty */
do {
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From e9cac43e4c052afc1b2a76f9e1c6c5f44fbea884 Mon Sep 17 00:00:00 2001
From e9b6548f8b14611fbfb36a182a18fb0423047bfc Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:42 +0206
Subject: [PATCH 051/196] serial: dz: Use port lock wrappers
Subject: [PATCH 051/198] serial: dz: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -162,5 +162,5 @@ index 667f52e83277..6df7af9edc1c 100644
do {
trdy = dz_in(dport, DZ_CSR);
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From c4a981074cc232c31fd8a56c5a2665f7321a3320 Mon Sep 17 00:00:00 2001
From 471d5859d368d3904b99653762a91d196c146d86 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:43 +0206
Subject: [PATCH 052/196] serial: linflexuart: Use port lock wrappers
Subject: [PATCH 052/198] serial: linflexuart: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -144,5 +144,5 @@ index 249cb380c3c6..7fa809a405e8 100644
/*
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 2e2106c3ad0310075bb39b7480ef99896684d657 Mon Sep 17 00:00:00 2001
From d515b20fcded5a1ceb74e1595b77a7ca01825ac8 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:44 +0206
Subject: [PATCH 053/196] serial: fsl_lpuart: Use port lock wrappers
Subject: [PATCH 053/198] serial: fsl_lpuart: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -390,5 +390,5 @@ index 385b41275e8b..71d0cbd74807 100644
dmaengine_terminate_sync(sport->dma_tx_chan);
}
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 828b820890ade060806490d0273c0dcffa63cc9b Mon Sep 17 00:00:00 2001
From df886b013878b3ada509177a9d4eb3a4c2c23301 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:45 +0206
Subject: [PATCH 054/196] serial: icom: Use port lock wrappers
Subject: [PATCH 054/198] serial: icom: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -152,5 +152,5 @@ index 819f957b6b84..a75eafbcbea3 100644
static const char *icom_type(struct uart_port *port)
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 4f36fa6b8c6cbaa11a181bfb618fd76a1761223b Mon Sep 17 00:00:00 2001
From d6997d53bfddd199295e21d81deb60f80138f50c Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:46 +0206
Subject: [PATCH 055/196] serial: imx: Use port lock wrappers
Subject: [PATCH 055/198] serial: imx: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -37,10 +37,10 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 42 insertions(+), 42 deletions(-)
diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
index c77831e91ec2..66420a992539 100644
index a5d0df2ba5c5..267c9af4bd53 100644
--- a/drivers/tty/serial/imx.c
+++ b/drivers/tty/serial/imx.c
@@ -584,7 +584,7 @@ static void imx_uart_dma_tx_callback(void *data)
@@ -586,7 +586,7 @@ static void imx_uart_dma_tx_callback(void *data)
unsigned long flags;
u32 ucr1;
@ -49,7 +49,7 @@ index c77831e91ec2..66420a992539 100644
dma_unmap_sg(sport->port.dev, sgl, sport->dma_tx_nents, DMA_TO_DEVICE);
@@ -609,7 +609,7 @@ static void imx_uart_dma_tx_callback(void *data)
@@ -611,7 +611,7 @@ static void imx_uart_dma_tx_callback(void *data)
imx_uart_writel(sport, ucr4, UCR4);
}
@ -58,7 +58,7 @@ index c77831e91ec2..66420a992539 100644
}
/* called with port.lock taken and irqs off */
@@ -780,11 +780,11 @@ static irqreturn_t imx_uart_rtsint(int irq, void *dev_id)
@@ -782,11 +782,11 @@ static irqreturn_t imx_uart_rtsint(int irq, void *dev_id)
struct imx_port *sport = dev_id;
irqreturn_t ret;
@ -72,7 +72,7 @@ index c77831e91ec2..66420a992539 100644
return ret;
}
@@ -793,9 +793,9 @@ static irqreturn_t imx_uart_txint(int irq, void *dev_id)
@@ -795,9 +795,9 @@ static irqreturn_t imx_uart_txint(int irq, void *dev_id)
{
struct imx_port *sport = dev_id;
@ -84,7 +84,7 @@ index c77831e91ec2..66420a992539 100644
return IRQ_HANDLED;
}
@@ -909,11 +909,11 @@ static irqreturn_t imx_uart_rxint(int irq, void *dev_id)
@@ -911,11 +911,11 @@ static irqreturn_t imx_uart_rxint(int irq, void *dev_id)
struct imx_port *sport = dev_id;
irqreturn_t ret;
@ -98,7 +98,7 @@ index c77831e91ec2..66420a992539 100644
return ret;
}
@@ -976,7 +976,7 @@ static irqreturn_t imx_uart_int(int irq, void *dev_id)
@@ -978,7 +978,7 @@ static irqreturn_t imx_uart_int(int irq, void *dev_id)
unsigned int usr1, usr2, ucr1, ucr2, ucr3, ucr4;
irqreturn_t ret = IRQ_NONE;
@ -107,7 +107,7 @@ index c77831e91ec2..66420a992539 100644
usr1 = imx_uart_readl(sport, USR1);
usr2 = imx_uart_readl(sport, USR2);
@@ -1046,7 +1046,7 @@ static irqreturn_t imx_uart_int(int irq, void *dev_id)
@@ -1048,7 +1048,7 @@ static irqreturn_t imx_uart_int(int irq, void *dev_id)
ret = IRQ_HANDLED;
}
@ -116,7 +116,7 @@ index c77831e91ec2..66420a992539 100644
return ret;
}
@@ -1129,7 +1129,7 @@ static void imx_uart_break_ctl(struct uart_port *port, int break_state)
@@ -1131,7 +1131,7 @@ static void imx_uart_break_ctl(struct uart_port *port, int break_state)
unsigned long flags;
u32 ucr1;
@ -125,7 +125,7 @@ index c77831e91ec2..66420a992539 100644
ucr1 = imx_uart_readl(sport, UCR1) & ~UCR1_SNDBRK;
@@ -1138,7 +1138,7 @@ static void imx_uart_break_ctl(struct uart_port *port, int break_state)
@@ -1140,7 +1140,7 @@ static void imx_uart_break_ctl(struct uart_port *port, int break_state)
imx_uart_writel(sport, ucr1, UCR1);
@ -134,7 +134,7 @@ index c77831e91ec2..66420a992539 100644
}
/*
@@ -1151,9 +1151,9 @@ static void imx_uart_timeout(struct timer_list *t)
@@ -1153,9 +1153,9 @@ static void imx_uart_timeout(struct timer_list *t)
unsigned long flags;
if (sport->port.state) {
@ -146,7 +146,7 @@ index c77831e91ec2..66420a992539 100644
mod_timer(&sport->timer, jiffies + MCTRL_TIMEOUT);
}
@@ -1183,9 +1183,9 @@ static void imx_uart_dma_rx_callback(void *data)
@@ -1185,9 +1185,9 @@ static void imx_uart_dma_rx_callback(void *data)
status = dmaengine_tx_status(chan, sport->rx_cookie, &state);
if (status == DMA_ERROR) {
@ -158,7 +158,7 @@ index c77831e91ec2..66420a992539 100644
return;
}
@@ -1214,9 +1214,9 @@ static void imx_uart_dma_rx_callback(void *data)
@@ -1216,9 +1216,9 @@ static void imx_uart_dma_rx_callback(void *data)
r_bytes = rx_ring->head - rx_ring->tail;
/* If we received something, check for 0xff flood */
@ -170,7 +170,7 @@ index c77831e91ec2..66420a992539 100644
if (!(sport->port.ignore_status_mask & URXD_DUMMY_READ)) {
@@ -1474,7 +1474,7 @@ static int imx_uart_startup(struct uart_port *port)
@@ -1476,7 +1476,7 @@ static int imx_uart_startup(struct uart_port *port)
if (!uart_console(port) && imx_uart_dma_init(sport) == 0)
dma_is_inited = 1;
@ -179,7 +179,7 @@ index c77831e91ec2..66420a992539 100644
/* Reset fifo's and state machines */
imx_uart_soft_reset(sport);
@@ -1547,7 +1547,7 @@ static int imx_uart_startup(struct uart_port *port)
@@ -1549,7 +1549,7 @@ static int imx_uart_startup(struct uart_port *port)
imx_uart_disable_loopback_rs485(sport);
@ -188,7 +188,7 @@ index c77831e91ec2..66420a992539 100644
return 0;
}
@@ -1572,21 +1572,21 @@ static void imx_uart_shutdown(struct uart_port *port)
@@ -1574,21 +1574,21 @@ static void imx_uart_shutdown(struct uart_port *port)
sport->dma_is_rxing = 0;
}
@ -214,7 +214,7 @@ index c77831e91ec2..66420a992539 100644
/*
* Stop our timer.
@@ -1597,7 +1597,7 @@ static void imx_uart_shutdown(struct uart_port *port)
@@ -1599,7 +1599,7 @@ static void imx_uart_shutdown(struct uart_port *port)
* Disable all interrupts, port and break condition.
*/
@ -223,7 +223,7 @@ index c77831e91ec2..66420a992539 100644
ucr1 = imx_uart_readl(sport, UCR1);
ucr1 &= ~(UCR1_TRDYEN | UCR1_RRDYEN | UCR1_RTSDEN | UCR1_RXDMAEN |
@@ -1619,7 +1619,7 @@ static void imx_uart_shutdown(struct uart_port *port)
@@ -1621,7 +1621,7 @@ static void imx_uart_shutdown(struct uart_port *port)
ucr4 &= ~UCR4_TCEN;
imx_uart_writel(sport, ucr4, UCR4);
@ -232,7 +232,7 @@ index c77831e91ec2..66420a992539 100644
clk_disable_unprepare(sport->clk_per);
clk_disable_unprepare(sport->clk_ipg);
@@ -1682,7 +1682,7 @@ imx_uart_set_termios(struct uart_port *port, struct ktermios *termios,
@@ -1684,7 +1684,7 @@ imx_uart_set_termios(struct uart_port *port, struct ktermios *termios,
baud = uart_get_baud_rate(port, termios, old, 50, port->uartclk / 16);
quot = uart_get_divisor(port, baud);
@ -241,7 +241,7 @@ index c77831e91ec2..66420a992539 100644
/*
* Read current UCR2 and save it for future use, then clear all the bits
@@ -1810,7 +1810,7 @@ imx_uart_set_termios(struct uart_port *port, struct ktermios *termios,
@@ -1812,7 +1812,7 @@ imx_uart_set_termios(struct uart_port *port, struct ktermios *termios,
if (UART_ENABLE_MS(&sport->port, termios->c_cflag))
imx_uart_enable_ms(&sport->port);
@ -250,7 +250,7 @@ index c77831e91ec2..66420a992539 100644
}
static const char *imx_uart_type(struct uart_port *port)
@@ -1872,7 +1872,7 @@ static int imx_uart_poll_init(struct uart_port *port)
@@ -1874,7 +1874,7 @@ static int imx_uart_poll_init(struct uart_port *port)
imx_uart_setup_ufcr(sport, TXTL_DEFAULT, RXTL_DEFAULT);
@ -259,7 +259,7 @@ index c77831e91ec2..66420a992539 100644
/*
* Be careful about the order of enabling bits here. First enable the
@@ -1900,7 +1900,7 @@ static int imx_uart_poll_init(struct uart_port *port)
@@ -1902,7 +1902,7 @@ static int imx_uart_poll_init(struct uart_port *port)
imx_uart_writel(sport, ucr1 | UCR1_RRDYEN, UCR1);
imx_uart_writel(sport, ucr2 | UCR2_ATEN, UCR2);
@ -268,7 +268,7 @@ index c77831e91ec2..66420a992539 100644
return 0;
}
@@ -2015,9 +2015,9 @@ imx_uart_console_write(struct console *co, const char *s, unsigned int count)
@@ -2022,9 +2022,9 @@ imx_uart_console_write(struct console *co, const char *s, unsigned int count)
if (sport->port.sysrq)
locked = 0;
else if (oops_in_progress)
@ -280,7 +280,7 @@ index c77831e91ec2..66420a992539 100644
/*
* First, save UCR1/2/3 and then disable interrupts
@@ -2045,7 +2045,7 @@ imx_uart_console_write(struct console *co, const char *s, unsigned int count)
@@ -2052,7 +2052,7 @@ imx_uart_console_write(struct console *co, const char *s, unsigned int count)
imx_uart_ucrs_restore(sport, &old_ucr);
if (locked)
@ -289,7 +289,7 @@ index c77831e91ec2..66420a992539 100644
}
/*
@@ -2203,10 +2203,10 @@ static enum hrtimer_restart imx_trigger_start_tx(struct hrtimer *t)
@@ -2210,10 +2210,10 @@ static enum hrtimer_restart imx_trigger_start_tx(struct hrtimer *t)
struct imx_port *sport = container_of(t, struct imx_port, trigger_start_tx);
unsigned long flags;
@ -302,7 +302,7 @@ index c77831e91ec2..66420a992539 100644
return HRTIMER_NORESTART;
}
@@ -2216,10 +2216,10 @@ static enum hrtimer_restart imx_trigger_stop_tx(struct hrtimer *t)
@@ -2223,10 +2223,10 @@ static enum hrtimer_restart imx_trigger_stop_tx(struct hrtimer *t)
struct imx_port *sport = container_of(t, struct imx_port, trigger_stop_tx);
unsigned long flags;
@ -315,7 +315,7 @@ index c77831e91ec2..66420a992539 100644
return HRTIMER_NORESTART;
}
@@ -2486,9 +2486,9 @@ static void imx_uart_restore_context(struct imx_port *sport)
@@ -2493,9 +2493,9 @@ static void imx_uart_restore_context(struct imx_port *sport)
{
unsigned long flags;
@ -327,7 +327,7 @@ index c77831e91ec2..66420a992539 100644
return;
}
@@ -2503,7 +2503,7 @@ static void imx_uart_restore_context(struct imx_port *sport)
@@ -2510,7 +2510,7 @@ static void imx_uart_restore_context(struct imx_port *sport)
imx_uart_writel(sport, sport->saved_reg[2], UCR3);
imx_uart_writel(sport, sport->saved_reg[3], UCR4);
sport->context_saved = false;
@ -336,7 +336,7 @@ index c77831e91ec2..66420a992539 100644
}
static void imx_uart_save_context(struct imx_port *sport)
@@ -2511,7 +2511,7 @@ static void imx_uart_save_context(struct imx_port *sport)
@@ -2518,7 +2518,7 @@ static void imx_uart_save_context(struct imx_port *sport)
unsigned long flags;
/* Save necessary regs */
@ -345,7 +345,7 @@ index c77831e91ec2..66420a992539 100644
sport->saved_reg[0] = imx_uart_readl(sport, UCR1);
sport->saved_reg[1] = imx_uart_readl(sport, UCR2);
sport->saved_reg[2] = imx_uart_readl(sport, UCR3);
@@ -2523,7 +2523,7 @@ static void imx_uart_save_context(struct imx_port *sport)
@@ -2530,7 +2530,7 @@ static void imx_uart_save_context(struct imx_port *sport)
sport->saved_reg[8] = imx_uart_readl(sport, UBMR);
sport->saved_reg[9] = imx_uart_readl(sport, IMX21_UTS);
sport->context_saved = true;
@ -355,5 +355,5 @@ index c77831e91ec2..66420a992539 100644
static void imx_uart_enable_wakeup(struct imx_port *sport, bool on)
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 228135349ab2ea8fa33100caf52ff52932c2c94a Mon Sep 17 00:00:00 2001
From 74630b9e216fd61db5d16393cd190806bffe6963 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:47 +0206
Subject: [PATCH 056/196] serial: ip22zilog: Use port lock wrappers
Subject: [PATCH 056/198] serial: ip22zilog: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -186,5 +186,5 @@ index 845ff706bc59..320b29cd4683 100644
if (options)
uart_parse_options(options, &baud, &parity, &bits, &flow);
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From e545c49e2e642484da7b702385855351b2351656 Mon Sep 17 00:00:00 2001
From a1a763c342c621e5fc99edd1e45509f94eef6775 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:48 +0206
Subject: [PATCH 057/196] serial: jsm: Use port lock wrappers
Subject: [PATCH 057/198] serial: jsm: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -127,5 +127,5 @@ index 222afc270c88..ce0fef7e2c66 100644
static const char *jsm_tty_type(struct uart_port *port)
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 34a07947702adc2a04e67a62a8524918a41741d2 Mon Sep 17 00:00:00 2001
From b83f284c9678c7954530bb8c5d5e7ced30e2967a Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:49 +0206
Subject: [PATCH 058/196] serial: liteuart: Use port lock wrappers
Subject: [PATCH 058/198] serial: liteuart: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -111,5 +111,5 @@ index d881cdd2a58f..a25ab1efe38f 100644
static int liteuart_console_setup(struct console *co, char *options)
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From d0705514f666cc1f94f6e14d6e90da9e292ce300 Mon Sep 17 00:00:00 2001
From 6a72baf324b91806da60d0624cbf8856614fd1ae Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:50 +0206
Subject: [PATCH 059/196] serial: lpc32xx_hs: Use port lock wrappers
Subject: [PATCH 059/198] serial: lpc32xx_hs: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -149,5 +149,5 @@ index b38fe4728c26..5149a947b7fe 100644
/* Don't rewrite B0 */
if (tty_termios_baud_rate(termios))
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From e453078fee203a5b4b42d8a09d914275e860a130 Mon Sep 17 00:00:00 2001
From 0ff344b817fada3e81a6839145bac10e82ef95e8 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:51 +0206
Subject: [PATCH 060/196] serial: ma35d1: Use port lock wrappers
Subject: [PATCH 060/198] serial: ma35d1: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -118,5 +118,5 @@ index 69da24565b99..73910c54d6be 100644
static int __init ma35d1serial_console_setup(struct console *co, char *options)
--
2.45.1
2.45.2

View File

@ -1,7 +1,7 @@
From 27398ce8a64a6543cd10239422009eb3fbfe822c Mon Sep 17 00:00:00 2001
From a29d619de0f1d68471bf3765fd78d1c74c3c94f6 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Sep 2023 20:43:52 +0206
Subject: [PATCH 061/196] serial: mcf: Use port lock wrappers
Subject: [PATCH 061/198] serial: mcf: Use port lock wrappers
When a serial port is used for kernel console output, then all
modifications to the UART registers which are done from other contexts,
@ -37,7 +37,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/drivers/tty/serial/mcf.c b/drivers/tty/serial/mcf.c
index 1666ce012e5e..91b15243f6c6 100644
index aea29b4e6567..ee40af20a08f 100644
--- a/drivers/tty/serial/mcf.c
+++ b/drivers/tty/serial/mcf.c
@@ -135,12 +135,12 @@ static void mcf_break_ctl(struct uart_port *port, int break_state)
@ -128,5 +128,5 @@ index 1666ce012e5e..91b15243f6c6 100644
return ret;
}
--
2.45.1
2.45.2

Some files were not shown because too many files have changed in this diff Show More