From ca819c9780da3a59cf2f02bb7477fddc221123b8 Mon Sep 17 00:00:00 2001 From: David P Date: Sat, 27 Feb 2021 19:27:55 -0500 Subject: updpkg: libre/linux-libre-lts 5.10.19-1 Signed-off-by: David P --- ...RM-atags-add-support-for-Marvell-s-u-boot.patch | 51 - ...ctl-and-CONFIG-to-disallow-unprivileged-C.patch | 88 +- ...dt-retrieve-MAC-addresses-from-Marvell-bo.patch | 47 - ...dd-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch | 689 ----- .../0003-SMILE-Plug-device-tree-file.patch | 209 -- .../0004-fix-mvsdio-eMMC-timing.patch | 38 - ...x-Allow-mac-address-to-be-set-as-a-parame.patch | 95 - .../0006-set-default-cubietruck-led-triggers.patch | 33 - ...odroid-set-higher-minimum-buck2-regulator.patch | 30 - .../0008-ARM-dove-enable-ethernet-on-D3Plug.patch | 31 - .../0009-USB-Armory-MkII-support.patch | 555 ---- libre/linux-libre-lts/PKGBUILD | 108 +- libre/linux-libre-lts/config.armv7h | 1432 +++++++--- libre/linux-libre-lts/config.i686 | 2912 ++++++++++---------- libre/linux-libre-lts/config.x86_64 | 2631 ++++++++---------- libre/linux-libre-lts/no-ultra-zstd.patch | 12 + libre/linux-libre-lts/sphinx-workaround.patch | 15 - 17 files changed, 3724 insertions(+), 5252 deletions(-) delete mode 100644 libre/linux-libre-lts/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch delete mode 100644 libre/linux-libre-lts/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch delete mode 100644 libre/linux-libre-lts/0002-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch delete mode 100644 libre/linux-libre-lts/0003-SMILE-Plug-device-tree-file.patch delete mode 100644 libre/linux-libre-lts/0004-fix-mvsdio-eMMC-timing.patch delete mode 100644 libre/linux-libre-lts/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch delete mode 100644 libre/linux-libre-lts/0006-set-default-cubietruck-led-triggers.patch delete mode 100644 libre/linux-libre-lts/0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch delete mode 100644 libre/linux-libre-lts/0008-ARM-dove-enable-ethernet-on-D3Plug.patch delete mode 100644 libre/linux-libre-lts/0009-USB-Armory-MkII-support.patch create mode 100644 libre/linux-libre-lts/no-ultra-zstd.patch delete mode 100644 libre/linux-libre-lts/sphinx-workaround.patch diff --git a/libre/linux-libre-lts/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch b/libre/linux-libre-lts/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch deleted file mode 100644 index 074903c47..000000000 --- a/libre/linux-libre-lts/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 88f69b1dcdda406ba9e4c6ad51f0577623d238b1 Mon Sep 17 00:00:00 2001 -From: Willy Tarreau -Date: Sun, 2 Dec 2012 19:59:28 +0100 -Subject: [PATCH 1/9] ARM: atags: add support for Marvell's u-boot - -Marvell uses a specific atag in its u-boot which includes among other -information the MAC addresses for up to 4 network interfaces. - -Signed-off-by: Willy Tarreau ---- - arch/arm/include/uapi/asm/setup.h | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) - -diff --git a/arch/arm/include/uapi/asm/setup.h b/arch/arm/include/uapi/asm/setup.h -index 25ceda63b284..83578c54975b 100644 ---- a/arch/arm/include/uapi/asm/setup.h -+++ b/arch/arm/include/uapi/asm/setup.h -@@ -144,6 +144,18 @@ struct tag_memclk { - __u32 fmemclk; - }; - -+/* Marvell uboot parameters */ -+#define ATAG_MV_UBOOT 0x41000403 -+struct tag_mv_uboot { -+ __u32 uboot_version; -+ __u32 tclk; -+ __u32 sysclk; -+ __u32 isUsbHost; -+ __u8 macAddr[4][6]; -+ __u16 mtu[4]; -+ __u32 nand_ecc; -+}; -+ - struct tag { - struct tag_header hdr; - union { -@@ -166,6 +178,11 @@ struct tag { - * DC21285 specific - */ - struct tag_memclk memclk; -+ -+ /* -+ * Marvell specific -+ */ -+ struct tag_mv_uboot mv_uboot; - } u; - }; - --- -2.23.0 - diff --git a/libre/linux-libre-lts/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch b/libre/linux-libre-lts/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch index 3020b9065..5ff280f96 100644 --- a/libre/linux-libre-lts/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch +++ b/libre/linux-libre-lts/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch @@ -1,22 +1,44 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From 024a28765039cafbd4b4056d3f213be989e39dc2 Mon Sep 17 00:00:00 2001 From: "Jan Alexander Steffens (heftig)" Date: Mon, 16 Sep 2019 04:53:20 +0200 -Subject: [PATCH] ZEN: Add sysctl and CONFIG to disallow unprivileged - CLONE_NEWUSER +Subject: ZEN: Add sysctl and CONFIG to disallow unprivileged CLONE_NEWUSER Our default behavior continues to match the vanilla kernel. --- - init/Kconfig | 16 ++++++++++++++++ - kernel/fork.c | 15 +++++++++++++++ - kernel/sysctl.c | 12 ++++++++++++ - kernel/user_namespace.c | 7 +++++++ - 4 files changed, 50 insertions(+) + include/linux/user_namespace.h | 4 ++++ + init/Kconfig | 16 ++++++++++++++++ + kernel/fork.c | 14 ++++++++++++++ + kernel/sysctl.c | 12 ++++++++++++ + kernel/user_namespace.c | 7 +++++++ + 5 files changed, 53 insertions(+) +diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h +index 6ef1c7109fc4..2140091b0b8d 100644 +--- a/include/linux/user_namespace.h ++++ b/include/linux/user_namespace.h +@@ -106,6 +106,8 @@ void dec_ucount(struct ucounts *ucounts, enum ucount_type type); + + #ifdef CONFIG_USER_NS + ++extern int unprivileged_userns_clone; ++ + static inline struct user_namespace *get_user_ns(struct user_namespace *ns) + { + if (ns) +@@ -139,6 +141,8 @@ extern bool current_in_userns(const struct user_namespace *target_ns); + struct ns_common *ns_get_owner(struct ns_common *ns); + #else + ++#define unprivileged_userns_clone 0 ++ + static inline struct user_namespace *get_user_ns(struct user_namespace *ns) + { + return &init_user_ns; diff --git a/init/Kconfig b/init/Kconfig -index 96fc45d1b686..3bc58f03a2cd 100644 +index 0872a5a2e759..a40d8afeb1bb 100644 --- a/init/Kconfig +++ b/init/Kconfig -@@ -1084,6 +1084,22 @@ config USER_NS +@@ -1173,6 +1173,22 @@ config USER_NS If unsure, say N. @@ -40,22 +62,21 @@ index 96fc45d1b686..3bc58f03a2cd 100644 bool "PID Namespaces" default y diff --git a/kernel/fork.c b/kernel/fork.c -index 419fff8eb9e5..70da21e5c06a 100644 +index c675fdbd3dce..9266039e28e4 100644 --- a/kernel/fork.c +++ b/kernel/fork.c -@@ -106,6 +106,11 @@ +@@ -97,6 +97,10 @@ + #include + #include - #define CREATE_TRACE_POINTS - #include +#ifdef CONFIG_USER_NS -+extern int unprivileged_userns_clone; -+#else -+#define unprivileged_userns_clone 0 ++#include +#endif - - /* - * Minimum number of threads to boot the kernel -@@ -1799,6 +1804,10 @@ static __latent_entropy struct task_struct *copy_process( ++ + #include + #include + #include +@@ -1863,6 +1867,10 @@ static __latent_entropy struct task_struct *copy_process( if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS)) return ERR_PTR(-EINVAL); @@ -66,7 +87,7 @@ index 419fff8eb9e5..70da21e5c06a 100644 /* * Thread groups must share signals as well, and detached threads * can only be started up within the thread group. -@@ -2859,6 +2868,12 @@ int ksys_unshare(unsigned long unshare_flags) +@@ -2928,6 +2936,12 @@ int ksys_unshare(unsigned long unshare_flags) if (unshare_flags & CLONE_NEWNS) unshare_flags |= CLONE_FS; @@ -80,20 +101,20 @@ index 419fff8eb9e5..70da21e5c06a 100644 if (err) goto bad_unshare_out; diff --git a/kernel/sysctl.c b/kernel/sysctl.c -index 70665934d53e..9797869ed829 100644 +index afad085960b8..a94828fb31c2 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c -@@ -110,6 +110,9 @@ extern int core_uses_pid; - extern char core_pattern[]; - extern unsigned int core_pipe_limit; +@@ -103,6 +103,9 @@ + #ifdef CONFIG_LOCKUP_DETECTOR + #include #endif +#ifdef CONFIG_USER_NS -+extern int unprivileged_userns_clone; ++#include +#endif - extern int pid_max; - extern int pid_max_min, pid_max_max; - extern int percpu_pagelist_fraction; -@@ -546,6 +549,15 @@ static struct ctl_table kern_table[] = { + + #if defined(CONFIG_SYSCTL) + +@@ -1902,6 +1905,15 @@ static struct ctl_table kern_table[] = { .proc_handler = proc_dointvec, }, #endif @@ -110,7 +131,7 @@ index 70665934d53e..9797869ed829 100644 { .procname = "tainted", diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c -index 8eadadc478f9..c36ecd19562c 100644 +index e703d5d9cbe8..5758274feaee 100644 --- a/kernel/user_namespace.c +++ b/kernel/user_namespace.c @@ -21,6 +21,13 @@ @@ -127,3 +148,6 @@ index 8eadadc478f9..c36ecd19562c 100644 static struct kmem_cache *user_ns_cachep __read_mostly; static DEFINE_MUTEX(userns_state_mutex); +-- +cgit v1.2.3-1-gf6bb5 + diff --git a/libre/linux-libre-lts/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch b/libre/linux-libre-lts/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch deleted file mode 100644 index 546120041..000000000 --- a/libre/linux-libre-lts/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch +++ /dev/null @@ -1,47 +0,0 @@ -From cb931641740269a78b002b438904292a1110a5a7 Mon Sep 17 00:00:00 2001 -From: Willy Tarreau -Date: Sun, 2 Dec 2012 19:56:58 +0100 -Subject: [PATCH 2/9] ARM: atags/fdt: retrieve MAC addresses from Marvell boot - loader - -The atags are parsed and if a Marvell atag is found, up to 4 MAC -addresses are extracted there and assigned to node aliases eth0..3 -with the name "mac-address". - -This was tested on my Mirabox and the two NICs had their correct -address set. - -Signed-off-by: Willy Tarreau ---- - arch/arm/boot/compressed/atags_to_fdt.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/arch/arm/boot/compressed/atags_to_fdt.c b/arch/arm/boot/compressed/atags_to_fdt.c -index 330cd3c2eae5..82f3802ff695 100644 ---- a/arch/arm/boot/compressed/atags_to_fdt.c -+++ b/arch/arm/boot/compressed/atags_to_fdt.c -@@ -19,7 +19,7 @@ static int node_offset(void *fdt, const char *node_path) - } - - static int setprop(void *fdt, const char *node_path, const char *property, -- uint32_t *val_array, int size) -+ void *val_array, int size) - { - int offset = node_offset(fdt, node_path); - if (offset < 0) -@@ -203,6 +203,12 @@ int atags_to_fdt(void *atag_list, void *fdt, int total_space) - hex_str(serno, atag->u.serialnr.high); - hex_str(serno+8, atag->u.serialnr.low); - setprop_string(fdt, "/", "serial-number", serno); -+ } else if (atag->hdr.tag == ATAG_MV_UBOOT) { -+ /* This ATAG provides up to 4 MAC addresses */ -+ setprop(fdt, "eth0", "mac-address", atag->u.mv_uboot.macAddr[0], 6); -+ setprop(fdt, "eth1", "mac-address", atag->u.mv_uboot.macAddr[1], 6); -+ setprop(fdt, "eth2", "mac-address", atag->u.mv_uboot.macAddr[2], 6); -+ setprop(fdt, "eth3", "mac-address", atag->u.mv_uboot.macAddr[3], 6); - } - } - --- -2.23.0 - diff --git a/libre/linux-libre-lts/0002-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch b/libre/linux-libre-lts/0002-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch deleted file mode 100644 index ce36e014e..000000000 --- a/libre/linux-libre-lts/0002-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch +++ /dev/null @@ -1,689 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" -Date: Wed, 15 Jul 2020 22:42:07 +0200 -Subject: [PATCH] virt: vbox: Add support for the new - VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl - -https://lore.kernel.org/patchwork/cover/1270301/ - -Needed for https://bugs.archlinux.org/task/67253 - -Squashed commit of the following: - -commit 0d7bec556896815f4920a5ed87339732c697175c -Author: Hans de Goede -Date: Thu Jul 9 14:08:58 2020 +0200 - - virt: vbox: Fix some comments which talk about the "session spinlock" - - The session lock is a mutex, not a spinlock, fix the comments to match. - - Acked-by: Arnd Bergmann - Signed-off-by: Hans de Goede - -commit fed91350029e0c3bf626bd55a148e766587ec439 -Author: Hans de Goede -Date: Thu Jul 9 14:08:57 2020 +0200 - - virt: vbox: Log unknown ioctl requests as error - - Every now and then upstream adds new ioctls without notifying us, - log unknown ioctl requests as an error to catch these. - - Acked-by: Arnd Bergmann - Signed-off-by: Hans de Goede - -commit 245d06f4c1b8f84cde07d14c09296a4fe90a26f0 -Author: Hans de Goede -Date: Thu Jul 9 14:08:56 2020 +0200 - - virt: vbox: Add a few new vmmdev request types to the userspace whitelist - - Upstream VirtualBox has defined and is using a few new request types for - vmmdev requests passed through /dev/vboxguest to the hypervisor. - - Add the defines for these to vbox_vmmdev_types.h and add add them to the - whitelists of vmmdev requests which userspace is allowed to make. - - BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1789545 - Acked-by: Arnd Bergmann - Signed-off-by: Hans de Goede - -commit 2f24f5446915322bbbb1ccf4ee2297512feab942 -Author: Hans de Goede -Date: Thu Jul 9 14:08:55 2020 +0200 - - virt: vbox: Add support for the new VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl - - Add support for the new VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES ioctl, this - is necessary for automatic resizing of the guest resolution to match the - VM-window size to work with the new VMSVGA virtual GPU which is now the - new default in VirtualBox. - - BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1789545 - Acked-by: Arnd Bergmann - Signed-off-by: Hans de Goede - -commit 2fc9822453e8dd215765cd2b28e5e6e26338829e -Author: Hans de Goede -Date: Thu Jul 9 14:08:54 2020 +0200 - - virt: vbox: Add vbg_set_host_capabilities() helper function - - Add vbg_set_host_capabilities() helper function, this is a preparation - patch for adding support for the VBGL_IOCTL_GUEST_CAPS_ACQUIRE ioctl. - - Acked-by: Arnd Bergmann - Signed-off-by: Hans de Goede - -commit 1594daf929c8691849c00e49e4a1ed977048addc -Author: Hans de Goede -Date: Thu Jul 9 14:08:53 2020 +0200 - - virt: vbox: Rename guest_caps struct members to set_guest_caps - - Rename guest_caps[_tracker] struct members to set_guest_caps[_tracker] - this is a preparation patch for adding support for the - VBGL_IOCTL_GUEST_CAPS_ACQUIRE ioctl. - - Acked-by: Arnd Bergmann - Signed-off-by: Hans de Goede - -commit d7f3b7cec66d171cf5194ad37f647f4562da6ccc -Author: Hans de Goede -Date: Thu Jul 9 14:08:52 2020 +0200 - - virt: vbox: Fix guest capabilities mask check - - Check the passed in capabilities against VMMDEV_GUEST_CAPABILITIES_MASK - instead of against VMMDEV_EVENT_VALID_EVENT_MASK. - This tightens the allowed mask from 0x7ff to 0x7. - - Fixes: 0ba002bc4393 ("virt: Add vboxguest driver for Virtual Box Guest integration") - Cc: stable@vger.kernel.org - Acked-by: Arnd Bergmann - Signed-off-by: Hans de Goede - -commit f6694fa90e2183874def2d022d097795e2269a15 -Author: Hans de Goede -Date: Thu Jul 9 14:08:51 2020 +0200 - - virt: vbox: Fix VBGL_IOCTL_VMMDEV_REQUEST_BIG and _LOG req numbers to match upstream - - Until this commit the mainline kernel version (this version) of the - vboxguest module contained a bug where it defined - VBGL_IOCTL_VMMDEV_REQUEST_BIG and VBGL_IOCTL_LOG using - _IOC(_IOC_READ | _IOC_WRITE, 'V', ...) instead of - _IO(V, ...) as the out of tree VirtualBox upstream version does. - - Since the VirtualBox userspace bits are always built against VirtualBox - upstream's headers, this means that so far the mainline kernel version - of the vboxguest module has been failing these 2 ioctls with -ENOTTY. - I guess that VBGL_IOCTL_VMMDEV_REQUEST_BIG is never used causing us to - not hit that one and sofar the vboxguest driver has failed to actually - log any log messages passed it through VBGL_IOCTL_LOG. - - This commit changes the VBGL_IOCTL_VMMDEV_REQUEST_BIG and VBGL_IOCTL_LOG - defines to match the out of tree VirtualBox upstream vboxguest version, - while keeping compatibility with the old wrong request defines so as - to not break the kernel ABI in case someone has been using the old - request defines. - - Fixes: f6ddd094f579 ("virt: Add vboxguest driver for Virtual Box Guest integration UAPI") - Cc: stable@vger.kernel.org - Acked-by: Arnd Bergmann - Reviewed-by: Arnd Bergmann - Signed-off-by: Hans de Goede ---- - drivers/virt/vboxguest/vboxguest_core.c | 266 +++++++++++++++++++---- - drivers/virt/vboxguest/vboxguest_core.h | 23 +- - drivers/virt/vboxguest/vboxguest_utils.c | 1 + - include/linux/vbox_utils.h | 1 + - include/uapi/linux/vbox_vmmdev_types.h | 3 + - include/uapi/linux/vboxguest.h | 24 ++ - 6 files changed, 269 insertions(+), 49 deletions(-) - -diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c -index 95bfdb8ac8a2..f449fc366cf3 100644 ---- a/drivers/virt/vboxguest/vboxguest_core.c -+++ b/drivers/virt/vboxguest/vboxguest_core.c -@@ -558,7 +558,7 @@ static int vbg_reset_host_event_filter(struct vbg_dev *gdev, - * Changes the event filter mask for the given session. - * - * This is called in response to VBG_IOCTL_CHANGE_FILTER_MASK as well as to -- * do session cleanup. Takes the session spinlock. -+ * do session cleanup. Takes the session mutex. - * - * Return: 0 or negative errno value. - * @gdev: The Guest extension device. -@@ -661,78 +661,205 @@ static int vbg_reset_host_capabilities(struct vbg_dev *gdev) - } - - /** -- * Sets the guest capabilities for a session. Takes the session spinlock. -+ * Set guest capabilities on the host. -+ * Must be called with gdev->session_mutex hold. -+ * Return: 0 or negative errno value. -+ * @gdev: The Guest extension device. -+ * @session: The session. -+ * @session_termination: Set if we're called by the session cleanup code. -+ */ -+static int vbg_set_host_capabilities(struct vbg_dev *gdev, -+ struct vbg_session *session, -+ bool session_termination) -+{ -+ struct vmmdev_mask *req; -+ u32 caps; -+ int rc; -+ -+ WARN_ON(!mutex_is_locked(&gdev->session_mutex)); -+ -+ caps = gdev->acquired_guest_caps | gdev->set_guest_caps_tracker.mask; -+ -+ if (gdev->guest_caps_host == caps) -+ return 0; -+ -+ /* On termination the requestor is the kernel, as we're cleaning up. */ -+ req = vbg_req_alloc(sizeof(*req), VMMDEVREQ_SET_GUEST_CAPABILITIES, -+ session_termination ? VBG_KERNEL_REQUEST : -+ session->requestor); -+ if (!req) { -+ gdev->guest_caps_host = U32_MAX; -+ return -ENOMEM; -+ } -+ -+ req->or_mask = caps; -+ req->not_mask = ~caps; -+ rc = vbg_req_perform(gdev, req); -+ vbg_req_free(req, sizeof(*req)); -+ -+ gdev->guest_caps_host = (rc >= 0) ? caps : U32_MAX; -+ -+ return vbg_status_code_to_errno(rc); -+} -+ -+/** -+ * Acquire (get exclusive access) guest capabilities for a session. -+ * Takes the session mutex. -+ * Return: 0 or negative errno value. -+ * @gdev: The Guest extension device. -+ * @session: The session. -+ * @flags: Flags (VBGL_IOC_AGC_FLAGS_XXX). -+ * @or_mask: The capabilities to add. -+ * @not_mask: The capabilities to remove. -+ * @session_termination: Set if we're called by the session cleanup code. -+ * This tweaks the error handling so we perform -+ * proper session cleanup even if the host -+ * misbehaves. -+ */ -+static int vbg_acquire_session_capabilities(struct vbg_dev *gdev, -+ struct vbg_session *session, -+ u32 or_mask, u32 not_mask, -+ u32 flags, bool session_termination) -+{ -+ unsigned long irqflags; -+ bool wakeup = false; -+ int ret = 0; -+ -+ mutex_lock(&gdev->session_mutex); -+ -+ if (gdev->set_guest_caps_tracker.mask & or_mask) { -+ vbg_err("%s error: cannot acquire caps which are currently set\n", -+ __func__); -+ ret = -EINVAL; -+ goto out; -+ } -+ -+ /* -+ * Mark any caps in the or_mask as now being in acquire-mode. Note -+ * once caps are in acquire_mode they always stay in this mode. -+ * This impacts event handling, so we take the event-lock. -+ */ -+ spin_lock_irqsave(&gdev->event_spinlock, irqflags); -+ gdev->acquire_mode_guest_caps |= or_mask; -+ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags); -+ -+ /* If we only have to switch the caps to acquire mode, we're done. */ -+ if (flags & VBGL_IOC_AGC_FLAGS_CONFIG_ACQUIRE_MODE) -+ goto out; -+ -+ not_mask &= ~or_mask; /* or_mask takes priority over not_mask */ -+ not_mask &= session->acquired_guest_caps; -+ or_mask &= ~session->acquired_guest_caps; -+ -+ if (or_mask == 0 && not_mask == 0) -+ goto out; -+ -+ if (gdev->acquired_guest_caps & or_mask) { -+ ret = -EBUSY; -+ goto out; -+ } -+ -+ gdev->acquired_guest_caps |= or_mask; -+ gdev->acquired_guest_caps &= ~not_mask; -+ /* session->acquired_guest_caps impacts event handling, take the lock */ -+ spin_lock_irqsave(&gdev->event_spinlock, irqflags); -+ session->acquired_guest_caps |= or_mask; -+ session->acquired_guest_caps &= ~not_mask; -+ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags); -+ -+ ret = vbg_set_host_capabilities(gdev, session, session_termination); -+ /* Roll back on failure, unless it's session termination time. */ -+ if (ret < 0 && !session_termination) { -+ gdev->acquired_guest_caps &= ~or_mask; -+ gdev->acquired_guest_caps |= not_mask; -+ spin_lock_irqsave(&gdev->event_spinlock, irqflags); -+ session->acquired_guest_caps &= ~or_mask; -+ session->acquired_guest_caps |= not_mask; -+ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags); -+ } -+ -+ /* -+ * If we added a capability, check if that means some other thread in -+ * our session should be unblocked because there are events pending -+ * (the result of vbg_get_allowed_event_mask_for_session() may change). -+ * -+ * HACK ALERT! When the seamless support capability is added we generate -+ * a seamless change event so that the ring-3 client can sync with -+ * the seamless state. -+ */ -+ if (ret == 0 && or_mask != 0) { -+ spin_lock_irqsave(&gdev->event_spinlock, irqflags); -+ -+ if (or_mask & VMMDEV_GUEST_SUPPORTS_SEAMLESS) -+ gdev->pending_events |= -+ VMMDEV_EVENT_SEAMLESS_MODE_CHANGE_REQUEST; -+ -+ if (gdev->pending_events) -+ wakeup = true; -+ -+ spin_unlock_irqrestore(&gdev->event_spinlock, irqflags); -+ -+ if (wakeup) -+ wake_up(&gdev->event_wq); -+ } -+ -+out: -+ mutex_unlock(&gdev->session_mutex); -+ -+ return ret; -+} -+ -+/** -+ * Sets the guest capabilities for a session. Takes the session mutex. - * Return: 0 or negative errno value. - * @gdev: The Guest extension device. - * @session: The session. - * @or_mask: The capabilities to add. - * @not_mask: The capabilities to remove. - * @session_termination: Set if we're called by the session cleanup code. - * This tweaks the error handling so we perform - * proper session cleanup even if the host - * misbehaves. - */ - static int vbg_set_session_capabilities(struct vbg_dev *gdev, - struct vbg_session *session, - u32 or_mask, u32 not_mask, - bool session_termination) - { -- struct vmmdev_mask *req; - u32 changed, previous; -- int rc, ret = 0; -- -- /* -- * Allocate a request buffer before taking the spinlock, when -- * the session is being terminated the requestor is the kernel, -- * as we're cleaning up. -- */ -- req = vbg_req_alloc(sizeof(*req), VMMDEVREQ_SET_GUEST_CAPABILITIES, -- session_termination ? VBG_KERNEL_REQUEST : -- session->requestor); -- if (!req) { -- if (!session_termination) -- return -ENOMEM; -- /* Ignore allocation failure, we must do session cleanup. */ -- } -+ int ret = 0; - - mutex_lock(&gdev->session_mutex); - -+ if (gdev->acquire_mode_guest_caps & or_mask) { -+ vbg_err("%s error: cannot set caps which are in acquire_mode\n", -+ __func__); -+ ret = -EBUSY; -+ goto out; -+ } -+ - /* Apply the changes to the session mask. */ -- previous = session->guest_caps; -- session->guest_caps |= or_mask; -- session->guest_caps &= ~not_mask; -+ previous = session->set_guest_caps; -+ session->set_guest_caps |= or_mask; -+ session->set_guest_caps &= ~not_mask; - - /* If anything actually changed, update the global usage counters. */ -- changed = previous ^ session->guest_caps; -+ changed = previous ^ session->set_guest_caps; - if (!changed) - goto out; - -- vbg_track_bit_usage(&gdev->guest_caps_tracker, changed, previous); -- or_mask = gdev->guest_caps_tracker.mask; -+ vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed, previous); - -- if (gdev->guest_caps_host == or_mask || !req) -- goto out; -- -- gdev->guest_caps_host = or_mask; -- req->or_mask = or_mask; -- req->not_mask = ~or_mask; -- rc = vbg_req_perform(gdev, req); -- if (rc < 0) { -- ret = vbg_status_code_to_errno(rc); -- -- /* Failed, roll back (unless it's session termination time). */ -- gdev->guest_caps_host = U32_MAX; -- if (session_termination) -- goto out; -- -- vbg_track_bit_usage(&gdev->guest_caps_tracker, changed, -- session->guest_caps); -- session->guest_caps = previous; -+ ret = vbg_set_host_capabilities(gdev, session, session_termination); -+ /* Roll back on failure, unless it's session termination time. */ -+ if (ret < 0 && !session_termination) { -+ vbg_track_bit_usage(&gdev->set_guest_caps_tracker, changed, -+ session->set_guest_caps); -+ session->set_guest_caps = previous; - } - - out: - mutex_unlock(&gdev->session_mutex); -- vbg_req_free(req, sizeof(*req)); - - return ret; - } -@@ -948,6 +1075,7 @@ void vbg_core_close_session(struct vbg_session *session) - struct vbg_dev *gdev = session->gdev; - int i, rc; - -+ vbg_acquire_session_capabilities(gdev, session, 0, U32_MAX, 0, true); - vbg_set_session_capabilities(gdev, session, 0, U32_MAX, true); - vbg_set_session_event_filter(gdev, session, 0, U32_MAX, true); - -@@ -1005,31 +1133,52 @@ static int vbg_ioctl_driver_version_info( - return 0; - } - -+/* Must be called with the event_lock held */ -+static u32 vbg_get_allowed_event_mask_for_session(struct vbg_dev *gdev, -+ struct vbg_session *session) -+{ -+ u32 acquire_mode_caps = gdev->acquire_mode_guest_caps; -+ u32 session_acquired_caps = session->acquired_guest_caps; -+ u32 allowed_events = VMMDEV_EVENT_VALID_EVENT_MASK; -+ -+ if ((acquire_mode_caps & VMMDEV_GUEST_SUPPORTS_GRAPHICS) && -+ !(session_acquired_caps & VMMDEV_GUEST_SUPPORTS_GRAPHICS)) -+ allowed_events &= ~VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST; -+ -+ if ((acquire_mode_caps & VMMDEV_GUEST_SUPPORTS_SEAMLESS) && -+ !(session_acquired_caps & VMMDEV_GUEST_SUPPORTS_SEAMLESS)) -+ allowed_events &= ~VMMDEV_EVENT_SEAMLESS_MODE_CHANGE_REQUEST; -+ -+ return allowed_events; -+} -+ - static bool vbg_wait_event_cond(struct vbg_dev *gdev, - struct vbg_session *session, - u32 event_mask) - { - unsigned long flags; - bool wakeup; - u32 events; - - spin_lock_irqsave(&gdev->event_spinlock, flags); - - events = gdev->pending_events & event_mask; -+ events &= vbg_get_allowed_event_mask_for_session(gdev, session); - wakeup = events || session->cancel_waiters; - - spin_unlock_irqrestore(&gdev->event_spinlock, flags); - - return wakeup; - } - - /* Must be called with the event_lock held */ - static u32 vbg_consume_events_locked(struct vbg_dev *gdev, - struct vbg_session *session, - u32 event_mask) - { - u32 events = gdev->pending_events & event_mask; - -+ events &= vbg_get_allowed_event_mask_for_session(gdev, session); - gdev->pending_events &= ~events; - return events; - } -@@ -1149,7 +1298,9 @@ static int vbg_req_allowed(struct vbg_dev *gdev, struct vbg_session *session, - case VMMDEVREQ_VIDEO_ACCEL_ENABLE: - case VMMDEVREQ_VIDEO_ACCEL_FLUSH: - case VMMDEVREQ_VIDEO_SET_VISIBLE_REGION: -+ case VMMDEVREQ_VIDEO_UPDATE_MONITOR_POSITIONS: - case VMMDEVREQ_GET_DISPLAY_CHANGE_REQEX: -+ case VMMDEVREQ_GET_DISPLAY_CHANGE_REQ_MULTI: - case VMMDEVREQ_GET_SEAMLESS_CHANGE_REQ: - case VMMDEVREQ_GET_VRDPCHANGE_REQ: - case VMMDEVREQ_LOG_STRING: -@@ -1431,27 +1582,50 @@ static int vbg_ioctl_change_filter_mask(struct vbg_dev *gdev, - false); - } - -+static int vbg_ioctl_acquire_guest_capabilities(struct vbg_dev *gdev, -+ struct vbg_session *session, -+ struct vbg_ioctl_acquire_guest_caps *caps) -+{ -+ u32 flags, or_mask, not_mask; -+ -+ if (vbg_ioctl_chk(&caps->hdr, sizeof(caps->u.in), 0)) -+ return -EINVAL; -+ -+ flags = caps->u.in.flags; -+ or_mask = caps->u.in.or_mask; -+ not_mask = caps->u.in.not_mask; -+ -+ if (flags & ~VBGL_IOC_AGC_FLAGS_VALID_MASK) -+ return -EINVAL; -+ -+ if ((or_mask | not_mask) & ~VMMDEV_GUEST_CAPABILITIES_MASK) -+ return -EINVAL; -+ -+ return vbg_acquire_session_capabilities(gdev, session, or_mask, -+ not_mask, flags, false); -+} -+ - static int vbg_ioctl_change_guest_capabilities(struct vbg_dev *gdev, - struct vbg_session *session, struct vbg_ioctl_set_guest_caps *caps) - { - u32 or_mask, not_mask; - int ret; - - if (vbg_ioctl_chk(&caps->hdr, sizeof(caps->u.in), sizeof(caps->u.out))) - return -EINVAL; - - or_mask = caps->u.in.or_mask; - not_mask = caps->u.in.not_mask; - - if ((or_mask | not_mask) & ~VMMDEV_GUEST_CAPABILITIES_MASK) - return -EINVAL; - - ret = vbg_set_session_capabilities(gdev, session, or_mask, not_mask, - false); - if (ret) - return ret; - -- caps->u.out.session_caps = session->guest_caps; -+ caps->u.out.session_caps = session->set_guest_caps; - caps->u.out.global_caps = gdev->guest_caps_host; - - return 0; -@@ -1540,29 +1714,31 @@ int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data) - return vbg_ioctl_interrupt_all_wait_events(gdev, session, data); - case VBG_IOCTL_CHANGE_FILTER_MASK: - return vbg_ioctl_change_filter_mask(gdev, session, data); -+ case VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES: -+ return vbg_ioctl_acquire_guest_capabilities(gdev, session, data); - case VBG_IOCTL_CHANGE_GUEST_CAPABILITIES: - return vbg_ioctl_change_guest_capabilities(gdev, session, data); - case VBG_IOCTL_CHECK_BALLOON: - return vbg_ioctl_check_balloon(gdev, data); - case VBG_IOCTL_WRITE_CORE_DUMP: - return vbg_ioctl_write_core_dump(gdev, session, data); - } - - /* Variable sized requests. */ - switch (req_no_size) { - #ifdef CONFIG_COMPAT - case VBG_IOCTL_HGCM_CALL_32(0): - f32bit = true; - #endif - /* Fall through */ - case VBG_IOCTL_HGCM_CALL(0): - return vbg_ioctl_hgcm_call(gdev, session, f32bit, data); - case VBG_IOCTL_LOG(0): - case VBG_IOCTL_LOG_ALT(0): - return vbg_ioctl_log(data); - } - -- vbg_debug("VGDrvCommonIoCtl: Unknown req %#08x\n", req); -+ vbg_err_ratelimited("Userspace made an unknown ioctl req %#08x\n", req); - return -ENOTTY; - } - -diff --git a/drivers/virt/vboxguest/vboxguest_core.h b/drivers/virt/vboxguest/vboxguest_core.h -index 77c3a9c8255d..ab4bf64e2cec 100644 ---- a/drivers/virt/vboxguest/vboxguest_core.h -+++ b/drivers/virt/vboxguest/vboxguest_core.h -@@ -118,11 +118,21 @@ struct vbg_dev { - u32 event_filter_host; - - /** -- * Usage counters for guest capabilities. Indexed by capability bit -+ * Guest capabilities which have been switched to acquire_mode. -+ */ -+ u32 acquire_mode_guest_caps; -+ /** -+ * Guest capabilities acquired by vbg_acquire_session_capabilities(). -+ * Only one session can acquire a capability at a time. -+ */ -+ u32 acquired_guest_caps; -+ /** -+ * Usage counters for guest capabilities requested through -+ * vbg_set_session_capabilities(). Indexed by capability bit - * number, one count per session using a capability. - * Protected by session_mutex. - */ -- struct vbg_bit_usage_tracker guest_caps_tracker; -+ struct vbg_bit_usage_tracker set_guest_caps_tracker; - /** - * The guest capabilities last reported to the host (or UINT32_MAX). - * Protected by session_mutex. -@@ -164,11 +174,16 @@ struct vbg_session { - */ - u32 event_filter; - /** -- * Guest capabilities for this session. -+ * Guest capabilities acquired by vbg_acquire_session_capabilities(). -+ * Only one session can acquire a capability at a time. -+ */ -+ u32 acquired_guest_caps; -+ /** -+ * Guest capabilities set through vbg_set_session_capabilities(). - * A capability claimed by any guest session will be reported to the - * host. Protected by vbg_gdev.session_mutex. - */ -- u32 guest_caps; -+ u32 set_guest_caps; - /** VMMDEV_REQUESTOR_* flags */ - u32 requestor; - /** Set on CANCEL_ALL_WAITEVENTS, protected by vbg_devevent_spinlock. */ -diff --git a/drivers/virt/vboxguest/vboxguest_utils.c b/drivers/virt/vboxguest/vboxguest_utils.c -index 43c391626a00..b6fd06eb015e 100644 ---- a/drivers/virt/vboxguest/vboxguest_utils.c -+++ b/drivers/virt/vboxguest/vboxguest_utils.c -@@ -58,6 +58,7 @@ EXPORT_SYMBOL(name) - VBG_LOG(vbg_info, pr_info); - VBG_LOG(vbg_warn, pr_warn); - VBG_LOG(vbg_err, pr_err); -+VBG_LOG(vbg_err_ratelimited, pr_err_ratelimited); - #if defined(DEBUG) && !defined(CONFIG_DYNAMIC_DEBUG) - VBG_LOG(vbg_debug, pr_debug); - #endif -diff --git a/include/linux/vbox_utils.h b/include/linux/vbox_utils.h -index ff56c443180c..db8a7d118093 100644 ---- a/include/linux/vbox_utils.h -+++ b/include/linux/vbox_utils.h -@@ -16,6 +16,7 @@ struct vbg_dev; - __printf(1, 2) void vbg_info(const char *fmt, ...); - __printf(1, 2) void vbg_warn(const char *fmt, ...); - __printf(1, 2) void vbg_err(const char *fmt, ...); -+__printf(1, 2) void vbg_err_ratelimited(const char *fmt, ...); - - /* Only use backdoor logging for non-dynamic debug builds */ - #if defined(DEBUG) && !defined(CONFIG_DYNAMIC_DEBUG) -diff --git a/include/uapi/linux/vbox_vmmdev_types.h b/include/uapi/linux/vbox_vmmdev_types.h -index c27289fd619a..f8a8d6b3c521 100644 ---- a/include/uapi/linux/vbox_vmmdev_types.h -+++ b/include/uapi/linux/vbox_vmmdev_types.h -@@ -63,6 +63,7 @@ enum vmmdev_request_type { - VMMDEVREQ_SET_GUEST_CAPABILITIES = 56, - VMMDEVREQ_VIDEMODE_SUPPORTED2 = 57, /* since version 3.2.0 */ - VMMDEVREQ_GET_DISPLAY_CHANGE_REQEX = 80, /* since version 4.2.4 */ -+ VMMDEVREQ_GET_DISPLAY_CHANGE_REQ_MULTI = 81, - VMMDEVREQ_HGCM_CONNECT = 60, - VMMDEVREQ_HGCM_DISCONNECT = 61, - VMMDEVREQ_HGCM_CALL32 = 62, -@@ -92,6 +93,8 @@ enum vmmdev_request_type { - VMMDEVREQ_WRITE_COREDUMP = 218, - VMMDEVREQ_GUEST_HEARTBEAT = 219, - VMMDEVREQ_HEARTBEAT_CONFIGURE = 220, -+ VMMDEVREQ_NT_BUG_CHECK = 221, -+ VMMDEVREQ_VIDEO_UPDATE_MONITOR_POSITIONS = 222, - /* Ensure the enum is a 32 bit data-type */ - VMMDEVREQ_SIZEHACK = 0x7fffffff - }; -diff --git a/include/uapi/linux/vboxguest.h b/include/uapi/linux/vboxguest.h -index f79d7abe27db..15125f6ec60d 100644 ---- a/include/uapi/linux/vboxguest.h -+++ b/include/uapi/linux/vboxguest.h -@@ -257,6 +257,30 @@ VMMDEV_ASSERT_SIZE(vbg_ioctl_change_filter, 24 + 8); - _IOWR('V', 12, struct vbg_ioctl_change_filter) - - -+/** VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES data structure. */ -+struct vbg_ioctl_acquire_guest_caps { -+ /** The header. */ -+ struct vbg_ioctl_hdr hdr; -+ union { -+ struct { -+ /** Flags (VBGL_IOC_AGC_FLAGS_XXX). */ -+ __u32 flags; -+ /** Capabilities to set (VMMDEV_GUEST_SUPPORTS_XXX). */ -+ __u32 or_mask; -+ /** Capabilities to drop (VMMDEV_GUEST_SUPPORTS_XXX). */ -+ __u32 not_mask; -+ } in; -+ } u; -+}; -+VMMDEV_ASSERT_SIZE(vbg_ioctl_acquire_guest_caps, 24 + 12); -+ -+#define VBGL_IOC_AGC_FLAGS_CONFIG_ACQUIRE_MODE 0x00000001 -+#define VBGL_IOC_AGC_FLAGS_VALID_MASK 0x00000001 -+ -+#define VBG_IOCTL_ACQUIRE_GUEST_CAPABILITIES \ -+ _IOWR('V', 13, struct vbg_ioctl_acquire_guest_caps) -+ -+ - /** VBG_IOCTL_CHANGE_GUEST_CAPABILITIES data structure. */ - struct vbg_ioctl_set_guest_caps { - /** The header. */ diff --git a/libre/linux-libre-lts/0003-SMILE-Plug-device-tree-file.patch b/libre/linux-libre-lts/0003-SMILE-Plug-device-tree-file.patch deleted file mode 100644 index b07e149b7..000000000 --- a/libre/linux-libre-lts/0003-SMILE-Plug-device-tree-file.patch +++ /dev/null @@ -1,209 +0,0 @@ -From 8dc29eb34efbef2aa3ce6e499cea11765286ffbd Mon Sep 17 00:00:00 2001 -From: Kevin Mihelich -Date: Fri, 5 Sep 2014 15:41:19 -0600 -Subject: [PATCH 3/9] SMILE Plug device tree file - -This adds a dts file for the SMILE Plug, which only differs from the Mirabox -dts with the LED definitions. - -Signed-off-by: Kevin Mihelich ---- - arch/arm/boot/dts/Makefile | 1 + - arch/arm/boot/dts/armada-370-smileplug.dts | 173 +++++++++++++++++++++ - 2 files changed, 174 insertions(+) - create mode 100644 arch/arm/boot/dts/armada-370-smileplug.dts - -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index b21b3a64641a..a0f92b9dbd7d 100644 ---- a/arch/arm/boot/dts/Makefile -+++ b/arch/arm/boot/dts/Makefile -@@ -1216,6 +1216,7 @@ dtb-$(CONFIG_MACH_ARMADA_370) += \ - armada-370-db.dtb \ - armada-370-dlink-dns327l.dtb \ - armada-370-mirabox.dtb \ -+ armada-370-smileplug.dtb \ - armada-370-netgear-rn102.dtb \ - armada-370-netgear-rn104.dtb \ - armada-370-rd.dtb \ -diff --git a/arch/arm/boot/dts/armada-370-smileplug.dts b/arch/arm/boot/dts/armada-370-smileplug.dts -new file mode 100644 -index 000000000000..d01308ab848b ---- /dev/null -+++ b/arch/arm/boot/dts/armada-370-smileplug.dts -@@ -0,0 +1,173 @@ -+/* -+ * Device Tree file for Marvell SMILE Plug -+ * -+ * Kevin Mihelich -+ * Gregory CLEMENT -+ * -+ * This file is licensed under the terms of the GNU General Public -+ * License version 2. This program is licensed "as is" without any -+ * warranty of any kind, whether express or implied. -+ */ -+ -+/dts-v1/; -+#include -+#include "armada-370.dtsi" -+ -+/ { -+ model = "Marvell SMILE Plug"; -+ compatible = "marvell,smileplug", "marvell,armada370", "marvell,armada-370-xp"; -+ -+ chosen { -+ bootargs = "console=ttyS0,115200 earlyprintk"; -+ }; -+ -+ memory { -+ device_type = "memory"; -+ reg = <0x00000000 0x20000000>; /* 512 MB */ -+ }; -+ -+ soc { -+ ranges = ; -+ -+ pcie-controller { -+ status = "okay"; -+ -+ /* Internal mini-PCIe connector */ -+ pcie@1,0 { -+ /* Port 0, Lane 0 */ -+ status = "okay"; -+ }; -+ -+ /* Connected on the PCB to a USB 3.0 XHCI controller */ -+ pcie@2,0 { -+ /* Port 1, Lane 0 */ -+ status = "okay"; -+ }; -+ }; -+ -+ internal-regs { -+ serial@12000 { -+ status = "okay"; -+ }; -+ timer@20300 { -+ clock-frequency = <600000000>; -+ status = "okay"; -+ }; -+ -+ gpio_leds { -+ compatible = "gpio-leds"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&smile_led_pins>; -+ -+ red_eyes_led { -+ label = "smileplug:red:eyes"; -+ gpios = <&gpio1 31 0>; -+ default-state = "off"; -+ }; -+ -+ green_eyes_led { -+ label = "smileplug:green:eyes"; -+ gpios = <&gpio2 0 0>; -+ linux,default-trigger = "default-on"; -+ }; -+ -+ red_smile_led { -+ label = "smileplug:red:smile"; -+ gpios = <&gpio1 15 0>; -+ default-state = "off"; -+ }; -+ -+ green_smile_led { -+ label = "smileplug:green:smile"; -+ gpios = <&gpio1 27 0>; -+ linux,default-trigger = "default-on"; -+ }; -+ }; -+ -+ mdio { -+ pinctrl-0 = <&mdio_pins>; -+ pinctrl-names = "default"; -+ phy0: ethernet-phy@0 { -+ reg = <0>; -+ }; -+ -+ phy1: ethernet-phy@1 { -+ reg = <1>; -+ }; -+ }; -+ ethernet@70000 { -+ pinctrl-0 = <&ge0_rgmii_pins>; -+ pinctrl-names = "default"; -+ status = "okay"; -+ phy = <&phy0>; -+ phy-mode = "rgmii-id"; -+ }; -+ ethernet@74000 { -+ pinctrl-0 = <&ge1_rgmii_pins>; -+ pinctrl-names = "default"; -+ status = "okay"; -+ phy = <&phy1>; -+ phy-mode = "rgmii-id"; -+ }; -+ -+ mvsdio@d4000 { -+ pinctrl-0 = <&sdio_pins3>; -+ pinctrl-names = "default"; -+ status = "okay"; -+ /* -+ * No CD or WP GPIOs: SDIO interface used for -+ * Wifi/Bluetooth chip -+ */ -+ broken-cd; -+ }; -+ -+ usb@50000 { -+ status = "okay"; -+ }; -+ -+ usb@51000 { -+ status = "okay"; -+ }; -+ -+ i2c@11000 { -+ status = "okay"; -+ clock-frequency = <100000>; -+ pca9505: pca9505@25 { -+ compatible = "nxp,pca9505"; -+ gpio-controller; -+ #gpio-cells = <2>; -+ reg = <0x25>; -+ }; -+ }; -+ -+ nand@d0000 { -+ status = "okay"; -+ num-cs = <1>; -+ marvell,nand-keep-config; -+ marvell,nand-enable-arbiter; -+ nand-on-flash-bbt; -+ -+ partition@0 { -+ label = "U-Boot"; -+ reg = <0 0x400000>; -+ }; -+ partition@400000 { -+ label = "Linux"; -+ reg = <0x400000 0x400000>; -+ }; -+ partition@800000 { -+ label = "Filesystem"; -+ reg = <0x800000 0x3f800000>; -+ }; -+ }; -+ }; -+ }; -+}; -+ -+&pinctrl { -+ smile_led_pins: smile-led-pins { -+ marvell,pins = "mpp63", "mpp64", "mpp47", "mpp59"; -+ marvell,function = "gpio"; -+ }; -+}; --- -2.23.0 - diff --git a/libre/linux-libre-lts/0004-fix-mvsdio-eMMC-timing.patch b/libre/linux-libre-lts/0004-fix-mvsdio-eMMC-timing.patch deleted file mode 100644 index 791a546d6..000000000 --- a/libre/linux-libre-lts/0004-fix-mvsdio-eMMC-timing.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 579d132a05177e4b85d3ff2321762948fd78b420 Mon Sep 17 00:00:00 2001 -From: Kevin Mihelich -Date: Fri, 5 Sep 2014 15:43:56 -0600 -Subject: [PATCH 4/9] fix mvsdio eMMC timing - -These changes from Globalscale change the MMC timing to allow the eMMC versions -of the Mirabox and SMILE Plug to work. - -Signed-off-by: Kevin Mihelich ---- - drivers/mmc/host/mvsdio.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/drivers/mmc/host/mvsdio.c b/drivers/mmc/host/mvsdio.c -index 74a0a7fbbf7f..92eadb116762 100644 ---- a/drivers/mmc/host/mvsdio.c -+++ b/drivers/mmc/host/mvsdio.c -@@ -90,7 +90,7 @@ static int mvsd_setup_data(struct mvsd_host *host, struct mmc_data *data) - tmout_index = fls(tmout - 1) - 12; - if (tmout_index < 0) - tmout_index = 0; -- if (tmout_index > MVSD_HOST_CTRL_TMOUT_MAX) -+// if (tmout_index > MVSD_HOST_CTRL_TMOUT_MAX) //by steven, try to setup the timeout to maximum value - tmout_index = MVSD_HOST_CTRL_TMOUT_MAX; - - dev_dbg(host->dev, "data %s at 0x%08x: blocks=%d blksz=%d tmout=%u (%d)\n", -@@ -613,6 +613,8 @@ static void mvsd_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) - u32 m = DIV_ROUND_UP(host->base_clock, ios->clock) - 1; - if (m > MVSD_BASE_DIV_MAX) - m = MVSD_BASE_DIV_MAX; -+ if(ios->clock==50000000 ) //by steven -+ m=1; - mvsd_write(MVSD_CLK_DIV, m); - host->clock = ios->clock; - host->ns_per_clk = 1000000000 / (host->base_clock / (m+1)); --- -2.23.0 - diff --git a/libre/linux-libre-lts/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch b/libre/linux-libre-lts/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch deleted file mode 100644 index e95960163..000000000 --- a/libre/linux-libre-lts/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 585c73f82751043ebcf1e097a29bb9c6d2c3fbd1 Mon Sep 17 00:00:00 2001 -From: popcornmix -Date: Tue, 18 Feb 2014 01:43:50 -0300 -Subject: [PATCH 5/9] net/smsc95xx: Allow mac address to be set as a parameter - ---- - drivers/net/usb/smsc95xx.c | 56 ++++++++++++++++++++++++++++++++++++++ - 1 file changed, 56 insertions(+) - -diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c -index 355be77f4241..c94a7193e0b9 100644 ---- a/drivers/net/usb/smsc95xx.c -+++ b/drivers/net/usb/smsc95xx.c -@@ -48,6 +48,7 @@ - #define SUSPEND_SUSPEND3 (0x08) - #define SUSPEND_ALLMODES (SUSPEND_SUSPEND0 | SUSPEND_SUSPEND1 | \ - SUSPEND_SUSPEND2 | SUSPEND_SUSPEND3) -+#define MAC_ADDR_LEN (6) - - #define CARRIER_CHECK_DELAY (2 * HZ) - -@@ -70,6 +71,10 @@ static bool turbo_mode = true; - module_param(turbo_mode, bool, 0644); - MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction"); - -+static char *macaddr = ":"; -+module_param(macaddr, charp, 0); -+MODULE_PARM_DESC(macaddr, "MAC address"); -+ - static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index, - u32 *data, int in_pm) - { -@@ -899,8 +904,59 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd) - return generic_mii_ioctl(&dev->mii, if_mii(rq), cmd, NULL); - } - -+/* Check the macaddr module parameter for a MAC address */ -+static int smsc95xx_is_macaddr_param(struct usbnet *dev, u8 *dev_mac) -+{ -+ int i, j, got_num, num; -+ u8 mtbl[MAC_ADDR_LEN]; -+ -+ if (macaddr[0] == ':') -+ return 0; -+ -+ i = 0; -+ j = 0; -+ num = 0; -+ got_num = 0; -+ while (j < MAC_ADDR_LEN) { -+ if (macaddr[i] && macaddr[i] != ':') { -+ got_num++; -+ if ('0' <= macaddr[i] && macaddr[i] <= '9') -+ num = num * 16 + macaddr[i] - '0'; -+ else if ('A' <= macaddr[i] && macaddr[i] <= 'F') -+ num = num * 16 + 10 + macaddr[i] - 'A'; -+ else if ('a' <= macaddr[i] && macaddr[i] <= 'f') -+ num = num * 16 + 10 + macaddr[i] - 'a'; -+ else -+ break; -+ i++; -+ } else if (got_num == 2) { -+ mtbl[j++] = (u8) num; -+ num = 0; -+ got_num = 0; -+ i++; -+ } else { -+ break; -+ } -+ } -+ -+ if (j == MAC_ADDR_LEN) { -+ netif_dbg(dev, ifup, dev->net, "Overriding MAC address with: " -+ "%02x:%02x:%02x:%02x:%02x:%02x\n", mtbl[0], mtbl[1], mtbl[2], -+ mtbl[3], mtbl[4], mtbl[5]); -+ for (i = 0; i < MAC_ADDR_LEN; i++) -+ dev_mac[i] = mtbl[i]; -+ return 1; -+ } else { -+ return 0; -+ } -+} -+ - static void smsc95xx_init_mac_address(struct usbnet *dev) - { -+ /* Check module parameters */ -+ if (smsc95xx_is_macaddr_param(dev, dev->net->dev_addr)) -+ return; -+ - const u8 *mac_addr; - - /* maybe the boot loader passed the MAC address in devicetree */ --- -2.23.0 - diff --git a/libre/linux-libre-lts/0006-set-default-cubietruck-led-triggers.patch b/libre/linux-libre-lts/0006-set-default-cubietruck-led-triggers.patch deleted file mode 100644 index efbbb49c4..000000000 --- a/libre/linux-libre-lts/0006-set-default-cubietruck-led-triggers.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 8fb925eac047386a298303e501042a0fd30e9ef9 Mon Sep 17 00:00:00 2001 -From: Kevin Mihelich -Date: Sat, 14 Feb 2015 12:32:27 +0100 -Subject: [PATCH 6/9] set default cubietruck led triggers - -Signed-off-by: Kevin Mihelich ---- - arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts -index 8c8dee6ea461..4f52a11b913e 100644 ---- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts -+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts -@@ -78,6 +78,7 @@ - blue { - label = "cubietruck:blue:usr"; - gpios = <&pio 7 21 GPIO_ACTIVE_HIGH>; -+ linux,default-trigger = "heartbeat"; - }; - - orange { -@@ -93,6 +94,7 @@ - green { - label = "cubietruck:green:usr"; - gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; -+ linux,default-trigger = "mmc0"; - }; - }; - --- -2.23.0 - diff --git a/libre/linux-libre-lts/0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch b/libre/linux-libre-lts/0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch deleted file mode 100644 index 40413f479..000000000 --- a/libre/linux-libre-lts/0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 054ac5f337ad4f79b22c9b191dc47f001722f0d6 Mon Sep 17 00:00:00 2001 -From: Kevin Mihelich -Date: Thu, 11 Aug 2016 00:42:37 -0600 -Subject: [PATCH 7/9] exynos4412-odroid: set higher minimum buck2 regulator - voltage - -Set a higher minimum voltage to help reboot issue. -http://www.spinics.net/lists/linux-samsung-soc/msg54434.html - -Signed-off-by: Kevin Mihelich ---- - arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi -index ea55f377d17c..a7bfc58bbc79 100644 ---- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi -+++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi -@@ -430,7 +430,7 @@ - - buck2_reg: BUCK2 { - regulator-name = "vdd_arm"; -- regulator-min-microvolt = <900000>; -+ regulator-min-microvolt = <1100000>; - regulator-max-microvolt = <1350000>; - regulator-always-on; - regulator-boot-on; --- -2.23.0 - diff --git a/libre/linux-libre-lts/0008-ARM-dove-enable-ethernet-on-D3Plug.patch b/libre/linux-libre-lts/0008-ARM-dove-enable-ethernet-on-D3Plug.patch deleted file mode 100644 index b1687bf5c..000000000 --- a/libre/linux-libre-lts/0008-ARM-dove-enable-ethernet-on-D3Plug.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 8b696580b73c7f6e7f3e9635bd2ad1c5c59e9082 Mon Sep 17 00:00:00 2001 -From: Kevin Mihelich -Date: Sun, 7 May 2017 13:32:25 -0600 -Subject: [PATCH 8/9] ARM: dove: enable ethernet on D3Plug - -Signed-off-by: Kevin Mihelich ---- - arch/arm/boot/dts/dove-d3plug.dts | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/arch/arm/boot/dts/dove-d3plug.dts b/arch/arm/boot/dts/dove-d3plug.dts -index 826026c28f90..a4c9963e1261 100644 ---- a/arch/arm/boot/dts/dove-d3plug.dts -+++ b/arch/arm/boot/dts/dove-d3plug.dts -@@ -61,6 +61,13 @@ - &uart0 { status = "okay"; }; - &sata0 { status = "okay"; }; - &i2c0 { status = "okay"; }; -+&mdio { status = "okay"; }; -+ð { status = "okay"; }; -+ -+ðphy { -+ compatible = "marvell,88e1310"; -+ reg = <1>; -+}; - - /* Samsung M8G2F eMMC */ - &sdio0 { --- -2.23.0 - diff --git a/libre/linux-libre-lts/0009-USB-Armory-MkII-support.patch b/libre/linux-libre-lts/0009-USB-Armory-MkII-support.patch deleted file mode 100644 index 4c8f8fed3..000000000 --- a/libre/linux-libre-lts/0009-USB-Armory-MkII-support.patch +++ /dev/null @@ -1,555 +0,0 @@ -From 55e7015aa06dd943b55a0101beddae1c811a2be5 Mon Sep 17 00:00:00 2001 -From: Kevin Mihelich -Date: Sun, 11 Aug 2019 12:34:17 -0600 -Subject: [PATCH 9/9] USB Armory MkII support - ---- - arch/arm/boot/dts/Makefile | 2 + - arch/arm/boot/dts/imx6ul-usbarmory.dts | 255 +++++++++++++++++++++++ - arch/arm/boot/dts/imx6ull-usbarmory.dts | 256 ++++++++++++++++++++++++ - 3 files changed, 513 insertions(+) - create mode 100644 arch/arm/boot/dts/imx6ul-usbarmory.dts - create mode 100644 arch/arm/boot/dts/imx6ull-usbarmory.dts - -diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index a0f92b9dbd7d..5d6e9f76f6db 100644 ---- a/arch/arm/boot/dts/Makefile -+++ b/arch/arm/boot/dts/Makefile -@@ -580,9 +580,11 @@ dtb-$(CONFIG_SOC_IMX6UL) += \ - imx6ul-tx6ul-0010.dtb \ - imx6ul-tx6ul-0011.dtb \ - imx6ul-tx6ul-mainboard.dtb \ -+ imx6ul-usbarmory.dtb \ - imx6ull-14x14-evk.dtb \ - imx6ull-colibri-eval-v3.dtb \ - imx6ull-colibri-wifi-eval-v3.dtb \ -+ imx6ull-usbarmory.dtb \ - imx6ull-phytec-segin-ff-rdk-nand.dtb \ - imx6ull-phytec-segin-ff-rdk-emmc.dtb \ - imx6ull-phytec-segin-lc-rdk-nand.dtb \ -diff --git a/arch/arm/boot/dts/imx6ul-usbarmory.dts b/arch/arm/boot/dts/imx6ul-usbarmory.dts -new file mode 100644 -index 000000000000..3936ef8a64f1 ---- /dev/null -+++ b/arch/arm/boot/dts/imx6ul-usbarmory.dts -@@ -0,0 +1,255 @@ -+/* -+ * USB armory Mk II device tree file -+ * https://inversepath.com/usbarmory -+ * -+ * Copyright (C) 2019, F-Secure Corporation -+ * Andrej Rosano -+ * -+ * This file is dual-licensed: you can use it either under the terms -+ * of the GPL or the X11 license, at your option. Note that this dual -+ * licensing only applies to this file, and not this project as a -+ * whole. -+ * -+ * a) This file is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of the -+ * License, or (at your option) any later version. -+ * -+ * This file is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * Or, alternatively, -+ * -+ * b) Permission is hereby granted, free of charge, to any person -+ * obtaining a copy of this software and associated documentation -+ * files (the "Software"), to deal in the Software without -+ * restriction, including without limitation the rights to use, -+ * copy, modify, merge, publish, distribute, sublicense, and/or -+ * sell copies of the Software, and to permit persons to whom the -+ * Software is furnished to do so, subject to the following -+ * conditions: -+ * -+ * The above copyright notice and this permission notice shall be -+ * included in all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -+ * OTHER DEALINGS IN THE SOFTWARE. -+ */ -+ -+/dts-v1/; -+ -+#include "imx6ul.dtsi" -+ -+/ { -+ model = "F-Secure USB armory Mk II"; -+ compatible = "inversepath,imx6ul-usbarmory-mkII", "fsl,imx6ul"; -+ -+ chosen { -+ stdout-path = &uart2; -+ }; -+ -+ memory { -+ reg = <0x80000000 0x20000000>; -+ }; -+ -+ leds { -+ compatible = "gpio-leds"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_led>; -+ -+ led-white { -+ label = "LED_WHITE"; -+ gpios = <&gpio4 21 GPIO_ACTIVE_LOW>; -+ linux,default-trigger = "heartbeat"; -+ }; -+ -+ led-blue { -+ label = "LED_BLUE"; -+ gpios = <&gpio4 22 GPIO_ACTIVE_LOW>; -+ }; -+ }; -+ -+ regulators { -+ compatible = "simple-bus"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ reg_sd1_vmmc: sd1_regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "VSD_3V3"; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ }; -+ }; -+}; -+ -+&uart1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_bluetooth>; -+ uart-has-rtscts; -+ status = "okay"; -+}; -+ -+&uart2 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_uart2>; -+ status = "okay"; -+}; -+ -+&usdhc1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_usdhc1>; -+ no-1-8-v; -+ keep-power-in-suspend; -+ wakeup-source; -+ status = "okay"; -+}; -+ -+&usdhc2 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_usdhc2>; -+ non-removable; -+ status = "okay"; -+}; -+ -+&i2c1 { -+ pinctrl-0 = <&pinctrl_i2c1>; -+ status = "okay"; -+}; -+ -+&iomuxc { -+ pinctrl_uart2: uart2grp { -+ fsl,pins = < -+ MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1 -+ MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1 -+ >; -+ }; -+ -+ pinctrl_bluetooth: uart1grp { -+ fsl,pins = < -+ MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b0 /* BT_UART_TX */ -+ MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b0 /* BT_UART_RX */ -+ MX6UL_PAD_UART1_CTS_B__UART1_DCE_CTS 0x1b0b0 /* BT_UART_CTS */ -+ MX6UL_PAD_GPIO1_IO07__UART1_DCE_RTS 0x130b0 /* BT_UART_RTS */ -+ MX6UL_PAD_UART3_TX_DATA__GPIO1_IO24 0x1f020 /* BT_UART_DSR */ -+ MX6UL_PAD_UART3_RX_DATA__GPIO1_IO25 0x10020 /* BT_UART_DTR */ -+ MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0x1f020 /* BT_SWDCLK */ -+ MX6UL_PAD_GPIO1_IO05__GPIO1_IO05 0x1f020 /* BT_SWDIO */ -+ MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x1f020 /* BT_RESET */ -+ MX6UL_PAD_UART3_RTS_B__GPIO1_IO27 0x1f020 /* BT_SWITCH_1 */ -+ MX6UL_PAD_UART3_CTS_B__GPIO1_IO26 0x1f020 /* BT_SWITCH_2 */ -+ >; -+ }; -+ -+ pinctrl_i2c1: i2c1grp { -+ fsl,pins = < -+ MX6UL_PAD_GPIO1_IO02__I2C1_SCL 0x4001b8b0 -+ MX6UL_PAD_GPIO1_IO03__I2C1_SDA 0x4001b8b0 -+ >; -+ }; -+ -+ pinctrl_led: ledgrp { -+ fsl,pins = < -+ MX6UL_PAD_CSI_DATA06__GPIO4_IO27 0x1f020 -+ MX6UL_PAD_CSI_DATA07__GPIO4_IO28 0x1f020 -+ >; -+ }; -+ -+ pinctrl_usdhc1: usdhc1grp { -+ fsl,pins = < -+ MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x1f019 -+ MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x1f019 -+ MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x1f019 -+ MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x1f019 -+ MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x1f019 -+ MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x1f019 -+ >; -+ }; -+ -+ pinctrl_usdhc2: usdhc2grp { -+ fsl,pins = < -+ MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x10071 -+ MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x17059 -+ MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x17059 -+ MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x17059 -+ MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x17059 -+ MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17059 -+ MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x17059 -+ MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x17059 -+ MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x17059 -+ MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x17059 -+ >; -+ }; -+}; -+ -+&aips2 { -+ crypto: caam@2140000 { -+ compatible = "fsl,imx6ul-caam", "fsl,sec-v4.0"; -+ #address-cells = <1>; -+ #size-cells = <1>; -+ reg = <0x2140000 0x3c000>; -+ ranges = <0 0x2140000 0x3c000>; -+ interrupts = ; -+ clocks = <&clks IMX6UL_CLK_CAAM_IPG>, <&clks IMX6UL_CLK_CAAM_ACLK>, -+ <&clks IMX6UL_CLK_CAAM_MEM>; -+ clock-names = "ipg", "aclk", "mem"; -+ -+ sec_jr0: jr0@1000 { -+ compatible = "fsl,sec-v4.0-job-ring"; -+ reg = <0x1000 0x1000>; -+ interrupts = ; -+ }; -+ -+ sec_jr1: jr1@2000 { -+ compatible = "fsl,sec-v4.0-job-ring"; -+ reg = <0x2000 0x1000>; -+ interrupts = ; -+ }; -+ sec_jr2: jr2@3000 { -+ compatible = "fsl,sec-v4.0-job-ring"; -+ reg = <0x3000 0x1000>; -+ interrupts = ; -+ }; -+ }; -+}; -+ -+/ { -+ soc { -+ caam_sm: caam-sm@00100000 { -+ compatible = "fsl,imx7d-caam-sm", "fsl,imx6q-caam-sm"; -+ reg = <0x00100000 0x3fff>; -+ }; -+ -+ irq_sec_vio: caam_secvio { -+ compatible = "fsl,imx7d-caam-secvio", "fsl,imx6q-caam-secvio"; -+ interrupts = ; -+ }; -+ }; -+ -+ caam_keyblob: caam-keyblob { -+ compatible = "fsl,sec-v4.0-keyblob"; -+ status = "okay"; -+ }; -+}; -+ -+&usbotg1 { -+ dr_mode = "otg"; -+ disable-over-current; -+ tpl-support; -+ status = "okay"; -+}; -+ -+&usbotg2 { -+ dr_mode = "host"; -+ disable-over-current; -+ tpl-support; -+ status = "okay"; -+}; -diff --git a/arch/arm/boot/dts/imx6ull-usbarmory.dts b/arch/arm/boot/dts/imx6ull-usbarmory.dts -new file mode 100644 -index 000000000000..85cf30bff527 ---- /dev/null -+++ b/arch/arm/boot/dts/imx6ull-usbarmory.dts -@@ -0,0 +1,256 @@ -+/* -+ * USB armory Mk II device tree file -+ * https://inversepath.com/usbarmory -+ * -+ * Copyright (C) 2019, F-Secure Corporation -+ * Andrej Rosano -+ * -+ * This file is dual-licensed: you can use it either under the terms -+ * of the GPL or the X11 license, at your option. Note that this dual -+ * licensing only applies to this file, and not this project as a -+ * whole. -+ * -+ * a) This file is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of the -+ * License, or (at your option) any later version. -+ * -+ * This file is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * Or, alternatively, -+ * -+ * b) Permission is hereby granted, free of charge, to any person -+ * obtaining a copy of this software and associated documentation -+ * files (the "Software"), to deal in the Software without -+ * restriction, including without limitation the rights to use, -+ * copy, modify, merge, publish, distribute, sublicense, and/or -+ * sell copies of the Software, and to permit persons to whom the -+ * Software is furnished to do so, subject to the following -+ * conditions: -+ * -+ * The above copyright notice and this permission notice shall be -+ * included in all copies or substantial portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -+ * OTHER DEALINGS IN THE SOFTWARE. -+ */ -+ -+/dts-v1/; -+ -+#include "imx6ul.dtsi" -+ -+/ { -+ model = "F-Secure USB armory Mk II"; -+ compatible = "inversepath,imx6ull-usbarmory-mkII", "fsl,imx6ull"; -+ -+ chosen { -+ stdout-path = &uart2; -+ }; -+ -+ memory { -+ reg = <0x80000000 0x20000000>; -+ }; -+ -+ leds { -+ compatible = "gpio-leds"; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_led>; -+ -+ led-white { -+ label = "LED_WHITE"; -+ gpios = <&gpio4 21 GPIO_ACTIVE_LOW>; -+ linux,default-trigger = "heartbeat"; -+ }; -+ -+ led-blue { -+ label = "LED_BLUE"; -+ gpios = <&gpio4 22 GPIO_ACTIVE_LOW>; -+ }; -+ }; -+ -+ regulators { -+ compatible = "simple-bus"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ -+ reg_sd1_vmmc: sd1_regulator { -+ compatible = "regulator-fixed"; -+ regulator-name = "VSD_3V3"; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ }; -+ }; -+}; -+ -+/* Delete CAAM node in AIPS-2 (i.MX6UL specific) */ -+/delete-node/ &crypto; -+ -+&cpu0 { -+ operating-points = < -+ /* kHz uV */ -+ 900000 1275000 -+ 792000 1225000 -+ 528000 1175000 -+ 396000 1025000 -+ 198000 950000 -+ >; -+ fsl,soc-operating-points = < -+ /* KHz uV */ -+ 900000 1250000 -+ 792000 1175000 -+ 528000 1175000 -+ 396000 1175000 -+ 198000 1175000 -+ >; -+}; -+ -+&uart1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_bluetooth>; -+ uart-has-rtscts; -+ status = "okay"; -+}; -+ -+&uart2 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_uart2>; -+ status = "okay"; -+}; -+ -+&usdhc1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_usdhc1>; -+ no-1-8-v; -+ keep-power-in-suspend; -+ wakeup-source; -+ status = "okay"; -+}; -+ -+&usdhc2 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&pinctrl_usdhc2>; -+ non-removable; -+ status = "okay"; -+}; -+ -+&i2c1 { -+ pinctrl-0 = <&pinctrl_i2c1>; -+ status = "okay"; -+}; -+ -+&iomuxc { -+ pinctrl_uart2: uart2grp { -+ fsl,pins = < -+ MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1 -+ MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1 -+ >; -+ }; -+ -+ pinctrl_bluetooth: uart1grp { -+ fsl,pins = < -+ MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b0 /* BT_UART_TX */ -+ MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b0 /* BT_UART_RX */ -+ MX6UL_PAD_UART1_CTS_B__UART1_DCE_CTS 0x1b0b0 /* BT_UART_CTS */ -+ MX6UL_PAD_GPIO1_IO07__UART1_DCE_RTS 0x130b0 /* BT_UART_RTS */ -+ MX6UL_PAD_UART3_TX_DATA__GPIO1_IO24 0x1f020 /* BT_UART_DSR */ -+ MX6UL_PAD_UART3_RX_DATA__GPIO1_IO25 0x10020 /* BT_UART_DTR */ -+ MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0x1f020 /* BT_SWDCLK */ -+ MX6UL_PAD_GPIO1_IO05__GPIO1_IO05 0x1f020 /* BT_SWDIO */ -+ MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x1f020 /* BT_RESET */ -+ MX6UL_PAD_UART3_RTS_B__GPIO1_IO27 0x1f020 /* BT_SWITCH_1 */ -+ MX6UL_PAD_UART3_CTS_B__GPIO1_IO26 0x1f020 /* BT_SWITCH_2 */ -+ >; -+ }; -+ -+ pinctrl_i2c1: i2c1grp { -+ fsl,pins = < -+ MX6UL_PAD_GPIO1_IO02__I2C1_SCL 0x4001b8b0 -+ MX6UL_PAD_GPIO1_IO03__I2C1_SDA 0x4001b8b0 -+ >; -+ }; -+ -+ pinctrl_led: ledgrp { -+ fsl,pins = < -+ MX6UL_PAD_CSI_DATA06__GPIO4_IO27 0x1f020 -+ MX6UL_PAD_CSI_DATA07__GPIO4_IO28 0x1f020 -+ >; -+ }; -+ -+ pinctrl_usdhc1: usdhc1grp { -+ fsl,pins = < -+ MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x1f019 -+ MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x1f019 -+ MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x1f019 -+ MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x1f019 -+ MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x1f019 -+ MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x1f019 -+ >; -+ }; -+ -+ pinctrl_usdhc2: usdhc2grp { -+ fsl,pins = < -+ MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x10071 -+ MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x17059 -+ MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x17059 -+ MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x17059 -+ MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x17059 -+ MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17059 -+ MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x17059 -+ MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x17059 -+ MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x17059 -+ MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x17059 -+ >; -+ }; -+}; -+ -+/ { -+ soc { -+ aips3: aips-bus@02200000 { -+ compatible = "fsl,aips-bus", "simple-bus"; -+ #address-cells = <1>; -+ #size-cells = <1>; -+ reg = <0x02200000 0x100000>; -+ ranges; -+ -+ dcp: dcp@02280000 { -+ compatible = "fsl,imx6ull-dcp", "fsl,imx6sl-dcp", "fsl,imx28-dcp"; -+ reg = <0x02280000 0x4000>; -+ interrupts = , -+ , -+ ; -+ clocks = <&clks IMX6ULL_CLK_DCP_CLK>; -+ clock-names = "dcp"; -+ }; -+ -+ rngb: rngb@02284000 { -+ compatible = "fsl,imx6sl-rng", "fsl,imx25-rngb", "fsl,imx-rng", "imx-rng"; -+ reg = <0x02284000 0x4000>; -+ interrupts = ; -+ clocks = <&clks IMX6UL_CLK_DUMMY>; -+ }; -+ }; -+ }; -+}; -+ -+&usbotg1 { -+ dr_mode = "peripheral"; -+ disable-over-current; -+ tpl-support; -+ status = "okay"; -+}; -+ -+&usbotg2 { -+ dr_mode = "host"; -+ disable-over-current; -+ tpl-support; -+ status = "okay"; -+}; --- -2.23.0 - diff --git a/libre/linux-libre-lts/PKGBUILD b/libre/linux-libre-lts/PKGBUILD index b499afa50..a803865df 100644 --- a/libre/linux-libre-lts/PKGBUILD +++ b/libre/linux-libre-lts/PKGBUILD @@ -14,20 +14,20 @@ _replacesoldkernels=() # '%' gets replaced with kernel suffix _replacesoldmodules=() # '%' gets replaced with kernel suffix pkgbase=linux-libre-lts -pkgver=5.4.85 +pkgver=5.10.19 pkgrel=1 pkgdesc='LTS Linux-libre' -rcnver=5.4.82 -rcnrel=armv7-x39 +rcnver=5.10.17 +rcnrel=armv7-x26 url='https://linux-libre.fsfla.org/' arch=(i686 x86_64 armv7h) license=(GPL2) makedepends=( - bc kmod libelf cpio perl tar xz + bc kmod libelf pahole cpio perl tar xz xmlto python-sphinx python-sphinx_rtd_theme graphviz imagemagick ) options=('!strip') -_srcname=linux-5.4 +_srcname=linux-5.10 source=( "https://linux-libre.fsfla.org/pub/linux-libre/releases/${_srcname##*-}-gnu/linux-libre-${_srcname##*-}-gnu.tar.xz"{,.sign} "https://linux-libre.fsfla.org/pub/linux-libre/releases/$pkgver-gnu/patch-${_srcname##*-}-gnu-$pkgver-gnu.xz"{,.sign} @@ -44,30 +44,24 @@ source=( 0002-fix-Atmel-maXTouch-touchscreen-support.patch # Arch Linux patches 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch - 0002-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch - sphinx-workaround.patch +# 0002-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch +# sphinx-workaround.patch +) +source_i686=( + # avoid using zstd compression in ultra mode (exhausts virtual memory) + no-ultra-zstd.patch ) source_armv7h=( # RCN patch (CM3 firmware deblobbed and bloatware removed) "https://repo.parabola.nu/other/rcn-libre/patches/$rcnver/rcn-libre-$rcnver-$rcnrel.patch"{,.sig} - # Arch Linux ARM patches - 0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch - 0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch - 0003-SMILE-Plug-device-tree-file.patch - 0004-fix-mvsdio-eMMC-timing.patch - 0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch - 0006-set-default-cubietruck-led-triggers.patch - 0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch - 0008-ARM-dove-enable-ethernet-on-D3Plug.patch - 0009-USB-Armory-MkII-support.patch ) validpgpkeys=( '474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva '6DB9C4B4F0D8C0DC432CF6E4227CA7C556B2BA78' # David P. ) -sha512sums=('0d0915133864eb031adfc6700066147dcf3e768a50a31c39754950c95ef4fd322dc701cd50af49c403ef0325adfcb07e354d5e46c1be3dcdd719a7a55c963f37' +sha512sums=('ccc52db049a66ff146d9fc84fb00e783f2d04211156233a382f87589fec7631b8fbb3e76bfd94279607b883d25f9745e6c7d2bd62b13311dc6b425002bd42ec0' 'SKIP' - '48121612535f6352d540557ee1f5e3d808db4d1118cfd35886670242cb87fa5c51ae8546e1847698f731732e9531dbf1a15de8bcbaae6288489d706eeee1b17c' + 'ed4bf87f5b9f4bcc3cdaa3aa7e4fb1e39d5182157d96c49aaff4d54f9454922330b1a47c74f40af62869ee81ff5e3cb78abcfe883af5463084180c556961f068' 'SKIP' '13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3' 'SKIP' @@ -75,26 +69,16 @@ sha512sums=('0d0915133864eb031adfc6700066147dcf3e768a50a31c39754950c95ef4fd322dc 'SKIP' '267295aa0cea65684968420c68b32f1a66a22d018b9d2b2c1ef14267bcf4cb68aaf7099d073cbfefe6c25c8608bdcbbd45f7ac8893fdcecbf1e621abdfe9ecc1' 'SKIP' - 'fc11b0ca6a25eb8458699de19ccf69c2f59152afa62cb861cd2ae43a5b43eb58ff881f93ee66887c1ce25b38e8bbec013fac6648b6283a8c802f1984c34c97a0' - 'ad502397780138036df3dd1649e9ec4d2fa485f7ba9dd1bc8bbdef58fb5ab14a6170663bfab0003c49965d5611bdeedadd8c669aa7b48c32cc1dbaab15c6e206' - '4d7e613ada85e48c9b57f9ea17b8445bd96fd6d16662186dba5073b40afc2b43de0bef5977afdaa82f789bfb7df3f99db1b2babd7588099df213fe60f00fed70' + '925ea83572cb743b9b105d58fd9ea79b89efa0baf4fbe5b29b2224b55ac739cdf5d32dd93ff6d8e20c4f3930b68f2c93915fdea40981ade5f9721928efcc0428' + '878559fa9e83a3095185633cd279437dc0dc8ad120614e008ecc0e361e87966af836ee569c82930da4a4daf9f5ad5314d0cc2b8636e5627ce9339a3f6b7213fd' + '6012fa7b97c15ada82f0c205ea983bebac8b672ca498e22f524d219bdd8715784b24ce7d457803e8221a945c3daff95c4e467f70a420b9c2aa95d627f2d160a9' '53103bf55b957b657039510527df0df01279dec59cda115a4d6454e4135025d4546167fa30bdc99107f232561c1e096d8328609ab5a876cf7017176f92ad3e0b' '02af4dd2a007e41db0c63822c8ab3b80b5d25646af1906dc85d0ad9bb8bbf5236f8e381d7f91cf99ed4b0978c50aee37cb9567cdeef65b7ec3d91b882852b1af' 'b8fe56e14006ab866970ddbd501c054ae37186ddc065bb869cf7d18db8c0d455118d5bda3255fb66a0dde38b544655cfe9040ffe46e41d19830b47959b2fb168' - '423d2a2327a47505a0f55b312fff8b00e439b3fcfbbe89dcc6e4f32f0e8239a779dd53978e1b4dbded8fd43bee10415516bb46e69bd52aad8d191f85713f19d3' - '315aaf31af7b869ba64e324ab33ffa5050b761ecbd7aa6b9a900b8b2ca655d80f840fca9973d4f12ec067519ba4ab2ebdd41d518a9fda4586377ee9c9e9a2fda' - '8081673a6594e5fc2fddc98fa434e99817aa822f7136d3c14c8d465fa7b93c9ac5d3a4150a5b632e25b1dc76a814dfa19d8aede37d58b935db288465b6585c58') -sha512sums_armv7h=('e52a25225f3dab659bae8b3b01ed93cf92e7915c8d4c4882ea61e658221b972cbca04b5608a99c9d1d0cdc9048378dfe9b23166e20ab1566d1c2b44862b1173e' - 'SKIP' - 'b576a9c40ba59485c350f71b9234d9e71f245e25b26382bd2f67019f3309c3b5705a6020eae0a9dfccacc763fb2056a5937c0a8ff4e64f99ba1d60f0b2acb03f' - '85a13a274d4cbaca3ddbe8eaf883f1a1184765f8d09d6d40bb32defbe0876cb0153513e8db8671d7fc053e383ced793b74245ff29364a760e1a52bb36ebc8e85' - 'f9ce0bb4f06be6f742d8a31384e90fdab1a4686f14d5a8845e0c341dcfa62ae59db933237174223de9b32f9d91f99125c20ede7dff664755f1d42ea0cecdefdb' - 'b32623904f984118ebdd8ec31816885d73776ed80a68fa23925e67451f28a8f080dd8545307bb2f857435894adfa8b3db7c8a99aa02b8b3f2b5f8e3223d98a47' - 'd114f1e69504413e81dd67684f5b1ce69aa09d5bc768c7eee96a7d6b7ec47b32cd8f02593c878b0e9091475467de36a3d7c478e34a39148fa849548f53637b84' - 'bc0c6b1726679498393be8d4c417c62e1f356fe5c617c71ff23532652fdd5f314e5bfc6172eaca79cd4806b81031bf2f879d7d1a6050ad4c616c04e6bdf93c2a' - 'b13bea6412580325dba0d02cf0dc712e860f659569ffcb968aa4836fdb2882448cfee4659a675a70affccae02c8d2589d80b7239eef5ae7b615162aeaa76f3bb' - 'cff59f974651614587313674455a968ae5390a5ca825d204f0e2f8de2b422d577b007f5297a398e2afeb33ed0d324d34ad58ff4cd56e645bd4ca9a6bdc1354c5' - '54adbec4b6b85cda901df7d2b3eb1f517f10d3528326e60c7afa4b49ccc7cfb43b0d1f574ceb5d7d03c94a0fbcc97c0ef785258292dd26ed46728355da27332c') + 'fccfdee24ffa1c3ed52595c2b1eb35e2e5a8fa717c0230494df71ad96d6e91b7c4ff84157be532e8af3bd913cb123f3ae61a4295d254944ec15968557f9a6221') +sha512sums_i686=('3a346ff5e0fdefafd28bc3dd0e4b6cd68e3f0014e59d1611d99f2edb8d074fd32649eeb0894a7e340e4f907b5cfc0e08e0753e0427a68dc113bb22835a892968') +sha512sums_armv7h=('1bbc67e63485b29bd0762bbd08e7df75c47ef84d6a1d1e56b6636bb4a6840b26c725a44911caf3e1b9fb14f27fc11b3ce9ed65d47310ac789231f0e75c937a67' + 'SKIP') _replacesarchkernel=("${_replacesarchkernel[@]/\%/${pkgbase#linux-libre}}") _replacesoldkernels=("${_replacesoldkernels[@]/\%/${pkgbase#linux-libre}}") @@ -137,6 +121,17 @@ prepare() { done fi + if [ "$CARCH" = "i686" ]; then + local src_i686 + for src_i686 in "${source_i686[@]}"; do + src_i686="${src_i686%%::*}" + src_i686="${src_i686##*/}" + [[ $src_i686 = *.patch ]] || continue + echo "Applying patch $src_i686..." + patch -Np1 < "../$src_i686" + done + fi + local src for src in "${source[@]}"; do src="${src%%::*}" @@ -165,9 +160,11 @@ _package() { depends=(coreutils kmod initramfs) optdepends=('crda: to set the correct wireless channels of your country' 'linux-libre-firmware: firmware images needed for some devices') - provides=("${_replacesarchkernel[@]/%/=$pkgver}" "LINUX-ABI_VERSION=$pkgver") - conflicts=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}") - replaces=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}") + provides=(VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE) + replaces=(wireguard-lts) + provides+=("${_replacesarchkernel[@]/%/=$pkgver}" "LINUX-ABI_VERSION=$pkgver") + conflicts+=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}") + replaces+=("${_replacesarchkernel[@]}" "${_replacesoldkernels[@]}" "${_replacesoldmodules[@]}") cd $_srcname local kernver="$( $@ + + quiet_cmd_zstd22 = ZSTD22 $@ +- cmd_zstd22 = { cat $(real-prereqs) | $(ZSTD) -22 --ultra; $(size_append); } > $@ ++ cmd_zstd22 = { cat $(real-prereqs) | $(ZSTD) -19; $(size_append); } > $@ + + # ASM offsets + # --------------------------------------------------------------------------- diff --git a/libre/linux-libre-lts/sphinx-workaround.patch b/libre/linux-libre-lts/sphinx-workaround.patch deleted file mode 100644 index 59aafa909..000000000 --- a/libre/linux-libre-lts/sphinx-workaround.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git i/Documentation/conf.py w/Documentation/conf.py -index a8fe845832bc..2dae2e830c26 100644 ---- i/Documentation/conf.py -+++ w/Documentation/conf.py -@@ -36,8 +36,8 @@ needs_sphinx = '1.3' - # Add any Sphinx extension module names here, as strings. They can be - # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom - # ones. --extensions = ['kerneldoc', 'rstFlatTable', 'kernel_include', 'cdomain', -- 'kfigure', 'sphinx.ext.ifconfig', 'automarkup'] -+extensions = ['kerneldoc', 'rstFlatTable', 'kernel_include', -+ 'kfigure', 'sphinx.ext.ifconfig'] - - # The name of the math extension changed on Sphinx 1.4 - if (major == 1 and minor > 3) or (major > 1): -- cgit v1.2.3