forked from coolsnowwolf/lede
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[bot] AutoMerging: merge all upstream's changes:
* https://github.com/coolsnowwolf/lede: Kernel: bump 5.10 to 5.10.148 (coolsnowwolf#10259) kernel: bump 5.19 to 5.19.16 kernel: bump 6.0 to 6.0.2 x86: add rts5139 patch for 5.15/5.19/6.0 x86: move rts5139 driver to geneic x86: switch test kernel to 6.0 kernel: fix linux 6.0 drm support kernel: add linux 6.0 stable release support kernel: bump 5.19 to 5.19.15 (coolsnowwolf#10247) Update README.md x86: add Realtek USB 2.0 card readers boot support for ChangWang CW56-58 github workflows: avoid skipping (coolsnowwolf#10243) Version update to R22.10.10 x86: add amd Ryzen APU vage/rdna gpu support x86: add support for AMD Zen CPU temperature sensor
Showing
194 changed files
with
51,817 additions
and
261 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
LINUX_VERSION-5.10 = .147 | ||
LINUX_KERNEL_HASH-5.10.147 = 85253abf097eb5013b988a400eb022eed0e0626e7e0a7daa3ab4b6bcabbced9a | ||
LINUX_VERSION-5.10 = .148 | ||
LINUX_KERNEL_HASH-5.10.148 = 12523f6be221067094ec541b196bce70493f7f44f031b3c4711d82e290c6e956 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
LINUX_VERSION-5.19 = .14 | ||
LINUX_KERNEL_HASH-5.19.14 = 1ded27e1c4a8b51df5f93f2f772827183b805d9ab4771071307c13ee86cd1ac1 | ||
LINUX_VERSION-5.19 = .16 | ||
LINUX_KERNEL_HASH-5.19.16 = a1ebaf667e1059ae2d72aa6374a4d6e2febc0b8ccda6a124687acc2ea961e08d |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
LINUX_VERSION-6.0 = .2 | ||
LINUX_KERNEL_HASH-6.0.2 = a13c26388cacccb684cd9f51109596a280c8186b7e95174d31ee7c5718e95c9d |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -243,8 +243,8 @@ define KernelPackage/drm | |
SUBMENU:=$(VIDEO_MENU) | ||
TITLE:=Direct Rendering Manager (DRM) support | ||
HIDDEN:=1 | ||
DEPENDS:=+kmod-dma-buf +kmod-i2c-core +kmod-i2c-algo-bit +PACKAGE_kmod-backlight:kmod-backlight \ | ||
+(LINUX_5_15||LINUX_5_19):kmod-fb | ||
DEPENDS:=+kmod-dma-buf +kmod-i2c-core +kmod-i2c-algo-bit +PACKAGE_kmod-backlight:kmod-backlight \ | ||
+(LINUX_5_15||LINUX_5_19||LINUX_6_0):kmod-fb | ||
KCONFIG:= \ | ||
CONFIG_DRM \ | ||
CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y \ | ||
|
@@ -297,11 +297,29 @@ endef | |
|
||
$(eval $(call KernelPackage,drm-kms-helper)) | ||
|
||
define KernelPackage/drm-display-helper | ||
SUBMENU:=$(VIDEO_MENU) | ||
TITLE:=DRM helpers for display adapters drivers | ||
DEPENDS:=@DISPLAY_SUPPORT +kmod-drm @(LINUX_5_19||LINUX_6_0) | ||
KCONFIG:= \ | ||
CONFIG_DRM_DISPLAY_HELPER \ | ||
CONFIG_DRM_BUDDY | ||
FILES:=$(LINUX_DIR)/drivers/gpu/drm/display/drm_display_helper.ko \ | ||
$(LINUX_DIR)/drivers/gpu/drm/drm_buddy.ko | ||
AUTOLOAD:=$(call AutoProbe,drm_display_helper) | ||
endef | ||
|
||
define KernelPackage/drm-display-helper/description | ||
DRM helpers for display adapters drivers. | ||
endef | ||
|
||
$(eval $(call KernelPackage,drm-display-helper)) | ||
|
||
define KernelPackage/drm-amdgpu | ||
SUBMENU:=$(VIDEO_MENU) | ||
TITLE:=AMDGPU DRM support | ||
DEPENDS:=@TARGET_x86 @DISPLAY_SUPPORT +kmod-backlight +kmod-drm-ttm \ | ||
+kmod-drm-kms-helper +kmod-i2c-algo-bit +amdgpu-firmware | ||
+kmod-drm-kms-helper +kmod-i2c-algo-bit +amdgpu-firmware +(LINUX_5_19||LINUX_6_0):kmod-drm-display-helper | ||
KCONFIG:=CONFIG_DRM_AMDGPU \ | ||
CONFIG_DRM_AMDGPU_SI=y \ | ||
CONFIG_DRM_AMDGPU_CIK=y \ | ||
|
@@ -1075,7 +1093,7 @@ $(eval $(call KernelPackage,video-gspca-konica)) | |
define KernelPackage/drm-i915 | ||
SUBMENU:=$(VIDEO_MENU) | ||
TITLE:=Intel GPU drm support | ||
DEPENDS:=@TARGET_x86 +kmod-drm-ttm +kmod-drm-kms-helper +i915-firmware | ||
DEPENDS:=@TARGET_x86 +kmod-drm-ttm +kmod-drm-kms-helper +i915-firmware +(LINUX_5_19||LINUX_6_0):kmod-drm-display-helper | ||
KCONFIG:= \ | ||
CONFIG_INTEL_GTT \ | ||
CONFIG_DRM_I915 \ | ||
|
@@ -1094,9 +1112,7 @@ define KernelPackage/drm-i915 | |
CONFIG_DRM_I915_USERPTR=y \ | ||
CONFIG_DRM_I915_WERROR=n | ||
FILES:= \ | ||
$(LINUX_DIR)/drivers/gpu/drm/i915/i915.ko \ | ||
$(LINUX_DIR)/drivers/gpu/drm/[email protected] \ | ||
$(LINUX_DIR)/drivers/gpu/drm/display/[email protected] | ||
$(LINUX_DIR)/drivers/gpu/drm/i915/i915.ko | ||
AUTOLOAD:=$(call AutoProbe,i915) | ||
endef | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,11 @@ | ||
#!/bin/sh | ||
|
||
MHz=`grep 'MHz' /proc/cpuinfo | cut -c11- |sed -n '1p'` | ||
|
||
if [ "$(grep 'AMD' /proc/cpuinfo)" != "" ]; then | ||
TEMP=`sensors 2>/dev/null | grep 'Tctl' | cut -c16-` | ||
else | ||
TEMP=`sensors 2>/dev/null | grep 'Core 0' | cut -c12-` | ||
fi | ||
|
||
echo "$MHz MHz $TEMP " |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
75 changes: 75 additions & 0 deletions
75
target/linux/generic/backport-6.0/001-CONFIG_INITRAMFS_PRESERVE_MTIME.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
--- a/init/Kconfig | ||
+++ b/init/Kconfig | ||
@@ -1386,16 +1386,6 @@ config BOOT_CONFIG_EMBED_FILE | ||
This bootconfig will be used if there is no initrd or no other | ||
bootconfig in the initrd. | ||
|
||
-config INITRAMFS_PRESERVE_MTIME | ||
- bool "Preserve cpio archive mtimes in initramfs" | ||
- default y | ||
- help | ||
- Each entry in an initramfs cpio archive carries an mtime value. When | ||
- enabled, extracted cpio items take this mtime, with directory mtime | ||
- setting deferred until after creation of any child entries. | ||
- | ||
- If unsure, say Y. | ||
- | ||
choice | ||
prompt "Compiler optimization level" | ||
default CC_OPTIMIZE_FOR_PERFORMANCE | ||
--- a/init/initramfs.c | ||
+++ b/init/initramfs.c | ||
@@ -127,17 +127,15 @@ static void __init free_hash(void) | ||
} | ||
} | ||
|
||
-#ifdef CONFIG_INITRAMFS_PRESERVE_MTIME | ||
-static void __init do_utime(char *filename, time64_t mtime) | ||
+static long __init do_utime(char *filename, time64_t mtime) | ||
{ | ||
- struct timespec64 t[2] = { { .tv_sec = mtime }, { .tv_sec = mtime } }; | ||
- init_utimes(filename, t); | ||
-} | ||
+ struct timespec64 t[2]; | ||
|
||
-static void __init do_utime_path(const struct path *path, time64_t mtime) | ||
-{ | ||
- struct timespec64 t[2] = { { .tv_sec = mtime }, { .tv_sec = mtime } }; | ||
- vfs_utimes(path, t); | ||
+ t[0].tv_sec = mtime; | ||
+ t[0].tv_nsec = 0; | ||
+ t[1].tv_sec = mtime; | ||
+ t[1].tv_nsec = 0; | ||
+ return init_utimes(filename, t); | ||
} | ||
|
||
static __initdata LIST_HEAD(dir_list); | ||
@@ -170,12 +168,6 @@ static void __init dir_utime(void) | ||
kfree(de); | ||
} | ||
} | ||
-#else | ||
-static void __init do_utime(char *filename, time64_t mtime) {} | ||
-static void __init do_utime_path(const struct path *path, time64_t mtime) {} | ||
-static void __init dir_add(const char *name, time64_t mtime) {} | ||
-static void __init dir_utime(void) {} | ||
-#endif | ||
|
||
static __initdata time64_t mtime; | ||
|
||
@@ -407,10 +399,14 @@ static int __init do_name(void) | ||
static int __init do_copy(void) | ||
{ | ||
if (byte_count >= body_len) { | ||
+ struct timespec64 t[2] = { }; | ||
if (xwrite(wfile, victim, body_len, &wfile_pos) != body_len) | ||
error("write error"); | ||
|
||
- do_utime_path(&wfile->f_path, mtime); | ||
+ t[0].tv_sec = mtime; | ||
+ t[1].tv_sec = mtime; | ||
+ vfs_utimes(&wfile->f_path, t); | ||
+ | ||
fput(wfile); | ||
if (csum_present && io_csum != hdr_csum) | ||
error("bad data checksum"); |
122 changes: 122 additions & 0 deletions
122
target/linux/generic/backport-6.0/002-struct-net_device.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,122 @@ | ||
--- a/include/linux/netdevice.h | ||
+++ b/include/linux/netdevice.h | ||
@@ -2133,8 +2133,6 @@ struct net_device { | ||
|
||
/* Protocol-specific pointers */ | ||
|
||
- struct in_device __rcu *ip_ptr; | ||
- struct inet6_dev __rcu *ip6_ptr; | ||
#if IS_ENABLED(CONFIG_VLAN_8021Q) | ||
struct vlan_info __rcu *vlan_info; | ||
#endif | ||
@@ -2147,18 +2145,16 @@ struct net_device { | ||
#if IS_ENABLED(CONFIG_ATALK) | ||
void *atalk_ptr; | ||
#endif | ||
+ struct in_device __rcu *ip_ptr; | ||
#if IS_ENABLED(CONFIG_DECNET) | ||
struct dn_dev __rcu *dn_ptr; | ||
#endif | ||
+ struct inet6_dev __rcu *ip6_ptr; | ||
#if IS_ENABLED(CONFIG_AX25) | ||
void *ax25_ptr; | ||
#endif | ||
-#if IS_ENABLED(CONFIG_CFG80211) | ||
struct wireless_dev *ieee80211_ptr; | ||
-#endif | ||
-#if IS_ENABLED(CONFIG_IEEE802154) || IS_ENABLED(CONFIG_6LOWPAN) | ||
struct wpan_dev *ieee802154_ptr; | ||
-#endif | ||
#if IS_ENABLED(CONFIG_MPLS_ROUTING) | ||
struct mpls_dev __rcu *mpls_ptr; | ||
#endif | ||
--- a/include/net/cfg80211.h | ||
+++ b/include/net/cfg80211.h | ||
@@ -8379,9 +8379,7 @@ int cfg80211_register_netdevice(struct n | ||
*/ | ||
static inline void cfg80211_unregister_netdevice(struct net_device *dev) | ||
{ | ||
-#if IS_ENABLED(CONFIG_CFG80211) | ||
cfg80211_unregister_wdev(dev->ieee80211_ptr); | ||
-#endif | ||
} | ||
|
||
/** | ||
--- a/include/net/cfg802154.h | ||
+++ b/include/net/cfg802154.h | ||
@@ -373,7 +373,6 @@ struct wpan_dev { | ||
|
||
#define to_phy(_dev) container_of(_dev, struct wpan_phy, dev) | ||
|
||
-#if IS_ENABLED(CONFIG_IEEE802154) || IS_ENABLED(CONFIG_6LOWPAN) | ||
static inline int | ||
wpan_dev_hard_header(struct sk_buff *skb, struct net_device *dev, | ||
const struct ieee802154_addr *daddr, | ||
@@ -384,7 +383,6 @@ wpan_dev_hard_header(struct sk_buff *skb | ||
|
||
return wpan_dev->header_ops->create(skb, dev, daddr, saddr, len); | ||
} | ||
-#endif | ||
|
||
struct wpan_phy * | ||
wpan_phy_new(const struct cfg802154_ops *ops, size_t priv_size); | ||
--- a/net/batman-adv/hard-interface.c | ||
+++ b/net/batman-adv/hard-interface.c | ||
@@ -308,11 +308,9 @@ static bool batadv_is_cfg80211_netdev(st | ||
if (!net_device) | ||
return false; | ||
|
||
-#if IS_ENABLED(CONFIG_CFG80211) | ||
/* cfg80211 drivers have to set ieee80211_ptr */ | ||
if (net_device->ieee80211_ptr) | ||
return true; | ||
-#endif | ||
|
||
return false; | ||
} | ||
--- a/net/core/net-sysfs.c | ||
+++ b/net/core/net-sysfs.c | ||
@@ -747,6 +747,7 @@ static const struct attribute_group nets | ||
.attrs = netstat_attrs, | ||
}; | ||
|
||
+#if IS_ENABLED(CONFIG_WIRELESS_EXT) || IS_ENABLED(CONFIG_CFG80211) | ||
static struct attribute *wireless_attrs[] = { | ||
NULL | ||
}; | ||
@@ -755,19 +756,7 @@ static const struct attribute_group wire | ||
.name = "wireless", | ||
.attrs = wireless_attrs, | ||
}; | ||
- | ||
-static bool wireless_group_needed(struct net_device *ndev) | ||
-{ | ||
-#if IS_ENABLED(CONFIG_CFG80211) | ||
- if (ndev->ieee80211_ptr) | ||
- return true; | ||
#endif | ||
-#if IS_ENABLED(CONFIG_WIRELESS_EXT) | ||
- if (ndev->wireless_handlers) | ||
- return true; | ||
-#endif | ||
- return false; | ||
-} | ||
|
||
#else /* CONFIG_SYSFS */ | ||
#define net_class_groups NULL | ||
@@ -2008,8 +1997,14 @@ int netdev_register_kobject(struct net_d | ||
|
||
*groups++ = &netstat_group; | ||
|
||
- if (wireless_group_needed(ndev)) | ||
+#if IS_ENABLED(CONFIG_WIRELESS_EXT) || IS_ENABLED(CONFIG_CFG80211) | ||
+ if (ndev->ieee80211_ptr) | ||
+ *groups++ = &wireless_group; | ||
+#if IS_ENABLED(CONFIG_WIRELESS_EXT) | ||
+ else if (ndev->wireless_handlers) | ||
*groups++ = &wireless_group; | ||
+#endif | ||
+#endif | ||
#endif /* CONFIG_SYSFS */ | ||
|
||
error = device_add(dev); |
21 changes: 21 additions & 0 deletions
21
target/linux/generic/backport-6.0/011-kbuild-export-SUBARCH.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
From 173019b66dcc9d68ad9333aa744dad1e369b5aa8 Mon Sep 17 00:00:00 2001 | ||
From: Felix Fietkau <nbd@nbd.name> | ||
Date: Sun, 9 Jul 2017 00:26:53 +0200 | ||
Subject: [PATCH 34/34] kernel: add compile fix for linux 4.9 on x86 | ||
|
||
Signed-off-by: Felix Fietkau <nbd@nbd.name> | ||
--- | ||
Makefile | 4 ++-- | ||
1 file changed, 2 insertions(+), 2 deletions(-) | ||
|
||
--- a/Makefile | ||
+++ b/Makefile | ||
@@ -537,7 +537,7 @@ KBUILD_LDFLAGS_MODULE := | ||
KBUILD_LDFLAGS := | ||
CLANG_FLAGS := | ||
|
||
-export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC HOSTPKG_CONFIG | ||
+export ARCH SRCARCH SUBARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC HOSTPKG_CONFIG | ||
export CPP AR NM STRIP OBJCOPY OBJDUMP READELF PAHOLE RESOLVE_BTFIDS LEX YACC AWK INSTALLKERNEL | ||
export PERL PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX | ||
export KGZIP KBZIP2 KLZOP LZMA LZ4 XZ ZSTD |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,174 @@ | ||
From a779a482fb9b9f8fcdf8b2519c789b4b9bb5dd05 Mon Sep 17 00:00:00 2001 | ||
From: Felix Fietkau <nbd@nbd.name> | ||
Date: Fri, 7 Jul 2017 16:56:48 +0200 | ||
Subject: build: add a hack for removing non-essential module info | ||
|
||
Signed-off-by: Felix Fietkau <nbd@nbd.name> | ||
--- | ||
include/linux/module.h | 13 ++++++++----- | ||
include/linux/moduleparam.h | 15 ++++++++++++--- | ||
init/Kconfig | 7 +++++++ | ||
kernel/module.c | 5 ++++- | ||
scripts/mod/modpost.c | 12 ++++++++++++ | ||
5 files changed, 43 insertions(+), 9 deletions(-) | ||
|
||
--- a/include/linux/module.h | ||
+++ b/include/linux/module.h | ||
@@ -164,6 +164,7 @@ extern void cleanup_module(void); | ||
|
||
/* Generic info of form tag = "info" */ | ||
#define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info) | ||
+#define MODULE_INFO_STRIP(tag, info) __MODULE_INFO_STRIP(tag, tag, info) | ||
|
||
/* For userspace: you can also call me... */ | ||
#define MODULE_ALIAS(_alias) MODULE_INFO(alias, _alias) | ||
@@ -233,12 +234,12 @@ extern void cleanup_module(void); | ||
* Author(s), use "Name <email>" or just "Name", for multiple | ||
* authors use multiple MODULE_AUTHOR() statements/lines. | ||
*/ | ||
-#define MODULE_AUTHOR(_author) MODULE_INFO(author, _author) | ||
+#define MODULE_AUTHOR(_author) MODULE_INFO_STRIP(author, _author) | ||
|
||
/* What your module does. */ | ||
-#define MODULE_DESCRIPTION(_description) MODULE_INFO(description, _description) | ||
+#define MODULE_DESCRIPTION(_description) MODULE_INFO_STRIP(description, _description) | ||
|
||
-#ifdef MODULE | ||
+#if defined(MODULE) && !defined(CONFIG_MODULE_STRIPPED) | ||
/* Creates an alias so file2alias.c can find device table. */ | ||
#define MODULE_DEVICE_TABLE(type, name) \ | ||
extern typeof(name) __mod_##type##__##name##_device_table \ | ||
@@ -265,7 +266,9 @@ extern typeof(name) __mod_##type##__##na | ||
*/ | ||
|
||
#if defined(MODULE) || !defined(CONFIG_SYSFS) | ||
-#define MODULE_VERSION(_version) MODULE_INFO(version, _version) | ||
+#define MODULE_VERSION(_version) MODULE_INFO_STRIP(version, _version) | ||
+#elif defined(CONFIG_MODULE_STRIPPED) | ||
+#define MODULE_VERSION(_version) __MODULE_INFO_DISABLED(version) | ||
#else | ||
#define MODULE_VERSION(_version) \ | ||
MODULE_INFO(version, _version); \ | ||
@@ -288,7 +291,7 @@ extern typeof(name) __mod_##type##__##na | ||
/* Optional firmware file (or files) needed by the module | ||
* format is simply firmware file name. Multiple firmware | ||
* files require multiple MODULE_FIRMWARE() specifiers */ | ||
-#define MODULE_FIRMWARE(_firmware) MODULE_INFO(firmware, _firmware) | ||
+#define MODULE_FIRMWARE(_firmware) MODULE_INFO_STRIP(firmware, _firmware) | ||
|
||
#define MODULE_IMPORT_NS(ns) MODULE_INFO(import_ns, __stringify(ns)) | ||
|
||
--- a/include/linux/moduleparam.h | ||
+++ b/include/linux/moduleparam.h | ||
@@ -20,6 +20,16 @@ | ||
/* Chosen so that structs with an unsigned long line up. */ | ||
#define MAX_PARAM_PREFIX_LEN (64 - sizeof(unsigned long)) | ||
|
||
+/* This struct is here for syntactic coherency, it is not used */ | ||
+#define __MODULE_INFO_DISABLED(name) \ | ||
+ struct __UNIQUE_ID(name) {} | ||
+ | ||
+#ifdef CONFIG_MODULE_STRIPPED | ||
+#define __MODULE_INFO_STRIP(tag, name, info) __MODULE_INFO_DISABLED(name) | ||
+#else | ||
+#define __MODULE_INFO_STRIP(tag, name, info) __MODULE_INFO(tag, name, info) | ||
+#endif | ||
+ | ||
#define __MODULE_INFO(tag, name, info) \ | ||
static const char __UNIQUE_ID(name)[] \ | ||
__used __section(".modinfo") __aligned(1) \ | ||
@@ -31,7 +41,7 @@ | ||
/* One for each parameter, describing how to use it. Some files do | ||
multiple of these per line, so can't just use MODULE_INFO. */ | ||
#define MODULE_PARM_DESC(_parm, desc) \ | ||
- __MODULE_INFO(parm, _parm, #_parm ":" desc) | ||
+ __MODULE_INFO_STRIP(parm, _parm, #_parm ":" desc) | ||
|
||
struct kernel_param; | ||
|
||
--- a/kernel/module/Kconfig | ||
+++ b/kernel/module/Kconfig | ||
@@ -286,6 +286,13 @@ config UNUSED_KSYMS_WHITELIST | ||
one per line. The path can be absolute, or relative to the kernel | ||
source tree. | ||
|
||
+config MODULE_STRIPPED | ||
+ bool "Reduce module size" | ||
+ depends on MODULES | ||
+ help | ||
+ Remove module parameter descriptions, author info, version, aliases, | ||
+ device tables, etc. | ||
+ | ||
config MODULES_TREE_LOOKUP | ||
def_bool y | ||
depends on PERF_EVENTS || TRACING || CFI_CLANG | ||
--- a/kernel/module/main.c | ||
+++ b/kernel/module/main.c | ||
@@ -1954,9 +1954,11 @@ static int setup_load_info(struct load_i | ||
|
||
static int check_modinfo(struct module *mod, struct load_info *info, int flags) | ||
{ | ||
- const char *modmagic = get_modinfo(info, "vermagic"); | ||
int err; | ||
|
||
+#ifndef CONFIG_MODULE_STRIPPED | ||
+ const char *modmagic = get_modinfo(info, "vermagic"); | ||
+ | ||
if (flags & MODULE_INIT_IGNORE_VERMAGIC) | ||
modmagic = NULL; | ||
|
||
@@ -1977,6 +1979,7 @@ static int check_modinfo(struct module * | ||
mod->name); | ||
add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK); | ||
} | ||
+#endif | ||
|
||
check_modinfo_retpoline(mod, info); | ||
|
||
--- a/scripts/mod/modpost.c | ||
+++ b/scripts/mod/modpost.c | ||
@@ -1817,7 +1817,9 @@ static void read_symbols(const char *mod | ||
symname = remove_dot(info.strtab + sym->st_name); | ||
|
||
handle_symbol(mod, &info, sym, symname); | ||
+#ifndef CONFIG_MODULE_STRIPPED | ||
handle_moddevtable(mod, &info, sym, symname); | ||
+#endif | ||
} | ||
|
||
for (sym = info.symtab_start; sym < info.symtab_stop; sym++) { | ||
@@ -1980,8 +1982,10 @@ static void add_header(struct buffer *b, | ||
buf_printf(b, "BUILD_SALT;\n"); | ||
buf_printf(b, "BUILD_LTO_INFO;\n"); | ||
buf_printf(b, "\n"); | ||
+#ifndef CONFIG_MODULE_STRIPPED | ||
buf_printf(b, "MODULE_INFO(vermagic, VERMAGIC_STRING);\n"); | ||
buf_printf(b, "MODULE_INFO(name, KBUILD_MODNAME);\n"); | ||
+#endif | ||
buf_printf(b, "\n"); | ||
buf_printf(b, "__visible struct module __this_module\n"); | ||
buf_printf(b, "__section(\".gnu.linkonce.this_module\") = {\n"); | ||
@@ -2101,11 +2105,13 @@ static void add_depends(struct buffer *b | ||
|
||
static void add_srcversion(struct buffer *b, struct module *mod) | ||
{ | ||
+#ifndef CONFIG_MODULE_STRIPPED | ||
if (mod->srcversion[0]) { | ||
buf_printf(b, "\n"); | ||
buf_printf(b, "MODULE_INFO(srcversion, \"%s\");\n", | ||
mod->srcversion); | ||
} | ||
+#endif | ||
} | ||
|
||
static void write_buf(struct buffer *b, const char *fname) | ||
@@ -2191,7 +2197,9 @@ static void write_mod_c_file(struct modu | ||
add_exported_symbols(&buf, mod); | ||
add_versions(&buf, mod); | ||
add_depends(&buf, mod); | ||
+#ifndef CONFIG_MODULE_STRIPPED | ||
add_moddevtable(&buf, mod); | ||
+#endif | ||
add_srcversion(&buf, mod); | ||
|
||
ret = snprintf(fname, sizeof(fname), "%s.mod.c", mod->name); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- a/scripts/kconfig/conf.c | ||
+++ b/scripts/kconfig/conf.c | ||
@@ -432,6 +432,8 @@ static int conf_sym(struct menu *menu) | ||
break; | ||
continue; | ||
case 0: | ||
+ if (!sym_has_value(sym) && !tty_stdio && getenv("FAIL_ON_UNCONFIGURED")) | ||
+ exit(1); | ||
newval = oldval; | ||
break; | ||
case '?': |
3,053 changes: 3,053 additions & 0 deletions
3,053
target/linux/generic/hack-6.0/210-darwin_scripts_include.patch
Large diffs are not rendered by default.
Oops, something went wrong.
22 changes: 22 additions & 0 deletions
22
target/linux/generic/hack-6.0/211-darwin-uuid-typedef-clash.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
From e44fc2af1ddc452b6659d08c16973d65c73b7d0a Mon Sep 17 00:00:00 2001 | ||
From: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> | ||
Date: Wed, 5 Feb 2020 18:36:43 +0000 | ||
Subject: [PATCH] file2alias: build on macos | ||
|
||
Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> | ||
--- | ||
scripts/mod/file2alias.c | 3 +++ | ||
1 file changed, 3 insertions(+) | ||
|
||
--- a/scripts/mod/file2alias.c | ||
+++ b/scripts/mod/file2alias.c | ||
@@ -38,6 +38,9 @@ typedef struct { | ||
__u8 b[16]; | ||
} guid_t; | ||
|
||
+#ifdef __APPLE__ | ||
+#define uuid_t compat_uuid_t | ||
+#endif | ||
/* backwards compatibility, don't use in new code */ | ||
typedef struct { | ||
__u8 b[16]; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
From 48232d3d931c95953ce2ddfe7da7bb164aef6a73 Mon Sep 17 00:00:00 2001 | ||
From: Felix Fietkau <nbd@nbd.name> | ||
Date: Fri, 7 Jul 2017 17:03:16 +0200 | ||
Subject: fix portability of some includes files in tools/ used on the host | ||
|
||
Signed-off-by: Felix Fietkau <nbd@nbd.name> | ||
--- | ||
tools/include/tools/be_byteshift.h | 4 ++++ | ||
tools/include/tools/le_byteshift.h | 4 ++++ | ||
tools/include/tools/linux_types.h | 22 ++++++++++++++++++++++ | ||
3 files changed, 30 insertions(+) | ||
create mode 100644 tools/include/tools/linux_types.h | ||
|
||
--- a/tools/include/tools/be_byteshift.h | ||
+++ b/tools/include/tools/be_byteshift.h | ||
@@ -2,6 +2,10 @@ | ||
#ifndef _TOOLS_BE_BYTESHIFT_H | ||
#define _TOOLS_BE_BYTESHIFT_H | ||
|
||
+#ifndef __linux__ | ||
+#include "linux_types.h" | ||
+#endif | ||
+ | ||
#include <stdint.h> | ||
|
||
static inline uint16_t __get_unaligned_be16(const uint8_t *p) | ||
--- a/tools/include/tools/le_byteshift.h | ||
+++ b/tools/include/tools/le_byteshift.h | ||
@@ -2,6 +2,10 @@ | ||
#ifndef _TOOLS_LE_BYTESHIFT_H | ||
#define _TOOLS_LE_BYTESHIFT_H | ||
|
||
+#ifndef __linux__ | ||
+#include "linux_types.h" | ||
+#endif | ||
+ | ||
#include <stdint.h> | ||
|
||
static inline uint16_t __get_unaligned_le16(const uint8_t *p) | ||
--- /dev/null | ||
+++ b/tools/include/tools/linux_types.h | ||
@@ -0,0 +1,26 @@ | ||
+#ifndef __LINUX_TYPES_H | ||
+#define __LINUX_TYPES_H | ||
+ | ||
+#include <stdint.h> | ||
+ | ||
+typedef int8_t __s8; | ||
+typedef uint8_t __u8; | ||
+typedef uint8_t __be8; | ||
+typedef uint8_t __le8; | ||
+ | ||
+typedef int16_t __s16; | ||
+typedef uint16_t __u16; | ||
+typedef uint16_t __be16; | ||
+typedef uint16_t __le16; | ||
+ | ||
+typedef int32_t __s32; | ||
+typedef uint32_t __u32; | ||
+typedef uint32_t __be32; | ||
+typedef uint32_t __le32; | ||
+ | ||
+typedef int64_t __s64; | ||
+typedef uint64_t __u64; | ||
+typedef uint64_t __be64; | ||
+typedef uint64_t __le64; | ||
+ | ||
+#endif | ||
--- a/tools/include/linux/types.h | ||
+++ b/tools/include/linux/types.h | ||
@@ -10,8 +10,12 @@ | ||
#define __SANE_USERSPACE_TYPES__ /* For PPC64, to get LL64 types */ | ||
#endif | ||
|
||
+#ifndef __linux__ | ||
+#include <tools/linux_types.h> | ||
+#else | ||
#include <asm/types.h> | ||
#include <asm/posix_types.h> | ||
+#endif | ||
|
||
struct page; | ||
struct kmem_cache; |
24 changes: 24 additions & 0 deletions
24
target/linux/generic/hack-6.0/214-spidev_h_portability.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
From be9be95ff10e16a5b4ad36f903978d0cc5747024 Mon Sep 17 00:00:00 2001 | ||
From: Felix Fietkau <nbd@nbd.name> | ||
Date: Fri, 7 Jul 2017 17:04:08 +0200 | ||
Subject: kernel: fix linux/spi/spidev.h portability issues with musl | ||
|
||
Felix will try to get this define included into musl | ||
|
||
lede-commit: 795e7cf60de19e7a076a46874fab7bb88b43bbff | ||
Signed-off-by: Felix Fietkau <nbd@nbd.name> | ||
--- | ||
include/uapi/linux/spi/spidev.h | 2 +- | ||
1 file changed, 1 insertion(+), 1 deletion(-) | ||
|
||
--- a/include/uapi/linux/spi/spidev.h | ||
+++ b/include/uapi/linux/spi/spidev.h | ||
@@ -93,7 +93,7 @@ struct spi_ioc_transfer { | ||
|
||
/* not all platforms use <asm-generic/ioctl.h> or _IOC_TYPECHECK() ... */ | ||
#define SPI_MSGSIZE(N) \ | ||
- ((((N)*(sizeof (struct spi_ioc_transfer))) < (1 << _IOC_SIZEBITS)) \ | ||
+ ((((N)*(sizeof (struct spi_ioc_transfer))) < (1 << 13)) \ | ||
? ((N)*(sizeof (struct spi_ioc_transfer))) : 0) | ||
#define SPI_IOC_MESSAGE(N) _IOW(SPI_IOC_MAGIC, 0, char[SPI_MSGSIZE(N)]) | ||
|
123 changes: 123 additions & 0 deletions
123
target/linux/generic/hack-6.0/220-arm-gc_sections.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
From e3d8676f5722b7622685581e06e8f53e6138e3ab Mon Sep 17 00:00:00 2001 | ||
From: Felix Fietkau <nbd@nbd.name> | ||
Date: Sat, 15 Jul 2017 23:42:36 +0200 | ||
Subject: use -ffunction-sections, -fdata-sections and --gc-sections | ||
|
||
In combination with kernel symbol export stripping this significantly reduces | ||
the kernel image size. Used on both ARM and MIPS architectures. | ||
|
||
Signed-off-by: Felix Fietkau <nbd@nbd.name> | ||
Signed-off-by: Jonas Gorski <jogo@openwrt.org> | ||
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> | ||
--- | ||
--- a/arch/arm/Kconfig | ||
+++ b/arch/arm/Kconfig | ||
@@ -121,6 +121,7 @@ config ARM | ||
select HAVE_UID16 | ||
select HAVE_VIRT_CPU_ACCOUNTING_GEN | ||
select IRQ_FORCED_THREADING | ||
+ select HAVE_LD_DEAD_CODE_DATA_ELIMINATION | ||
select MODULES_USE_ELF_REL | ||
select NEED_DMA_MAP_STATE | ||
select OF_EARLY_FLATTREE if OF | ||
--- a/arch/arm/boot/compressed/Makefile | ||
+++ b/arch/arm/boot/compressed/Makefile | ||
@@ -91,6 +91,7 @@ endif | ||
ifeq ($(CONFIG_USE_OF),y) | ||
OBJS += $(libfdt_objs) fdt_check_mem_start.o | ||
endif | ||
+KBUILD_CFLAGS_KERNEL := $(patsubst -f%-sections,,$(KBUILD_CFLAGS_KERNEL)) | ||
|
||
OBJS += lib1funcs.o ashldi3.o bswapsdi2.o | ||
|
||
--- a/arch/arm/kernel/vmlinux.lds.S | ||
+++ b/arch/arm/kernel/vmlinux.lds.S | ||
@@ -75,7 +75,7 @@ SECTIONS | ||
. = ALIGN(4); | ||
__ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) { | ||
__start___ex_table = .; | ||
- ARM_MMU_KEEP(*(__ex_table)) | ||
+ KEEP(*(__ex_table)) | ||
__stop___ex_table = .; | ||
} | ||
|
||
@@ -100,24 +100,24 @@ SECTIONS | ||
} | ||
.init.arch.info : { | ||
__arch_info_begin = .; | ||
- *(.arch.info.init) | ||
+ KEEP(*(.arch.info.init)) | ||
__arch_info_end = .; | ||
} | ||
.init.tagtable : { | ||
__tagtable_begin = .; | ||
- *(.taglist.init) | ||
+ KEEP(*(.taglist.init)) | ||
__tagtable_end = .; | ||
} | ||
#ifdef CONFIG_SMP_ON_UP | ||
.init.smpalt : { | ||
__smpalt_begin = .; | ||
- *(.alt.smp.init) | ||
+ KEEP(*(.alt.smp.init)) | ||
__smpalt_end = .; | ||
} | ||
#endif | ||
.init.pv_table : { | ||
__pv_table_begin = .; | ||
- *(.pv_table) | ||
+ KEEP(*(.pv_table)) | ||
__pv_table_end = .; | ||
} | ||
|
||
--- a/arch/arm/include/asm/vmlinux.lds.h | ||
+++ b/arch/arm/include/asm/vmlinux.lds.h | ||
@@ -42,13 +42,13 @@ | ||
#define PROC_INFO \ | ||
. = ALIGN(4); \ | ||
__proc_info_begin = .; \ | ||
- *(.proc.info.init) \ | ||
+ KEEP(*(.proc.info.init)) \ | ||
__proc_info_end = .; | ||
|
||
#define IDMAP_TEXT \ | ||
ALIGN_FUNCTION(); \ | ||
__idmap_text_start = .; \ | ||
- *(.idmap.text) \ | ||
+ KEEP(*(.idmap.text)) \ | ||
__idmap_text_end = .; \ | ||
|
||
#define ARM_DISCARD \ | ||
@@ -109,12 +109,12 @@ | ||
. = ALIGN(8); \ | ||
.ARM.unwind_idx : { \ | ||
__start_unwind_idx = .; \ | ||
- *(.ARM.exidx*) \ | ||
+ KEEP(*(.ARM.exidx*)) \ | ||
__stop_unwind_idx = .; \ | ||
} \ | ||
.ARM.unwind_tab : { \ | ||
__start_unwind_tab = .; \ | ||
- *(.ARM.extab*) \ | ||
+ KEEP(*(.ARM.extab*)) \ | ||
__stop_unwind_tab = .; \ | ||
} | ||
|
||
@@ -126,7 +126,7 @@ | ||
__vectors_lma = .; \ | ||
OVERLAY 0xffff0000 : NOCROSSREFS AT(__vectors_lma) { \ | ||
.vectors { \ | ||
- *(.vectors) \ | ||
+ KEEP(*(.vectors)) \ | ||
} \ | ||
.vectors.bhb.loop8 { \ | ||
*(.vectors.bhb.loop8) \ | ||
@@ -144,7 +144,7 @@ | ||
\ | ||
__stubs_lma = .; \ | ||
.stubs ADDR(.vectors) + 0x1000 : AT(__stubs_lma) { \ | ||
- *(.stubs) \ | ||
+ KEEP(*(.stubs)) \ | ||
} \ | ||
ARM_LMA(__stubs, .stubs); \ | ||
. = __stubs_lma + SIZEOF(.stubs); \ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
From b14784e7883390c20ed3ff904892255404a5914b Mon Sep 17 00:00:00 2001 | ||
From: Felix Fietkau <nbd@nbd.name> | ||
Date: Fri, 7 Jul 2017 17:05:53 +0200 | ||
Subject: add an optional config option for stripping all unnecessary symbol exports from the kernel image | ||
|
||
lede-commit: bb5a40c64b7c4f4848509fa0a6625055fc9e66cc | ||
Signed-off-by: Felix Fietkau <nbd@nbd.name> | ||
--- | ||
include/asm-generic/vmlinux.lds.h | 18 +++++++++++++++--- | ||
include/linux/export.h | 9 ++++++++- | ||
scripts/Makefile.build | 2 +- | ||
3 files changed, 24 insertions(+), 5 deletions(-) | ||
|
||
--- a/include/asm-generic/vmlinux.lds.h | ||
+++ b/include/asm-generic/vmlinux.lds.h | ||
@@ -81,6 +81,16 @@ | ||
#define RO_EXCEPTION_TABLE | ||
#endif | ||
|
||
+#ifndef SYMTAB_KEEP | ||
+#define SYMTAB_KEEP KEEP(*(SORT(___ksymtab+*))) | ||
+#define SYMTAB_KEEP_GPL KEEP(*(SORT(___ksymtab_gpl+*))) | ||
+#endif | ||
+ | ||
+#ifndef SYMTAB_DISCARD | ||
+#define SYMTAB_DISCARD | ||
+#define SYMTAB_DISCARD_GPL | ||
+#endif | ||
+ | ||
/* Align . to a 8 byte boundary equals to maximum function alignment. */ | ||
#define ALIGN_FUNCTION() . = ALIGN(8) | ||
|
||
@@ -478,14 +488,14 @@ | ||
/* Kernel symbol table: Normal symbols */ \ | ||
__ksymtab : AT(ADDR(__ksymtab) - LOAD_OFFSET) { \ | ||
__start___ksymtab = .; \ | ||
- KEEP(*(SORT(___ksymtab+*))) \ | ||
+ SYMTAB_KEEP \ | ||
__stop___ksymtab = .; \ | ||
} \ | ||
\ | ||
/* Kernel symbol table: GPL-only symbols */ \ | ||
__ksymtab_gpl : AT(ADDR(__ksymtab_gpl) - LOAD_OFFSET) { \ | ||
__start___ksymtab_gpl = .; \ | ||
- KEEP(*(SORT(___ksymtab_gpl+*))) \ | ||
+ SYMTAB_KEEP_GPL \ | ||
__stop___ksymtab_gpl = .; \ | ||
} \ | ||
\ | ||
@@ -505,7 +515,7 @@ | ||
\ | ||
/* Kernel symbol table: strings */ \ | ||
__ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) { \ | ||
- *(__ksymtab_strings) \ | ||
+ *(__ksymtab_strings+*) \ | ||
} \ | ||
\ | ||
/* __*init sections */ \ | ||
@@ -1023,6 +1033,8 @@ | ||
|
||
#define COMMON_DISCARDS \ | ||
SANITIZER_DISCARDS \ | ||
+ SYMTAB_DISCARD \ | ||
+ SYMTAB_DISCARD_GPL \ | ||
*(.discard) \ | ||
*(.discard.*) \ | ||
*(.modinfo) \ | ||
--- a/include/linux/export.h | ||
+++ b/include/linux/export.h | ||
@@ -72,6 +72,12 @@ struct kernel_symbol { | ||
|
||
#else | ||
|
||
+#ifdef MODULE | ||
+#define __EXPORT_SUFFIX(sym) | ||
+#else | ||
+#define __EXPORT_SUFFIX(sym) "+" #sym | ||
+#endif | ||
+ | ||
/* | ||
* For every exported symbol, do the following: | ||
* | ||
@@ -87,7 +93,7 @@ struct kernel_symbol { | ||
extern typeof(sym) sym; \ | ||
extern const char __kstrtab_##sym[]; \ | ||
extern const char __kstrtabns_##sym[]; \ | ||
- asm(" .section \"__ksymtab_strings\",\"aMS\",%progbits,1 \n" \ | ||
+ asm(" .section \"__ksymtab_strings" __EXPORT_SUFFIX(sym) "\",\"aMS\",%progbits,1 \n" \ | ||
"__kstrtab_" #sym ": \n" \ | ||
" .asciz \"" #sym "\" \n" \ | ||
"__kstrtabns_" #sym ": \n" \ | ||
--- a/scripts/Makefile.build | ||
+++ b/scripts/Makefile.build | ||
@@ -328,7 +328,7 @@ targets += $(real-dtb-y) $(lib-y) $(alwa | ||
# Linker scripts preprocessor (.lds.S -> .lds) | ||
# --------------------------------------------------------------------------- | ||
quiet_cmd_cpp_lds_S = LDS $@ | ||
- cmd_cpp_lds_S = $(CPP) $(cpp_flags) -P -U$(ARCH) \ | ||
+ cmd_cpp_lds_S = $(CPP) $(EXTRA_LDSFLAGS) $(cpp_flags) -P -U$(ARCH) \ | ||
-D__ASSEMBLY__ -DLINKER_SCRIPT -o $@ $< | ||
|
||
$(obj)/%.lds: $(src)/%.lds.S FORCE |
34 changes: 34 additions & 0 deletions
34
target/linux/generic/hack-6.0/230-openwrt_lzma_options.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
From b3d00b452467f621317953d9e4c6f9ae8dcfd271 Mon Sep 17 00:00:00 2001 | ||
From: Imre Kaloz <kaloz@openwrt.org> | ||
Date: Fri, 7 Jul 2017 17:06:55 +0200 | ||
Subject: use the openwrt lzma options for now | ||
|
||
lede-commit: 548de949f392049420a6a1feeef118b30ab8ea8c | ||
Signed-off-by: Imre Kaloz <kaloz@openwrt.org> | ||
--- | ||
lib/decompress.c | 1 + | ||
scripts/Makefile.lib | 2 +- | ||
usr/gen_initramfs_list.sh | 10 +++++----- | ||
3 files changed, 7 insertions(+), 6 deletions(-) | ||
|
||
--- a/lib/decompress.c | ||
+++ b/lib/decompress.c | ||
@@ -53,6 +53,7 @@ static const struct compress_format comp | ||
{ {0x1f, 0x9e}, "gzip", gunzip }, | ||
{ {0x42, 0x5a}, "bzip2", bunzip2 }, | ||
{ {0x5d, 0x00}, "lzma", unlzma }, | ||
+ { {0x6d, 0x00}, "lzma-openwrt", unlzma }, | ||
{ {0xfd, 0x37}, "xz", unxz }, | ||
{ {0x89, 0x4c}, "lzo", unlzo }, | ||
{ {0x02, 0x21}, "lz4", unlz4 }, | ||
--- a/scripts/Makefile.lib | ||
+++ b/scripts/Makefile.lib | ||
@@ -421,7 +421,7 @@ quiet_cmd_bzip2_with_size = BZIP2 $@ | ||
# --------------------------------------------------------------------------- | ||
|
||
quiet_cmd_lzma = LZMA $@ | ||
- cmd_lzma = cat $(real-prereqs) | $(LZMA) -9 > $@ | ||
+ cmd_lzma = { cat $(real-prereqs) | $(LZMA) e -d20 -lc1 -lp2 -pb2 -eos -si -so; $(size_append); } > $@ | ||
|
||
quiet_cmd_lzma_with_size = LZMA $@ | ||
cmd_lzma_with_size = { cat $(real-prereqs) | $(LZMA) -9; $(size_append); } > $@ |
11 changes: 11 additions & 0 deletions
11
target/linux/generic/hack-6.0/249-udp-tunnel-selection.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- a/net/ipv4/Kconfig | ||
+++ b/net/ipv4/Kconfig | ||
@@ -315,7 +315,7 @@ config NET_IPVTI | ||
on top. | ||
|
||
config NET_UDP_TUNNEL | ||
- tristate | ||
+ tristate "IP: UDP tunneling support" | ||
select NET_IP_TUNNEL | ||
default n | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
From: Felix Fietkau <nbd@nbd.name> | ||
Subject: hack: net: remove bogus netfilter dependencies | ||
|
||
lede-commit: 589d2a377dee27d206fc3725325309cf649e4df6 | ||
Signed-off-by: Felix Fietkau <nbd@nbd.name> | ||
--- | ||
net/netfilter/Kconfig | 2 -- | ||
1 file changed, 2 deletions(-) | ||
|
||
--- a/net/netfilter/Kconfig | ||
+++ b/net/netfilter/Kconfig | ||
@@ -253,7 +253,6 @@ config NF_CONNTRACK_FTP | ||
|
||
config NF_CONNTRACK_H323 | ||
tristate "H.323 protocol support" | ||
- depends on IPV6 || IPV6=n | ||
depends on NETFILTER_ADVANCED | ||
help | ||
H.323 is a VoIP signalling protocol from ITU-T. As one of the most | ||
@@ -1118,7 +1117,6 @@ config NETFILTER_XT_TARGET_SECMARK | ||
|
||
config NETFILTER_XT_TARGET_TCPMSS | ||
tristate '"TCPMSS" target support' | ||
- depends on IPV6 || IPV6=n | ||
default m if NETFILTER_ADVANCED=n | ||
help | ||
This option adds a `TCPMSS' target, which allows you to alter the |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,199 @@ | ||
From da3c50704f14132f4adf80d48e9a4cd5d46e54c9 Mon Sep 17 00:00:00 2001 | ||
From: John Crispin <john@phrozen.org> | ||
Date: Fri, 7 Jul 2017 17:09:21 +0200 | ||
Subject: kconfig: owrt specifc dependencies | ||
|
||
Signed-off-by: John Crispin <john@phrozen.org> | ||
--- | ||
crypto/Kconfig | 10 +++++----- | ||
drivers/bcma/Kconfig | 1 + | ||
drivers/ssb/Kconfig | 3 ++- | ||
lib/Kconfig | 8 ++++---- | ||
net/netfilter/Kconfig | 2 +- | ||
net/wireless/Kconfig | 17 ++++++++++------- | ||
sound/core/Kconfig | 4 ++-- | ||
7 files changed, 25 insertions(+), 20 deletions(-) | ||
|
||
--- a/crypto/Kconfig | ||
+++ b/crypto/Kconfig | ||
@@ -55,7 +55,7 @@ config CRYPTO_FIPS_VERSION | ||
By default the KERNELRELEASE value is used. | ||
|
||
config CRYPTO_ALGAPI | ||
- tristate | ||
+ tristate "ALGAPI" | ||
select CRYPTO_ALGAPI2 | ||
help | ||
This option provides the API for cryptographic algorithms. | ||
@@ -64,7 +64,7 @@ config CRYPTO_ALGAPI2 | ||
tristate | ||
|
||
config CRYPTO_AEAD | ||
- tristate | ||
+ tristate "AEAD" | ||
select CRYPTO_AEAD2 | ||
select CRYPTO_ALGAPI | ||
|
||
@@ -75,7 +75,7 @@ config CRYPTO_AEAD2 | ||
select CRYPTO_RNG2 | ||
|
||
config CRYPTO_SKCIPHER | ||
- tristate | ||
+ tristate "SKCIPHER" | ||
select CRYPTO_SKCIPHER2 | ||
select CRYPTO_ALGAPI | ||
|
||
@@ -85,7 +85,7 @@ config CRYPTO_SKCIPHER2 | ||
select CRYPTO_RNG2 | ||
|
||
config CRYPTO_HASH | ||
- tristate | ||
+ tristate "HASH" | ||
select CRYPTO_HASH2 | ||
select CRYPTO_ALGAPI | ||
|
||
@@ -94,7 +94,7 @@ config CRYPTO_HASH2 | ||
select CRYPTO_ALGAPI2 | ||
|
||
config CRYPTO_RNG | ||
- tristate | ||
+ tristate "RNG" | ||
select CRYPTO_RNG2 | ||
select CRYPTO_ALGAPI | ||
|
||
--- a/drivers/bcma/Kconfig | ||
+++ b/drivers/bcma/Kconfig | ||
@@ -16,6 +16,7 @@ if BCMA | ||
# Support for Block-I/O. SELECT this from the driver that needs it. | ||
config BCMA_BLOCKIO | ||
bool | ||
+ default y | ||
|
||
config BCMA_HOST_PCI_POSSIBLE | ||
bool | ||
--- a/drivers/ssb/Kconfig | ||
+++ b/drivers/ssb/Kconfig | ||
@@ -29,6 +29,7 @@ config SSB_SPROM | ||
config SSB_BLOCKIO | ||
bool | ||
depends on SSB | ||
+ default y | ||
|
||
config SSB_PCIHOST_POSSIBLE | ||
bool | ||
@@ -49,7 +50,7 @@ config SSB_PCIHOST | ||
config SSB_B43_PCI_BRIDGE | ||
bool | ||
depends on SSB_PCIHOST | ||
- default n | ||
+ default y | ||
|
||
config SSB_PCMCIAHOST_POSSIBLE | ||
bool | ||
--- a/lib/Kconfig | ||
+++ b/lib/Kconfig | ||
@@ -456,16 +456,16 @@ config BCH_CONST_T | ||
# Textsearch support is select'ed if needed | ||
# | ||
config TEXTSEARCH | ||
- bool | ||
+ bool "Textsearch support" | ||
|
||
config TEXTSEARCH_KMP | ||
- tristate | ||
+ tristate "Textsearch KMP" | ||
|
||
config TEXTSEARCH_BM | ||
- tristate | ||
+ tristate "Textsearch BM" | ||
|
||
config TEXTSEARCH_FSM | ||
- tristate | ||
+ tristate "Textsearch FSM" | ||
|
||
config BTREE | ||
bool | ||
--- a/net/netfilter/Kconfig | ||
+++ b/net/netfilter/Kconfig | ||
@@ -22,7 +22,7 @@ config NETFILTER_SKIP_EGRESS | ||
def_bool NETFILTER_EGRESS && (NET_CLS_ACT || IFB) | ||
|
||
config NETFILTER_NETLINK | ||
- tristate | ||
+ tristate "Netfilter NFNETLINK interface" | ||
|
||
config NETFILTER_FAMILY_BRIDGE | ||
bool | ||
--- a/net/wireless/Kconfig | ||
+++ b/net/wireless/Kconfig | ||
@@ -1,6 +1,6 @@ | ||
# SPDX-License-Identifier: GPL-2.0-only | ||
config WIRELESS_EXT | ||
- bool | ||
+ bool "Wireless extensions" | ||
|
||
config WEXT_CORE | ||
def_bool y | ||
@@ -12,10 +12,10 @@ config WEXT_PROC | ||
depends on WEXT_CORE | ||
|
||
config WEXT_SPY | ||
- bool | ||
+ bool "WEXT_SPY" | ||
|
||
config WEXT_PRIV | ||
- bool | ||
+ bool "WEXT_PRIV" | ||
|
||
config CFG80211 | ||
tristate "cfg80211 - wireless configuration API" | ||
@@ -204,7 +204,7 @@ config CFG80211_WEXT_EXPORT | ||
endif # CFG80211 | ||
|
||
config LIB80211 | ||
- tristate | ||
+ tristate "LIB80211" | ||
default n | ||
help | ||
This options enables a library of common routines used | ||
@@ -213,17 +213,17 @@ config LIB80211 | ||
Drivers should select this themselves if needed. | ||
|
||
config LIB80211_CRYPT_WEP | ||
- tristate | ||
+ tristate "LIB80211_CRYPT_WEP" | ||
select CRYPTO_LIB_ARC4 | ||
|
||
config LIB80211_CRYPT_CCMP | ||
- tristate | ||
+ tristate "LIB80211_CRYPT_CCMP" | ||
select CRYPTO | ||
select CRYPTO_AES | ||
select CRYPTO_CCM | ||
|
||
config LIB80211_CRYPT_TKIP | ||
- tristate | ||
+ tristate "LIB80211_CRYPT_TKIP" | ||
select CRYPTO_LIB_ARC4 | ||
|
||
config LIB80211_DEBUG | ||
--- a/sound/core/Kconfig | ||
+++ b/sound/core/Kconfig | ||
@@ -17,7 +17,7 @@ config SND_DMAENGINE_PCM | ||
tristate | ||
|
||
config SND_HWDEP | ||
- tristate | ||
+ tristate "Sound hardware support" | ||
|
||
config SND_SEQ_DEVICE | ||
tristate | ||
@@ -27,7 +27,7 @@ config SND_RAWMIDI | ||
select SND_SEQ_DEVICE if SND_SEQUENCER != n | ||
|
||
config SND_COMPRESS_OFFLOAD | ||
- tristate | ||
+ tristate "Compression offloading support" | ||
|
||
config SND_JACK | ||
bool |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
From 8c817e33be829c7249c2cfd59ff48ad5fac6a31d Mon Sep 17 00:00:00 2001 | ||
From: Sungbo Eo <mans0n@gorani.run> | ||
Date: Fri, 7 Jul 2017 17:09:21 +0200 | ||
Subject: [PATCH] kconfig: solidify SATA_PMP config | ||
|
||
SATA_PMP option in kernel config file disappears for every kernel_oldconfig refresh. | ||
To prevent this, SATA_HOST is now selected automatically when SATA_PMP is enabled. | ||
This patch can be dropped if SATA_MV is ever re-added into the config. | ||
--- | ||
drivers/ata/Kconfig | 2 +- | ||
1 file changed, 1 insertion(+), 1 deletion(-) | ||
|
||
--- a/drivers/ata/Kconfig | ||
+++ b/drivers/ata/Kconfig | ||
@@ -112,7 +112,7 @@ config SATA_ZPODD | ||
|
||
config SATA_PMP | ||
bool "SATA Port Multiplier support" | ||
- depends on SATA_HOST | ||
+ select SATA_HOST | ||
default y | ||
help | ||
This option adds support for SATA Port Multipliers |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
--- a/init/Kconfig | ||
+++ b/init/Kconfig | ||
@@ -1954,7 +1954,7 @@ config PADATA | ||
bool | ||
|
||
config ASN1 | ||
- tristate | ||
+ tristate "ASN1" | ||
help | ||
Build a simple ASN.1 grammar compiler that produces a bytecode output | ||
that can be interpreted by the ASN.1 stream decoder and used to | ||
--- a/lib/Kconfig | ||
+++ b/lib/Kconfig | ||
@@ -627,7 +627,7 @@ config LIBFDT | ||
bool | ||
|
||
config OID_REGISTRY | ||
- tristate | ||
+ tristate "OID" | ||
help | ||
Enable fast lookup object identifier registry. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,144 @@ | ||
From 811d9e2268a62b830cfe93cd8bc929afcb8b198b Mon Sep 17 00:00:00 2001 | ||
From: Felix Fietkau <nbd@nbd.name> | ||
Date: Sat, 15 Jul 2017 21:12:38 +0200 | ||
Subject: kernel: move regmap bloat out of the kernel image if it is only being used in modules | ||
|
||
lede-commit: 96f39119815028073583e4fca3a9c5fe9141e998 | ||
Signed-off-by: Felix Fietkau <nbd@nbd.name> | ||
--- | ||
drivers/base/regmap/Kconfig | 15 ++++++++++----- | ||
drivers/base/regmap/Makefile | 12 ++++++++---- | ||
drivers/base/regmap/regmap.c | 3 +++ | ||
include/linux/regmap.h | 2 +- | ||
4 files changed, 22 insertions(+), 10 deletions(-) | ||
|
||
--- a/drivers/base/regmap/Kconfig | ||
+++ b/drivers/base/regmap/Kconfig | ||
@@ -4,10 +4,9 @@ | ||
# subsystems should select the appropriate symbols. | ||
|
||
config REGMAP | ||
- default y if (REGMAP_I2C || REGMAP_SPI || REGMAP_SPMI || REGMAP_W1 || REGMAP_AC97 || REGMAP_MMIO || REGMAP_IRQ || REGMAP_SOUNDWIRE || REGMAP_SOUNDWIRE_MBQ || REGMAP_SCCB || REGMAP_I3C || REGMAP_SPI_AVMM || REGMAP_MDIO) | ||
select IRQ_DOMAIN if REGMAP_IRQ | ||
select MDIO_BUS if REGMAP_MDIO | ||
- bool | ||
+ tristate | ||
|
||
config REGCACHE_COMPRESSED | ||
select LZO_COMPRESS | ||
@@ -15,53 +14,67 @@ config REGCACHE_COMPRESSED | ||
bool | ||
|
||
config REGMAP_AC97 | ||
+ select REGMAP | ||
tristate | ||
|
||
config REGMAP_I2C | ||
+ select REGMAP | ||
tristate | ||
depends on I2C | ||
|
||
config REGMAP_SLIMBUS | ||
+ select REGMAP | ||
tristate | ||
depends on SLIMBUS | ||
|
||
config REGMAP_SPI | ||
+ select REGMAP | ||
tristate | ||
depends on SPI | ||
|
||
config REGMAP_SPMI | ||
+ select REGMAP | ||
tristate | ||
depends on SPMI | ||
|
||
config REGMAP_W1 | ||
+ select REGMAP | ||
tristate | ||
depends on W1 | ||
|
||
config REGMAP_MDIO | ||
+ select REGMAP | ||
tristate | ||
|
||
config REGMAP_MMIO | ||
+ select REGMAP | ||
tristate | ||
|
||
config REGMAP_IRQ | ||
+ select REGMAP | ||
bool | ||
|
||
config REGMAP_SOUNDWIRE | ||
+ select REGMAP | ||
tristate | ||
depends on SOUNDWIRE | ||
|
||
config REGMAP_SOUNDWIRE_MBQ | ||
+ select REGMAP | ||
tristate | ||
depends on SOUNDWIRE | ||
|
||
config REGMAP_SCCB | ||
+ select REGMAP | ||
tristate | ||
depends on I2C | ||
|
||
config REGMAP_I3C | ||
+ select REGMAP | ||
tristate | ||
depends on I3C | ||
|
||
config REGMAP_SPI_AVMM | ||
+ select REGMAP | ||
tristate | ||
depends on SPI | ||
--- a/drivers/base/regmap/Makefile | ||
+++ b/drivers/base/regmap/Makefile | ||
@@ -2,10 +2,14 @@ | ||
# For include/trace/define_trace.h to include trace.h | ||
CFLAGS_regmap.o := -I$(src) | ||
|
||
-obj-$(CONFIG_REGMAP) += regmap.o regcache.o | ||
-obj-$(CONFIG_REGMAP) += regcache-rbtree.o regcache-flat.o | ||
-obj-$(CONFIG_REGCACHE_COMPRESSED) += regcache-lzo.o | ||
-obj-$(CONFIG_DEBUG_FS) += regmap-debugfs.o | ||
+regmap-core-objs = regmap.o regcache.o regcache-rbtree.o regcache-flat.o | ||
+ifdef CONFIG_DEBUG_FS | ||
+regmap-core-objs += regmap-debugfs.o | ||
+endif | ||
+ifdef CONFIG_REGCACHE_COMPRESSED | ||
+regmap-core-objs += regcache-lzo.o | ||
+endif | ||
+obj-$(CONFIG_REGMAP) += regmap-core.o | ||
obj-$(CONFIG_REGMAP_AC97) += regmap-ac97.o | ||
obj-$(CONFIG_REGMAP_I2C) += regmap-i2c.o | ||
obj-$(CONFIG_REGMAP_SLIMBUS) += regmap-slimbus.o | ||
--- a/drivers/base/regmap/regmap.c | ||
+++ b/drivers/base/regmap/regmap.c | ||
@@ -9,6 +9,7 @@ | ||
#include <linux/device.h> | ||
#include <linux/slab.h> | ||
#include <linux/export.h> | ||
+#include <linux/module.h> | ||
#include <linux/mutex.h> | ||
#include <linux/err.h> | ||
#include <linux/property.h> | ||
@@ -3384,3 +3385,5 @@ static int __init regmap_initcall(void) | ||
return 0; | ||
} | ||
postcore_initcall(regmap_initcall); | ||
+ | ||
+MODULE_LICENSE("GPL"); | ||
--- a/include/linux/regmap.h | ||
+++ b/include/linux/regmap.h | ||
@@ -180,7 +180,7 @@ struct reg_sequence { | ||
__ret ?: __tmp; \ | ||
}) | ||
|
||
-#ifdef CONFIG_REGMAP | ||
+#if IS_REACHABLE(CONFIG_REGMAP) | ||
|
||
enum regmap_endian { | ||
/* Unspecified -> 0 -> Backwards compatible default */ |
52 changes: 52 additions & 0 deletions
52
target/linux/generic/hack-6.0/260-crypto_test_dependencies.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
From fd1799b0bf5efa46dd3e6dfbbf3955564807e508 Mon Sep 17 00:00:00 2001 | ||
From: Felix Fietkau <nbd@nbd.name> | ||
Date: Fri, 7 Jul 2017 17:12:51 +0200 | ||
Subject: kernel: prevent cryptomgr from pulling in useless extra dependencies for tests that are not run | ||
|
||
Reduces kernel size after LZMA by about 5k on MIPS | ||
|
||
lede-commit: 044c316167e076479a344c59905e5b435b84a77f | ||
Signed-off-by: Felix Fietkau <nbd@nbd.name> | ||
--- | ||
crypto/Kconfig | 13 ++++++------- | ||
crypto/algboss.c | 4 ++++ | ||
2 files changed, 10 insertions(+), 7 deletions(-) | ||
|
||
--- a/crypto/Kconfig | ||
+++ b/crypto/Kconfig | ||
@@ -142,13 +142,13 @@ config CRYPTO_MANAGER | ||
cbc(aes). | ||
|
||
config CRYPTO_MANAGER2 | ||
- def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y) | ||
- select CRYPTO_AEAD2 | ||
- select CRYPTO_HASH2 | ||
- select CRYPTO_SKCIPHER2 | ||
- select CRYPTO_AKCIPHER2 | ||
- select CRYPTO_KPP2 | ||
- select CRYPTO_ACOMP2 | ||
+ def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y && !CRYPTO_MANAGER_DISABLE_TESTS) | ||
+ select CRYPTO_AEAD2 if !CRYPTO_MANAGER_DISABLE_TESTS | ||
+ select CRYPTO_HASH2 if !CRYPTO_MANAGER_DISABLE_TESTS | ||
+ select CRYPTO_SKCIPHER2 if !CRYPTO_MANAGER_DISABLE_TESTS | ||
+ select CRYPTO_AKCIPHER2 if !CRYPTO_MANAGER_DISABLE_TESTS | ||
+ select CRYPTO_KPP2 if !CRYPTO_MANAGER_DISABLE_TESTS | ||
+ select CRYPTO_ACOMP2 if !CRYPTO_MANAGER_DISABLE_TESTS | ||
|
||
config CRYPTO_USER | ||
tristate "Userspace cryptographic algorithm configuration" | ||
--- a/crypto/algboss.c | ||
+++ b/crypto/algboss.c | ||
@@ -211,8 +211,12 @@ static int cryptomgr_schedule_test(struc | ||
type = alg->cra_flags; | ||
|
||
/* Do not test internal algorithms. */ | ||
+#ifdef CONFIG_CRYPTO_MANAGER_DISABLE_TESTS | ||
+ type |= CRYPTO_ALG_TESTED; | ||
+#else | ||
if (type & CRYPTO_ALG_INTERNAL) | ||
type |= CRYPTO_ALG_TESTED; | ||
+#endif | ||
|
||
param->type = type; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
This makes it possible to select CONFIG_CRYPTO_LIB_ARC4 directly. We | ||
need this to be able to compile this into the kernel and make use of it | ||
from backports. | ||
|
||
--- a/lib/crypto/Kconfig | ||
+++ b/lib/crypto/Kconfig | ||
@@ -6,7 +6,7 @@ config CRYPTO_LIB_AES | ||
tristate | ||
|
||
config CRYPTO_LIB_ARC4 | ||
- tristate | ||
+ tristate "ARC4 cipher library" | ||
|
||
config CRYPTO_ARCH_HAVE_LIB_BLAKE2S | ||
bool |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
From 236c1acdfef5958010ac9814a9872e0a46fd78ee Mon Sep 17 00:00:00 2001 | ||
From: John Crispin <john@phrozen.org> | ||
Date: Fri, 7 Jul 2017 17:13:44 +0200 | ||
Subject: rfkill: add fake rfkill support | ||
|
||
allow building of modules depending on RFKILL even if RFKILL is not enabled. | ||
|
||
Signed-off-by: John Crispin <john@phrozen.org> | ||
--- | ||
include/linux/rfkill.h | 2 +- | ||
net/Makefile | 2 +- | ||
net/rfkill/Kconfig | 14 +++++++++----- | ||
net/rfkill/Makefile | 2 +- | ||
4 files changed, 12 insertions(+), 8 deletions(-) | ||
|
||
--- a/include/linux/rfkill.h | ||
+++ b/include/linux/rfkill.h | ||
@@ -64,7 +64,7 @@ struct rfkill_ops { | ||
int (*set_block)(void *data, bool blocked); | ||
}; | ||
|
||
-#if defined(CONFIG_RFKILL) || defined(CONFIG_RFKILL_MODULE) | ||
+#if defined(CONFIG_RFKILL_FULL) || defined(CONFIG_RFKILL_FULL_MODULE) | ||
/** | ||
* rfkill_alloc - Allocate rfkill structure | ||
* @name: name of the struct -- the string is not copied internally | ||
--- a/net/Makefile | ||
+++ b/net/Makefile | ||
@@ -52,7 +52,7 @@ obj-$(CONFIG_TIPC) += tipc/ | ||
obj-$(CONFIG_NETLABEL) += netlabel/ | ||
obj-$(CONFIG_IUCV) += iucv/ | ||
obj-$(CONFIG_SMC) += smc/ | ||
-obj-$(CONFIG_RFKILL) += rfkill/ | ||
+obj-$(CONFIG_RFKILL_FULL) += rfkill/ | ||
obj-$(CONFIG_NET_9P) += 9p/ | ||
obj-$(CONFIG_CAIF) += caif/ | ||
obj-$(CONFIG_DCB) += dcb/ | ||
--- a/net/rfkill/Kconfig | ||
+++ b/net/rfkill/Kconfig | ||
@@ -2,7 +2,11 @@ | ||
# | ||
# RF switch subsystem configuration | ||
# | ||
-menuconfig RFKILL | ||
+config RFKILL | ||
+ bool | ||
+ default y | ||
+ | ||
+menuconfig RFKILL_FULL | ||
tristate "RF switch subsystem support" | ||
help | ||
Say Y here if you want to have control over RF switches | ||
@@ -14,19 +18,19 @@ menuconfig RFKILL | ||
# LED trigger support | ||
config RFKILL_LEDS | ||
bool | ||
- depends on RFKILL | ||
+ depends on RFKILL_FULL | ||
depends on LEDS_TRIGGERS = y || RFKILL = LEDS_TRIGGERS | ||
default y | ||
|
||
config RFKILL_INPUT | ||
bool "RF switch input support" if EXPERT | ||
- depends on RFKILL | ||
+ depends on RFKILL_FULL | ||
depends on INPUT = y || RFKILL = INPUT | ||
default y if !EXPERT | ||
|
||
config RFKILL_GPIO | ||
tristate "GPIO RFKILL driver" | ||
- depends on RFKILL | ||
+ depends on RFKILL_FULL | ||
depends on GPIOLIB || COMPILE_TEST | ||
default n | ||
help | ||
--- a/net/rfkill/Makefile | ||
+++ b/net/rfkill/Makefile | ||
@@ -5,5 +5,5 @@ | ||
|
||
rfkill-y += core.o | ||
rfkill-$(CONFIG_RFKILL_INPUT) += input.o | ||
-obj-$(CONFIG_RFKILL) += rfkill.o | ||
+obj-$(CONFIG_RFKILL_FULL) += rfkill.o | ||
obj-$(CONFIG_RFKILL_GPIO) += rfkill-gpio.o |
64 changes: 64 additions & 0 deletions
64
target/linux/generic/hack-6.0/300-MIPS-r4k_cache-use-more-efficient-cache-blast.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
From: Ben Menchaca <ben.menchaca@qca.qualcomm.com> | ||
Date: Fri, 7 Jun 2013 18:35:22 -0500 | ||
Subject: MIPS: r4k_cache: use more efficient cache blast | ||
|
||
Optimize the compiler output for larger cache blast cases that are | ||
common for DMA-based networking. | ||
|
||
Signed-off-by: Ben Menchaca <ben.menchaca@qca.qualcomm.com> | ||
Signed-off-by: Felix Fietkau <nbd@nbd.name> | ||
--- | ||
--- a/arch/mips/include/asm/r4kcache.h | ||
+++ b/arch/mips/include/asm/r4kcache.h | ||
@@ -286,14 +286,46 @@ static inline void prot##extra##blast_## | ||
unsigned long end) \ | ||
{ \ | ||
unsigned long lsize = cpu_##desc##_line_size(); \ | ||
+ unsigned long lsize_2 = lsize * 2; \ | ||
+ unsigned long lsize_3 = lsize * 3; \ | ||
+ unsigned long lsize_4 = lsize * 4; \ | ||
+ unsigned long lsize_5 = lsize * 5; \ | ||
+ unsigned long lsize_6 = lsize * 6; \ | ||
+ unsigned long lsize_7 = lsize * 7; \ | ||
+ unsigned long lsize_8 = lsize * 8; \ | ||
unsigned long addr = start & ~(lsize - 1); \ | ||
- unsigned long aend = (end - 1) & ~(lsize - 1); \ | ||
+ unsigned long aend = (end + lsize - 1) & ~(lsize - 1); \ | ||
+ int lines = (aend - addr) / lsize; \ | ||
\ | ||
- while (1) { \ | ||
+ while (lines >= 8) { \ | ||
+ prot##cache_op(hitop, addr); \ | ||
+ prot##cache_op(hitop, addr + lsize); \ | ||
+ prot##cache_op(hitop, addr + lsize_2); \ | ||
+ prot##cache_op(hitop, addr + lsize_3); \ | ||
+ prot##cache_op(hitop, addr + lsize_4); \ | ||
+ prot##cache_op(hitop, addr + lsize_5); \ | ||
+ prot##cache_op(hitop, addr + lsize_6); \ | ||
+ prot##cache_op(hitop, addr + lsize_7); \ | ||
+ addr += lsize_8; \ | ||
+ lines -= 8; \ | ||
+ } \ | ||
+ \ | ||
+ if (lines & 0x4) { \ | ||
+ prot##cache_op(hitop, addr); \ | ||
+ prot##cache_op(hitop, addr + lsize); \ | ||
+ prot##cache_op(hitop, addr + lsize_2); \ | ||
+ prot##cache_op(hitop, addr + lsize_3); \ | ||
+ addr += lsize_4; \ | ||
+ } \ | ||
+ \ | ||
+ if (lines & 0x2) { \ | ||
+ prot##cache_op(hitop, addr); \ | ||
+ prot##cache_op(hitop, addr + lsize); \ | ||
+ addr += lsize_2; \ | ||
+ } \ | ||
+ \ | ||
+ if (lines & 0x1) { \ | ||
prot##cache_op(hitop, addr); \ | ||
- if (addr == aend) \ | ||
- break; \ | ||
- addr += lsize; \ | ||
} \ | ||
} | ||
|
38 changes: 38 additions & 0 deletions
38
target/linux/generic/hack-6.0/301-mips_image_cmdline_hack.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
From: John Crispin <john@phrozen.org> | ||
Subject: hack: kernel: add generic image_cmdline hack to MIPS targets | ||
|
||
lede-commit: d59f5b3a987a48508257a0ddbaeadc7909f9f976 | ||
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> | ||
--- | ||
arch/mips/Kconfig | 4 ++++ | ||
arch/mips/kernel/head.S | 6 ++++++ | ||
2 files changed, 10 insertions(+) | ||
|
||
--- a/arch/mips/Kconfig | ||
+++ b/arch/mips/Kconfig | ||
@@ -1112,6 +1112,10 @@ config MIPS_MSC | ||
config SYNC_R4K | ||
bool | ||
|
||
+config IMAGE_CMDLINE_HACK | ||
+ bool "OpenWrt specific image command line hack" | ||
+ default n | ||
+ | ||
config NO_IOPORT_MAP | ||
def_bool n | ||
|
||
--- a/arch/mips/kernel/head.S | ||
+++ b/arch/mips/kernel/head.S | ||
@@ -79,6 +79,12 @@ FEXPORT(__kernel_entry) | ||
j kernel_entry | ||
#endif /* CONFIG_BOOT_RAW */ | ||
|
||
+#ifdef CONFIG_IMAGE_CMDLINE_HACK | ||
+ .ascii "CMDLINE:" | ||
+EXPORT(__image_cmdline) | ||
+ .fill 0x400 | ||
+#endif /* CONFIG_IMAGE_CMDLINE_HACK */ | ||
+ | ||
__REF | ||
|
||
NESTED(kernel_entry, 16, sp) # kernel entry point |
38 changes: 38 additions & 0 deletions
38
target/linux/generic/hack-6.0/321-powerpc_crtsavres_prereq.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
From 107c0964cb8db7ca28ac5199426414fdab3c274d Mon Sep 17 00:00:00 2001 | ||
From: "Alexandros C. Couloumbis" <alex@ozo.com> | ||
Date: Fri, 7 Jul 2017 17:14:51 +0200 | ||
Subject: hack: arch: powerpc: drop register save/restore library from modules | ||
|
||
Upstream GCC uses a libgcc function for saving/restoring registers. This | ||
makes the code bigger, and upstream kernels need to carry that function | ||
for every single kernel module. Our GCC is patched to avoid those | ||
references, so we can drop the extra bloat for modules. | ||
|
||
lede-commit: e8e1084654f50904e6bf77b70b2de3f137d7b3ec | ||
Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com> | ||
--- | ||
arch/powerpc/Makefile | 1 - | ||
1 file changed, 1 deletion(-) | ||
|
||
--- a/arch/powerpc/Makefile | ||
+++ b/arch/powerpc/Makefile | ||
@@ -42,19 +42,6 @@ machine-$(CONFIG_PPC64) += 64 | ||
machine-$(CONFIG_CPU_LITTLE_ENDIAN) += le | ||
UTS_MACHINE := $(subst $(space),,$(machine-y)) | ||
|
||
-# XXX This needs to be before we override LD below | ||
-ifdef CONFIG_PPC32 | ||
-KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o | ||
-else | ||
-ifeq ($(call ld-ifversion, -ge, 22500, y),y) | ||
-# Have the linker provide sfpr if possible. | ||
-# There is a corresponding test in arch/powerpc/lib/Makefile | ||
-KBUILD_LDFLAGS_MODULE += --save-restore-funcs | ||
-else | ||
-KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o | ||
-endif | ||
-endif | ||
- | ||
ifdef CONFIG_CPU_LITTLE_ENDIAN | ||
KBUILD_CFLAGS += -mlittle-endian | ||
KBUILD_LDFLAGS += -EL |
196 changes: 196 additions & 0 deletions
196
target/linux/generic/hack-6.0/410-block-fit-partition-parser.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,196 @@ | ||
--- a/block/blk.h | ||
+++ b/block/blk.h | ||
@@ -407,6 +407,8 @@ void blk_free_ext_minor(unsigned int min | ||
#define ADDPART_FLAG_NONE 0 | ||
#define ADDPART_FLAG_RAID 1 | ||
#define ADDPART_FLAG_WHOLEDISK 2 | ||
+#define ADDPART_FLAG_READONLY 4 | ||
+#define ADDPART_FLAG_ROOTDEV 8 | ||
int bdev_add_partition(struct gendisk *disk, int partno, sector_t start, | ||
sector_t length); | ||
int bdev_del_partition(struct gendisk *disk, int partno); | ||
--- a/block/partitions/Kconfig | ||
+++ b/block/partitions/Kconfig | ||
@@ -103,6 +103,13 @@ config ATARI_PARTITION | ||
Say Y here if you would like to use hard disks under Linux which | ||
were partitioned under the Atari OS. | ||
|
||
+config FIT_PARTITION | ||
+ bool "Flattened-Image-Tree (FIT) partition support" if PARTITION_ADVANCED | ||
+ default n | ||
+ help | ||
+ Say Y here if your system needs to mount the filesystem part of | ||
+ a Flattened-Image-Tree (FIT) image commonly used with Das U-Boot. | ||
+ | ||
config IBM_PARTITION | ||
bool "IBM disk label and partition support" | ||
depends on PARTITION_ADVANCED && S390 | ||
--- a/block/partitions/Makefile | ||
+++ b/block/partitions/Makefile | ||
@@ -8,6 +8,7 @@ obj-$(CONFIG_ACORN_PARTITION) += acorn.o | ||
obj-$(CONFIG_AMIGA_PARTITION) += amiga.o | ||
obj-$(CONFIG_ATARI_PARTITION) += atari.o | ||
obj-$(CONFIG_AIX_PARTITION) += aix.o | ||
+obj-$(CONFIG_FIT_PARTITION) += fit.o | ||
obj-$(CONFIG_CMDLINE_PARTITION) += cmdline.o | ||
obj-$(CONFIG_MAC_PARTITION) += mac.o | ||
obj-$(CONFIG_LDM_PARTITION) += ldm.o | ||
--- a/block/partitions/check.h | ||
+++ b/block/partitions/check.h | ||
@@ -57,6 +57,7 @@ int amiga_partition(struct parsed_partit | ||
int atari_partition(struct parsed_partitions *state); | ||
int cmdline_partition(struct parsed_partitions *state); | ||
int efi_partition(struct parsed_partitions *state); | ||
+int fit_partition(struct parsed_partitions *state); | ||
int ibm_partition(struct parsed_partitions *); | ||
int karma_partition(struct parsed_partitions *state); | ||
int ldm_partition(struct parsed_partitions *state); | ||
@@ -67,3 +68,5 @@ int sgi_partition(struct parsed_partitio | ||
int sun_partition(struct parsed_partitions *state); | ||
int sysv68_partition(struct parsed_partitions *state); | ||
int ultrix_partition(struct parsed_partitions *state); | ||
+ | ||
+int parse_fit_partitions(struct parsed_partitions *state, u64 start_sector, u64 nr_sectors, int *slot, int add_remain); | ||
--- a/block/partitions/core.c | ||
+++ b/block/partitions/core.c | ||
@@ -10,6 +10,10 @@ | ||
#include <linux/ctype.h> | ||
#include <linux/vmalloc.h> | ||
#include <linux/raid/detect.h> | ||
+#ifdef CONFIG_FIT_PARTITION | ||
+#include <linux/root_dev.h> | ||
+#endif | ||
+ | ||
#include "check.h" | ||
|
||
static int (*check_part[])(struct parsed_partitions *) = { | ||
@@ -46,6 +50,9 @@ static int (*check_part[])(struct parsed | ||
#ifdef CONFIG_EFI_PARTITION | ||
efi_partition, /* this must come before msdos */ | ||
#endif | ||
+#ifdef CONFIG_FIT_PARTITION | ||
+ fit_partition, | ||
+#endif | ||
#ifdef CONFIG_SGI_PARTITION | ||
sgi_partition, | ||
#endif | ||
@@ -398,6 +405,11 @@ static struct block_device *add_partitio | ||
goto out_del; | ||
} | ||
|
||
+#ifdef CONFIG_FIT_PARTITION | ||
+ if (flags & ADDPART_FLAG_READONLY) | ||
+ bdev->bd_read_only = true; | ||
+#endif | ||
+ | ||
/* everything is up and running, commence */ | ||
err = xa_insert(&disk->part_tbl, partno, bdev, GFP_KERNEL); | ||
if (err) | ||
@@ -585,6 +597,11 @@ static bool blk_add_partition(struct gen | ||
(state->parts[p].flags & ADDPART_FLAG_RAID)) | ||
md_autodetect_dev(part->bd_dev); | ||
|
||
+#ifdef CONFIG_FIT_PARTITION | ||
+ if ((state->parts[p].flags & ADDPART_FLAG_ROOTDEV) && ROOT_DEV == 0) | ||
+ ROOT_DEV = part->bd_dev; | ||
+#endif | ||
+ | ||
return true; | ||
} | ||
|
||
--- a/drivers/mtd/ubi/block.c | ||
+++ b/drivers/mtd/ubi/block.c | ||
@@ -433,6 +433,9 @@ int ubiblock_create(struct ubi_volume_in | ||
} | ||
gd->flags |= GENHD_FL_NO_PART; | ||
gd->private_data = dev; | ||
+#ifdef CONFIG_FIT_PARTITION | ||
+ gd->flags |= GENHD_FL_EXT_DEVT; | ||
+#endif | ||
sprintf(gd->disk_name, "ubiblock%d_%d", dev->ubi_num, dev->vol_id); | ||
set_capacity(gd, disk_capacity); | ||
dev->gd = gd; | ||
--- a/drivers/mtd/mtd_blkdevs.c | ||
+++ b/drivers/mtd/mtd_blkdevs.c | ||
@@ -346,6 +346,9 @@ int add_mtd_blktrans_dev(struct mtd_blkt | ||
gd->first_minor = (new->devnum) << tr->part_bits; | ||
gd->minors = 1 << tr->part_bits; | ||
gd->fops = &mtd_block_ops; | ||
+#ifdef CONFIG_FIT_PARTITION | ||
+ gd->flags |= GENHD_FL_EXT_DEVT; | ||
+#endif | ||
|
||
if (tr->part_bits) { | ||
if (new->devnum < 26) | ||
--- a/block/partitions/efi.c | ||
+++ b/block/partitions/efi.c | ||
@@ -716,6 +716,9 @@ int efi_partition(struct parsed_partitio | ||
gpt_entry *ptes = NULL; | ||
u32 i; | ||
unsigned ssz = queue_logical_block_size(state->disk->queue) / 512; | ||
+#ifdef CONFIG_FIT_PARTITION | ||
+ u32 extra_slot = 64; | ||
+#endif | ||
|
||
if (!find_valid_gpt(state, &gpt, &ptes) || !gpt || !ptes) { | ||
kfree(gpt); | ||
@@ -749,6 +752,11 @@ int efi_partition(struct parsed_partitio | ||
ARRAY_SIZE(ptes[i].partition_name)); | ||
utf16_le_to_7bit(ptes[i].partition_name, label_max, info->volname); | ||
state->parts[i + 1].has_info = true; | ||
+#ifdef CONFIG_FIT_PARTITION | ||
+ /* If this is a U-Boot FIT volume it may have subpartitions */ | ||
+ if (!efi_guidcmp(ptes[i].partition_type_guid, PARTITION_LINUX_FIT_GUID)) | ||
+ (void) parse_fit_partitions(state, start * ssz, size * ssz, &extra_slot, 1); | ||
+#endif | ||
} | ||
kfree(ptes); | ||
kfree(gpt); | ||
--- a/block/partitions/efi.h | ||
+++ b/block/partitions/efi.h | ||
@@ -51,6 +51,9 @@ | ||
#define PARTITION_LINUX_LVM_GUID \ | ||
EFI_GUID( 0xe6d6d379, 0xf507, 0x44c2, \ | ||
0xa2, 0x3c, 0x23, 0x8f, 0x2a, 0x3d, 0xf9, 0x28) | ||
+#define PARTITION_LINUX_FIT_GUID \ | ||
+ EFI_GUID( 0xcae9be83, 0xb15f, 0x49cc, \ | ||
+ 0x86, 0x3f, 0x08, 0x1b, 0x74, 0x4a, 0x2d, 0x93) | ||
|
||
typedef struct _gpt_header { | ||
__le64 signature; | ||
--- a/block/partitions/msdos.c | ||
+++ b/block/partitions/msdos.c | ||
@@ -564,6 +564,15 @@ static void parse_minix(struct parsed_pa | ||
#endif /* CONFIG_MINIX_SUBPARTITION */ | ||
} | ||
|
||
+static void parse_fit_mbr(struct parsed_partitions *state, | ||
+ sector_t offset, sector_t size, int origin) | ||
+{ | ||
+#ifdef CONFIG_FIT_PARTITION | ||
+ u32 extra_slot = 64; | ||
+ (void) parse_fit_partitions(state, offset, size, &extra_slot, 1); | ||
+#endif /* CONFIG_FIT_PARTITION */ | ||
+} | ||
+ | ||
static struct { | ||
unsigned char id; | ||
void (*parse)(struct parsed_partitions *, sector_t, sector_t, int); | ||
@@ -575,6 +584,7 @@ static struct { | ||
{UNIXWARE_PARTITION, parse_unixware}, | ||
{SOLARIS_X86_PARTITION, parse_solaris_x86}, | ||
{NEW_SOLARIS_X86_PARTITION, parse_solaris_x86}, | ||
+ {FIT_PARTITION, parse_fit_mbr}, | ||
{0, NULL}, | ||
}; | ||
|
||
--- a/include/linux/msdos_partition.h | ||
+++ b/include/linux/msdos_partition.h | ||
@@ -31,6 +31,7 @@ enum msdos_sys_ind { | ||
LINUX_LVM_PARTITION = 0x8e, | ||
LINUX_RAID_PARTITION = 0xfd, /* autodetect RAID partition */ | ||
|
||
+ FIT_PARTITION = 0x2e, /* U-Boot uImage.FIT */ | ||
SOLARIS_X86_PARTITION = 0x82, /* also Linux swap partitions */ | ||
NEW_SOLARIS_X86_PARTITION = 0xbf, | ||
|
39 changes: 39 additions & 0 deletions
39
target/linux/generic/hack-6.0/420-mtd-set-rootfs-to-be-root-dev.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
From: Gabor Juhos <juhosg@openwrt.org> | ||
Subject: kernel/3.1[02]: move MTD root device setup code to mtdcore | ||
|
||
The current code only allows to automatically set | ||
root device on MTD partitions. Move the code to MTD | ||
core to allow to use it with all MTD devices. | ||
|
||
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> | ||
--- | ||
drivers/mtd/mtdcore.c | 10 ++++++++++ | ||
1 file changed, 10 insertions(+) | ||
|
||
--- a/drivers/mtd/mtdcore.c | ||
+++ b/drivers/mtd/mtdcore.c | ||
@@ -27,6 +27,7 @@ | ||
#include <linux/reboot.h> | ||
#include <linux/leds.h> | ||
#include <linux/debugfs.h> | ||
+#include <linux/root_dev.h> | ||
#include <linux/nvmem-provider.h> | ||
|
||
#include <linux/mtd/mtd.h> | ||
@@ -748,6 +749,16 @@ int add_mtd_device(struct mtd_info *mtd) | ||
of this try_ nonsense, and no bitching about it | ||
either. :) */ | ||
__module_get(THIS_MODULE); | ||
+ | ||
+ if (!strcmp(mtd->name, "rootfs") && | ||
+ IS_ENABLED(CONFIG_MTD_ROOTFS_ROOT_DEV) && | ||
+ ROOT_DEV == 0) { | ||
+ unsigned int index = mtd->index; | ||
+ pr_notice("mtd: device %d (%s) set to be root filesystem\n", | ||
+ mtd->index, mtd->name); | ||
+ ROOT_DEV = MKDEV(MTD_BLOCK_MAJOR, index); | ||
+ } | ||
+ | ||
return 0; | ||
|
||
fail_nvmem_add: |
120 changes: 120 additions & 0 deletions
120
target/linux/generic/hack-6.0/421-drivers-mtd-parsers-add-nvmem-support-to-cmdlinepart.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
From 6fa9e3678eb002246df1280322b6a024853950a5 Mon Sep 17 00:00:00 2001 | ||
From: Ansuel Smith <ansuelsmth@gmail.com> | ||
Date: Mon, 11 Oct 2021 00:53:14 +0200 | ||
Subject: [PATCH] drivers: mtd: parsers: add nvmem support to cmdlinepart | ||
|
||
Assuming cmdlinepart is only one level deep partition scheme and that | ||
static partition are also defined in DTS, we can assign an of_node for | ||
partition declared from bootargs. cmdlinepart have priority than | ||
fiexed-partition parser so in this specific case the parser doesn't | ||
assign an of_node. Fix this by searching a defined of_node using a | ||
similar fixed_partition parser and if a partition is found with the same | ||
label, check that it has the same offset and size and return the DT | ||
of_node to correctly use NVMEM cells. | ||
|
||
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com> | ||
--- | ||
drivers/mtd/parsers/cmdlinepart.c | 71 +++++++++++++++++++++++++++++++ | ||
1 file changed, 71 insertions(+) | ||
|
||
--- a/drivers/mtd/parsers/cmdlinepart.c | ||
+++ b/drivers/mtd/parsers/cmdlinepart.c | ||
@@ -43,6 +43,7 @@ | ||
#include <linux/mtd/partitions.h> | ||
#include <linux/module.h> | ||
#include <linux/err.h> | ||
+#include <linux/of.h> | ||
|
||
/* debug macro */ | ||
#if 0 | ||
@@ -323,6 +324,68 @@ static int mtdpart_setup_real(char *s) | ||
return 0; | ||
} | ||
|
||
+static int search_fixed_partition(struct mtd_info *master, | ||
+ struct mtd_partition *target_part, | ||
+ struct mtd_partition *fixed_part) | ||
+{ | ||
+ struct device_node *mtd_node; | ||
+ struct device_node *ofpart_node; | ||
+ struct device_node *pp; | ||
+ struct mtd_partition part; | ||
+ const char *partname; | ||
+ | ||
+ mtd_node = mtd_get_of_node(master); | ||
+ if (!mtd_node) | ||
+ return -EINVAL; | ||
+ | ||
+ ofpart_node = of_get_child_by_name(mtd_node, "partitions"); | ||
+ | ||
+ for_each_child_of_node(ofpart_node, pp) { | ||
+ const __be32 *reg; | ||
+ int len; | ||
+ int a_cells, s_cells; | ||
+ | ||
+ reg = of_get_property(pp, "reg", &len); | ||
+ if (!reg) { | ||
+ pr_debug("%s: ofpart partition %pOF (%pOF) missing reg property.\n", | ||
+ master->name, pp, | ||
+ mtd_node); | ||
+ continue; | ||
+ } | ||
+ | ||
+ a_cells = of_n_addr_cells(pp); | ||
+ s_cells = of_n_size_cells(pp); | ||
+ if (len / 4 != a_cells + s_cells) { | ||
+ pr_debug("%s: ofpart partition %pOF (%pOF) error parsing reg property.\n", | ||
+ master->name, pp, | ||
+ mtd_node); | ||
+ continue; | ||
+ } | ||
+ | ||
+ part.offset = of_read_number(reg, a_cells); | ||
+ part.size = of_read_number(reg + a_cells, s_cells); | ||
+ part.of_node = pp; | ||
+ | ||
+ partname = of_get_property(pp, "label", &len); | ||
+ if (!partname) | ||
+ partname = of_get_property(pp, "name", &len); | ||
+ part.name = partname; | ||
+ | ||
+ if (!strncmp(target_part->name, part.name, len)) { | ||
+ if (part.offset != target_part->offset) | ||
+ return -EINVAL; | ||
+ | ||
+ if (part.size != target_part->size) | ||
+ return -EINVAL; | ||
+ | ||
+ memcpy(fixed_part, &part, sizeof(struct mtd_partition)); | ||
+ return 0; | ||
+ } | ||
+ } | ||
+ | ||
+ return -EINVAL; | ||
+} | ||
+ | ||
/* | ||
* Main function to be called from the MTD mapping driver/device to | ||
* obtain the partitioning information. At this point the command line | ||
@@ -338,6 +401,7 @@ static int parse_cmdline_partitions(stru | ||
int i, err; | ||
struct cmdline_mtd_partition *part; | ||
const char *mtd_id = master->name; | ||
+ struct mtd_partition fixed_part; | ||
|
||
/* parse command line */ | ||
if (!cmdline_parsed) { | ||
@@ -382,6 +446,13 @@ static int parse_cmdline_partitions(stru | ||
sizeof(*part->parts) * (part->num_parts - i)); | ||
i--; | ||
} | ||
+ | ||
+ err = search_fixed_partition(master, &part->parts[i], &fixed_part); | ||
+ if (!err) { | ||
+ part->parts[i].of_node = fixed_part.of_node; | ||
+ pr_info("Found partition defined in DT for %s. Assigning OF node to support nvmem.", | ||
+ part->parts[i].name); | ||
+ } | ||
} | ||
|
||
*pparts = kmemdup(part->parts, sizeof(*part->parts) * part->num_parts, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
--- a/drivers/mtd/nand/Kconfig | ||
+++ b/drivers/mtd/nand/Kconfig | ||
@@ -61,6 +61,10 @@ config MTD_NAND_ECC_MEDIATEK | ||
help | ||
This enables support for the hardware ECC engine from Mediatek. | ||
|
||
+config MTD_NAND_MTK_BMT | ||
+ bool "Support MediaTek NAND Bad-block Management Table" | ||
+ default n | ||
+ | ||
endmenu | ||
|
||
endmenu | ||
--- a/drivers/mtd/nand/Makefile | ||
+++ b/drivers/mtd/nand/Makefile | ||
@@ -3,6 +3,7 @@ | ||
nandcore-objs := core.o bbt.o | ||
obj-$(CONFIG_MTD_NAND_CORE) += nandcore.o | ||
obj-$(CONFIG_MTD_NAND_ECC_MEDIATEK) += ecc-mtk.o | ||
+obj-$(CONFIG_MTD_NAND_MTK_BMT) += mtk_bmt.o mtk_bmt_v2.o mtk_bmt_bbt.o mtk_bmt_nmbm.o | ||
|
||
obj-y += onenand/ | ||
obj-y += raw/ |
1,040 changes: 1,040 additions & 0 deletions
1,040
target/linux/generic/hack-6.0/531-debloat_lzma.patch
Large diffs are not rendered by default.
Oops, something went wrong.
41 changes: 41 additions & 0 deletions
41
target/linux/generic/hack-6.0/640-bridge-only-accept-EAP-locally.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
From: Felix Fietkau <nbd@nbd.name> | ||
Date: Fri, 7 Jul 2017 17:18:54 +0200 | ||
Subject: bridge: only accept EAP locally | ||
|
||
When bridging, do not forward EAP frames to other ports, only deliver | ||
them locally, regardless of the state. | ||
|
||
Signed-off-by: Felix Fietkau <nbd@nbd.name> | ||
[add disable_eap_hack sysfs attribute] | ||
Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com> | ||
--- | ||
|
||
--- a/net/bridge/br_input.c | ||
+++ b/net/bridge/br_input.c | ||
@@ -133,10 +133,14 @@ int br_handle_frame_finish(struct net *n | ||
} | ||
} | ||
|
||
+ BR_INPUT_SKB_CB(skb)->brdev = br->dev; | ||
+ | ||
+ if (skb->protocol == htons(ETH_P_PAE) && !br->disable_eap_hack) | ||
+ return br_pass_frame_up(skb); | ||
+ | ||
if (state == BR_STATE_LEARNING) | ||
goto drop; | ||
|
||
- BR_INPUT_SKB_CB(skb)->brdev = br->dev; | ||
BR_INPUT_SKB_CB(skb)->src_port_isolated = !!(p->flags & BR_ISOLATED); | ||
|
||
if (IS_ENABLED(CONFIG_INET) && | ||
--- a/net/bridge/br_private.h | ||
+++ b/net/bridge/br_private.h | ||
@@ -482,6 +482,8 @@ struct net_bridge { | ||
u16 group_fwd_mask; | ||
u16 group_fwd_mask_required; | ||
|
||
+ bool disable_eap_hack; | ||
+ | ||
/* STP */ | ||
bridge_id designated_root; | ||
bridge_id bridge_id; |
212 changes: 212 additions & 0 deletions
212
target/linux/generic/hack-6.0/645-netfilter-connmark-introduce-set-dscpmark.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,212 @@ | ||
From eda40b8c8c82e0f2789d6bc8bf63846dce2e8f32 Mon Sep 17 00:00:00 2001 | ||
From: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> | ||
Date: Sat, 23 Mar 2019 09:29:49 +0000 | ||
Subject: [PATCH] netfilter: connmark: introduce set-dscpmark | ||
|
||
set-dscpmark is a method of storing the DSCP of an ip packet into | ||
conntrack mark. In combination with a suitable tc filter action | ||
(act_ctinfo) DSCP values are able to be stored in the mark on egress and | ||
restored on ingress across links that otherwise alter or bleach DSCP. | ||
|
||
This is useful for qdiscs such as CAKE which are able to shape according | ||
to policies based on DSCP. | ||
|
||
Ingress classification is traditionally a challenging task since | ||
iptables rules haven't yet run and tc filter/eBPF programs are pre-NAT | ||
lookups, hence are unable to see internal IPv4 addresses as used on the | ||
typical home masquerading gateway. | ||
|
||
x_tables CONNMARK set-dscpmark target solves the problem of storing the | ||
DSCP to the conntrack mark in a way suitable for the new act_ctinfo tc | ||
action to restore. | ||
|
||
The set-dscpmark option accepts 2 parameters, a 32bit 'dscpmask' and a | ||
32bit 'statemask'. The dscp mask must be 6 contiguous bits and | ||
represents the area where the DSCP will be stored in the connmark. The | ||
state mask is a minimum 1 bit length mask that must not overlap with the | ||
dscpmask. It represents a flag which is set when the DSCP has been | ||
stored in the conntrack mark. This is useful to implement a 'one shot' | ||
iptables based classification where the 'complicated' iptables rules are | ||
only run once to classify the connection on initial (egress) packet and | ||
subsequent packets are all marked/restored with the same DSCP. A state | ||
mask of zero disables the setting of a status bit/s. | ||
|
||
example syntax with a suitably modified iptables user space application: | ||
|
||
iptables -A QOS_MARK_eth0 -t mangle -j CONNMARK --set-dscpmark 0xfc000000/0x01000000 | ||
|
||
Would store the DSCP in the top 6 bits of the 32bit mark field, and use | ||
the LSB of the top byte as the 'DSCP has been stored' marker. | ||
|
||
|----0xFC----conntrack mark----000000---| | ||
| Bits 31-26 | bit 25 | bit24 |~~~ Bit 0| | ||
| DSCP | unused | flag |unused | | ||
|-----------------------0x01---000000---| | ||
^ ^ | ||
| | | ||
---| Conditional flag | ||
| set this when dscp | ||
|-ip diffserv-| stored in mark | ||
| 6 bits | | ||
|-------------| | ||
|
||
an identically configured tc action to restore looks like: | ||
|
||
tc filter show dev eth0 ingress | ||
filter parent ffff: protocol all pref 10 u32 chain 0 | ||
filter parent ffff: protocol all pref 10 u32 chain 0 fh 800: ht divisor 1 | ||
filter parent ffff: protocol all pref 10 u32 chain 0 fh 800::800 order 2048 key ht 800 bkt 0 flowid 1: not_in_hw | ||
match 00000000/00000000 at 0 | ||
action order 1: ctinfo zone 0 pipe | ||
index 2 ref 1 bind 1 dscp 0xfc000000/0x1000000 | ||
|
||
action order 2: mirred (Egress Redirect to device ifb4eth0) stolen | ||
index 1 ref 1 bind 1 | ||
|
||
|----0xFC----conntrack mark----000000---| | ||
| Bits 31-26 | bit 25 | bit24 |~~~ Bit 0| | ||
| DSCP | unused | flag |unused | | ||
|-----------------------0x01---000000---| | ||
| | | ||
| | | ||
---| Conditional flag | ||
v only restore if set | ||
|-ip diffserv-| | ||
| 6 bits | | ||
|-------------| | ||
|
||
Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> | ||
--- | ||
include/uapi/linux/netfilter/xt_connmark.h | 10 ++++ | ||
net/netfilter/xt_connmark.c | 55 ++++++++++++++++++---- | ||
2 files changed, 57 insertions(+), 8 deletions(-) | ||
|
||
--- a/include/uapi/linux/netfilter/xt_connmark.h | ||
+++ b/include/uapi/linux/netfilter/xt_connmark.h | ||
@@ -20,6 +20,11 @@ enum { | ||
}; | ||
|
||
enum { | ||
+ XT_CONNMARK_VALUE = (1 << 0), | ||
+ XT_CONNMARK_DSCP = (1 << 1) | ||
+}; | ||
+ | ||
+enum { | ||
D_SHIFT_LEFT = 0, | ||
D_SHIFT_RIGHT, | ||
}; | ||
@@ -34,6 +39,11 @@ struct xt_connmark_tginfo2 { | ||
__u8 shift_dir, shift_bits, mode; | ||
}; | ||
|
||
+struct xt_connmark_tginfo3 { | ||
+ __u32 ctmark, ctmask, nfmask; | ||
+ __u8 shift_dir, shift_bits, mode, func; | ||
+}; | ||
+ | ||
struct xt_connmark_mtinfo1 { | ||
__u32 mark, mask; | ||
__u8 invert; | ||
--- a/net/netfilter/xt_connmark.c | ||
+++ b/net/netfilter/xt_connmark.c | ||
@@ -24,12 +24,13 @@ MODULE_ALIAS("ipt_connmark"); | ||
MODULE_ALIAS("ip6t_connmark"); | ||
|
||
static unsigned int | ||
-connmark_tg_shift(struct sk_buff *skb, const struct xt_connmark_tginfo2 *info) | ||
+connmark_tg_shift(struct sk_buff *skb, const struct xt_connmark_tginfo3 *info) | ||
{ | ||
enum ip_conntrack_info ctinfo; | ||
u_int32_t new_targetmark; | ||
struct nf_conn *ct; | ||
u_int32_t newmark; | ||
+ u_int8_t dscp; | ||
|
||
ct = nf_ct_get(skb, &ctinfo); | ||
if (ct == NULL) | ||
@@ -37,12 +38,24 @@ connmark_tg_shift(struct sk_buff *skb, c | ||
|
||
switch (info->mode) { | ||
case XT_CONNMARK_SET: | ||
- newmark = (ct->mark & ~info->ctmask) ^ info->ctmark; | ||
- if (info->shift_dir == D_SHIFT_RIGHT) | ||
- newmark >>= info->shift_bits; | ||
- else | ||
- newmark <<= info->shift_bits; | ||
+ newmark = ct->mark; | ||
+ if (info->func & XT_CONNMARK_VALUE) { | ||
+ newmark = (newmark & ~info->ctmask) ^ info->ctmark; | ||
+ if (info->shift_dir == D_SHIFT_RIGHT) | ||
+ newmark >>= info->shift_bits; | ||
+ else | ||
+ newmark <<= info->shift_bits; | ||
+ } else if (info->func & XT_CONNMARK_DSCP) { | ||
+ if (skb->protocol == htons(ETH_P_IP)) | ||
+ dscp = ipv4_get_dsfield(ip_hdr(skb)) >> 2; | ||
+ else if (skb->protocol == htons(ETH_P_IPV6)) | ||
+ dscp = ipv6_get_dsfield(ipv6_hdr(skb)) >> 2; | ||
+ else /* protocol doesn't have diffserv */ | ||
+ break; | ||
|
||
+ newmark = (newmark & ~info->ctmark) | | ||
+ (info->ctmask | (dscp << info->shift_bits)); | ||
+ } | ||
if (ct->mark != newmark) { | ||
ct->mark = newmark; | ||
nf_conntrack_event_cache(IPCT_MARK, ct); | ||
@@ -81,20 +94,36 @@ static unsigned int | ||
connmark_tg(struct sk_buff *skb, const struct xt_action_param *par) | ||
{ | ||
const struct xt_connmark_tginfo1 *info = par->targinfo; | ||
- const struct xt_connmark_tginfo2 info2 = { | ||
+ const struct xt_connmark_tginfo3 info3 = { | ||
.ctmark = info->ctmark, | ||
.ctmask = info->ctmask, | ||
.nfmask = info->nfmask, | ||
.mode = info->mode, | ||
+ .func = XT_CONNMARK_VALUE | ||
}; | ||
|
||
- return connmark_tg_shift(skb, &info2); | ||
+ return connmark_tg_shift(skb, &info3); | ||
} | ||
|
||
static unsigned int | ||
connmark_tg_v2(struct sk_buff *skb, const struct xt_action_param *par) | ||
{ | ||
const struct xt_connmark_tginfo2 *info = par->targinfo; | ||
+ const struct xt_connmark_tginfo3 info3 = { | ||
+ .ctmark = info->ctmark, | ||
+ .ctmask = info->ctmask, | ||
+ .nfmask = info->nfmask, | ||
+ .mode = info->mode, | ||
+ .func = XT_CONNMARK_VALUE | ||
+ }; | ||
+ | ||
+ return connmark_tg_shift(skb, &info3); | ||
+} | ||
+ | ||
+static unsigned int | ||
+connmark_tg_v3(struct sk_buff *skb, const struct xt_action_param *par) | ||
+{ | ||
+ const struct xt_connmark_tginfo3 *info = par->targinfo; | ||
|
||
return connmark_tg_shift(skb, info); | ||
} | ||
@@ -165,6 +194,16 @@ static struct xt_target connmark_tg_reg[ | ||
.targetsize = sizeof(struct xt_connmark_tginfo2), | ||
.destroy = connmark_tg_destroy, | ||
.me = THIS_MODULE, | ||
+ }, | ||
+ { | ||
+ .name = "CONNMARK", | ||
+ .revision = 3, | ||
+ .family = NFPROTO_UNSPEC, | ||
+ .checkentry = connmark_tg_check, | ||
+ .target = connmark_tg_v3, | ||
+ .targetsize = sizeof(struct xt_connmark_tginfo3), | ||
+ .destroy = connmark_tg_destroy, | ||
+ .me = THIS_MODULE, | ||
} | ||
}; | ||
|
776 changes: 776 additions & 0 deletions
776
target/linux/generic/hack-6.0/650-netfilter-add-xt_FLOWOFFLOAD-target.patch
Large diffs are not rendered by default.
Oops, something went wrong.
24 changes: 24 additions & 0 deletions
24
target/linux/generic/hack-6.0/651-wireless_mesh_header.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
From 6d3bc769657b0ee7c7506dad9911111c4226a7ea Mon Sep 17 00:00:00 2001 | ||
From: Imre Kaloz <kaloz@openwrt.org> | ||
Date: Fri, 7 Jul 2017 17:21:05 +0200 | ||
Subject: mac80211: increase wireless mesh header size | ||
|
||
lede-commit 3d4466cfd8f75f717efdb1f96fdde3c70d865fc1 | ||
Signed-off-by: Imre Kaloz <kaloz@openwrt.org> | ||
--- | ||
include/linux/netdevice.h | 4 ++-- | ||
1 file changed, 2 insertions(+), 2 deletions(-) | ||
|
||
--- a/include/linux/netdevice.h | ||
+++ b/include/linux/netdevice.h | ||
@@ -149,8 +149,8 @@ static inline bool dev_xmit_complete(int | ||
|
||
#if defined(CONFIG_HYPERV_NET) | ||
# define LL_MAX_HEADER 128 | ||
-#elif defined(CONFIG_WLAN) || IS_ENABLED(CONFIG_AX25) | ||
-# if defined(CONFIG_MAC80211_MESH) | ||
+#elif defined(CONFIG_WLAN) || IS_ENABLED(CONFIG_AX25) || 1 | ||
+# if defined(CONFIG_MAC80211_MESH) || 1 | ||
# define LL_MAX_HEADER 128 | ||
# else | ||
# define LL_MAX_HEADER 96 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
From a6ccb238939b25851474a279b20367fd24a0e816 Mon Sep 17 00:00:00 2001 | ||
From: Felix Fietkau <nbd@nbd.name> | ||
Date: Fri, 7 Jul 2017 17:21:53 +0200 | ||
Subject: hack: net: fq_codel: tune defaults for small devices | ||
|
||
Assume that x86_64 devices always have a big memory and do not need this | ||
optimization compared to devices with only 32 MB or 64 MB RAM. | ||
|
||
Signed-off-by: Felix Fietkau <nbd@nbd.name> | ||
--- | ||
net/sched/sch_fq_codel.c | 2 +- | ||
1 file changed, 1 insertion(+), 1 deletion(-) | ||
|
||
--- a/net/sched/sch_fq_codel.c | ||
+++ b/net/sched/sch_fq_codel.c | ||
@@ -476,7 +476,11 @@ static int fq_codel_init(struct Qdisc *s | ||
|
||
sch->limit = 10*1024; | ||
q->flows_cnt = 1024; | ||
+#ifdef CONFIG_X86_64 | ||
q->memory_limit = 32 << 20; /* 32 MBytes */ | ||
+#else | ||
+ q->memory_limit = 4 << 20; /* 4 MBytes */ | ||
+#endif | ||
q->drop_batch_size = 64; | ||
q->quantum = psched_mtu(qdisc_dev(sch)); | ||
INIT_LIST_HEAD(&q->new_flows); |
100 changes: 100 additions & 0 deletions
100
target/linux/generic/hack-6.0/661-use_fq_codel_by_default.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
From 1d418f7e88035ed7a94073f6354246c66e9193e9 Mon Sep 17 00:00:00 2001 | ||
From: Felix Fietkau <nbd@nbd.name> | ||
Date: Fri, 7 Jul 2017 17:22:58 +0200 | ||
Subject: fq_codel: switch default qdisc from pfifo_fast to fq_codel and remove pfifo_fast | ||
|
||
Signed-off-by: Felix Fietkau <nbd@nbd.name> | ||
--- | ||
include/net/sch_generic.h | 3 ++- | ||
net/sched/Kconfig | 3 ++- | ||
net/sched/sch_api.c | 2 +- | ||
net/sched/sch_fq_codel.c | 3 ++- | ||
net/sched/sch_generic.c | 4 ++-- | ||
5 files changed, 9 insertions(+), 6 deletions(-) | ||
|
||
--- a/include/net/sch_generic.h | ||
+++ b/include/net/sch_generic.h | ||
@@ -585,12 +585,13 @@ extern struct Qdisc_ops noop_qdisc_ops; | ||
extern struct Qdisc_ops pfifo_fast_ops; | ||
extern struct Qdisc_ops mq_qdisc_ops; | ||
extern struct Qdisc_ops noqueue_qdisc_ops; | ||
+extern struct Qdisc_ops fq_codel_qdisc_ops; | ||
extern const struct Qdisc_ops *default_qdisc_ops; | ||
static inline const struct Qdisc_ops * | ||
get_default_qdisc_ops(const struct net_device *dev, int ntx) | ||
{ | ||
return ntx < dev->real_num_tx_queues ? | ||
- default_qdisc_ops : &pfifo_fast_ops; | ||
+ default_qdisc_ops : &fq_codel_qdisc_ops; | ||
} | ||
|
||
struct Qdisc_class_common { | ||
--- a/net/sched/Kconfig | ||
+++ b/net/sched/Kconfig | ||
@@ -4,8 +4,9 @@ | ||
# | ||
|
||
menuconfig NET_SCHED | ||
- bool "QoS and/or fair queueing" | ||
+ def_bool y | ||
select NET_SCH_FIFO | ||
+ select NET_SCH_FQ_CODEL | ||
help | ||
When the kernel has several packets to send out over a network | ||
device, it has to decide which ones to send first, which ones to | ||
--- a/net/sched/sch_api.c | ||
+++ b/net/sched/sch_api.c | ||
@@ -2276,7 +2276,7 @@ static int __init pktsched_init(void) | ||
return err; | ||
} | ||
|
||
- register_qdisc(&pfifo_fast_ops); | ||
+ register_qdisc(&fq_codel_qdisc_ops); | ||
register_qdisc(&pfifo_qdisc_ops); | ||
register_qdisc(&bfifo_qdisc_ops); | ||
register_qdisc(&pfifo_head_drop_qdisc_ops); | ||
--- a/net/sched/sch_fq_codel.c | ||
+++ b/net/sched/sch_fq_codel.c | ||
@@ -721,7 +721,7 @@ static const struct Qdisc_class_ops fq_c | ||
.walk = fq_codel_walk, | ||
}; | ||
|
||
-static struct Qdisc_ops fq_codel_qdisc_ops __read_mostly = { | ||
+struct Qdisc_ops fq_codel_qdisc_ops __read_mostly = { | ||
.cl_ops = &fq_codel_class_ops, | ||
.id = "fq_codel", | ||
.priv_size = sizeof(struct fq_codel_sched_data), | ||
@@ -736,6 +736,7 @@ static struct Qdisc_ops fq_codel_qdisc_o | ||
.dump_stats = fq_codel_dump_stats, | ||
.owner = THIS_MODULE, | ||
}; | ||
+EXPORT_SYMBOL(fq_codel_qdisc_ops); | ||
|
||
static int __init fq_codel_module_init(void) | ||
{ | ||
--- a/net/sched/sch_generic.c | ||
+++ b/net/sched/sch_generic.c | ||
@@ -32,7 +32,7 @@ | ||
#include <net/xfrm.h> | ||
|
||
/* Qdisc to use by default */ | ||
-const struct Qdisc_ops *default_qdisc_ops = &pfifo_fast_ops; | ||
+const struct Qdisc_ops *default_qdisc_ops = &fq_codel_qdisc_ops; | ||
EXPORT_SYMBOL(default_qdisc_ops); | ||
|
||
static void qdisc_maybe_clear_missed(struct Qdisc *q, | ||
@@ -1142,12 +1142,12 @@ static void attach_one_default_qdisc(str | ||
void *_unused) | ||
{ | ||
struct Qdisc *qdisc; | ||
- const struct Qdisc_ops *ops = default_qdisc_ops; | ||
+ const struct Qdisc_ops *ops = &fq_codel_qdisc_ops; | ||
|
||
if (dev->priv_flags & IFF_NO_QUEUE) | ||
ops = &noqueue_qdisc_ops; | ||
else if(dev->type == ARPHRD_CAN) | ||
- ops = &pfifo_fast_ops; | ||
+ ops = &fq_codel_qdisc_ops; | ||
|
||
qdisc = qdisc_create_dflt(dev_queue, ops, TC_H_ROOT, NULL); | ||
if (!qdisc) |
129 changes: 129 additions & 0 deletions
129
target/linux/generic/hack-6.0/700-swconfig_switch_drivers.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,129 @@ | ||
From 36e516290611e613aa92996cb4339561452695b4 Mon Sep 17 00:00:00 2001 | ||
From: Felix Fietkau <nbd@nbd.name> | ||
Date: Fri, 7 Jul 2017 17:24:23 +0200 | ||
Subject: net: swconfig: adds openwrt switch layer | ||
|
||
Signed-off-by: Felix Fietkau <nbd@nbd.name> | ||
--- | ||
drivers/net/phy/Kconfig | 83 +++++++++++++++++++++++++++++++++++++++++++++++ | ||
drivers/net/phy/Makefile | 15 +++++++++ | ||
include/uapi/linux/Kbuild | 1 + | ||
3 files changed, 99 insertions(+) | ||
|
||
--- a/drivers/net/phy/Kconfig | ||
+++ b/drivers/net/phy/Kconfig | ||
@@ -61,6 +61,80 @@ config SFP | ||
depends on HWMON || HWMON=n | ||
select MDIO_I2C | ||
|
||
+comment "Switch configuration API + drivers" | ||
+ | ||
+config SWCONFIG | ||
+ tristate "Switch configuration API" | ||
+ help | ||
+ Switch configuration API using netlink. This allows | ||
+ you to configure the VLAN features of certain switches. | ||
+ | ||
+config SWCONFIG_LEDS | ||
+ bool "Switch LED trigger support" | ||
+ depends on (SWCONFIG && LEDS_TRIGGERS) | ||
+ | ||
+config ADM6996_PHY | ||
+ tristate "Driver for ADM6996 switches" | ||
+ select SWCONFIG | ||
+ help | ||
+ Currently supports the ADM6996FC and ADM6996M switches. | ||
+ Support for FC is very limited. | ||
+ | ||
+config AR8216_PHY | ||
+ tristate "Driver for Atheros AR8216 switches" | ||
+ select SWCONFIG | ||
+ | ||
+config AR8216_PHY_LEDS | ||
+ bool "Atheros AR8216 switch LED support" | ||
+ depends on (AR8216_PHY && LEDS_CLASS) | ||
+ | ||
+source "drivers/net/phy/b53/Kconfig" | ||
+ | ||
+config IP17XX_PHY | ||
+ tristate "Driver for IC+ IP17xx switches" | ||
+ select SWCONFIG | ||
+ | ||
+config PSB6970_PHY | ||
+ tristate "Lantiq XWAY Tantos (PSB6970) Ethernet switch" | ||
+ select SWCONFIG | ||
+ select ETHERNET_PACKET_MANGLE | ||
+ | ||
+config RTL8306_PHY | ||
+ tristate "Driver for Realtek RTL8306S switches" | ||
+ select SWCONFIG | ||
+ | ||
+config RTL8366_SMI | ||
+ tristate "Driver for the RTL8366 SMI interface" | ||
+ depends on GPIOLIB | ||
+ help | ||
+ This module implements the SMI interface protocol which is used | ||
+ by some RTL8366 ethernet switch devices via the generic GPIO API. | ||
+ | ||
+if RTL8366_SMI | ||
+ | ||
+config RTL8366_SMI_DEBUG_FS | ||
+ bool "RTL8366 SMI interface debugfs support" | ||
+ depends on DEBUG_FS | ||
+ default n | ||
+ | ||
+config RTL8366S_PHY | ||
+ tristate "Driver for the Realtek RTL8366S switch" | ||
+ select SWCONFIG | ||
+ | ||
+config RTL8366RB_PHY | ||
+ tristate "Driver for the Realtek RTL8366RB switch" | ||
+ select SWCONFIG | ||
+ | ||
+config RTL8367_PHY | ||
+ tristate "Driver for the Realtek RTL8367R/M switches" | ||
+ select SWCONFIG | ||
+ | ||
+config RTL8367B_PHY | ||
+ tristate "Driver fot the Realtek RTL8367R-VB switch" | ||
+ select SWCONFIG | ||
+ | ||
+endif # RTL8366_SMI | ||
+ | ||
comment "MII PHY device drivers" | ||
|
||
config AMD_PHY | ||
--- a/drivers/net/phy/Makefile | ||
+++ b/drivers/net/phy/Makefile | ||
@@ -24,6 +24,19 @@ libphy-$(CONFIG_LED_TRIGGER_PHY) += phy_ | ||
obj-$(CONFIG_PHYLINK) += phylink.o | ||
obj-$(CONFIG_PHYLIB) += libphy.o | ||
|
||
+obj-$(CONFIG_SWCONFIG) += swconfig.o | ||
+obj-$(CONFIG_ADM6996_PHY) += adm6996.o | ||
+obj-$(CONFIG_AR8216_PHY) += ar8216.o ar8327.o | ||
+obj-$(CONFIG_SWCONFIG_B53) += b53/ | ||
+obj-$(CONFIG_IP17XX_PHY) += ip17xx.o | ||
+obj-$(CONFIG_PSB6970_PHY) += psb6970.o | ||
+obj-$(CONFIG_RTL8306_PHY) += rtl8306.o | ||
+obj-$(CONFIG_RTL8366_SMI) += rtl8366_smi.o | ||
+obj-$(CONFIG_RTL8366S_PHY) += rtl8366s.o | ||
+obj-$(CONFIG_RTL8366RB_PHY) += rtl8366rb.o | ||
+obj-$(CONFIG_RTL8367_PHY) += rtl8367.o | ||
+obj-$(CONFIG_RTL8367B_PHY) += rtl8367b.o | ||
+ | ||
obj-$(CONFIG_NETWORK_PHY_TIMESTAMPING) += mii_timestamper.o | ||
|
||
obj-$(CONFIG_SFP) += sfp.o | ||
--- a/include/linux/platform_data/b53.h | ||
+++ b/include/linux/platform_data/b53.h | ||
@@ -29,6 +29,9 @@ struct b53_platform_data { | ||
u32 chip_id; | ||
u16 enabled_ports; | ||
|
||
+ /* allow to specify an ethX alias */ | ||
+ const char *alias; | ||
+ | ||
/* only used by MMAP'd driver */ | ||
unsigned big_endian:1; | ||
void __iomem *regs; |
74 changes: 74 additions & 0 deletions
74
target/linux/generic/hack-6.0/760-net-usb-r8152-add-LED-configuration-from-OF.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
From 82985725e071f2a5735052f18e109a32aeac3a0b Mon Sep 17 00:00:00 2001 | ||
From: David Bauer <mail@david-bauer.net> | ||
Date: Sun, 26 Jul 2020 02:38:31 +0200 | ||
Subject: [PATCH] net: usb: r8152: add LED configuration from OF | ||
|
||
This adds the ability to configure the LED configuration register using | ||
OF. This way, the correct value for board specific LED configuration can | ||
be determined. | ||
|
||
Signed-off-by: David Bauer <mail@david-bauer.net> | ||
--- | ||
drivers/net/usb/r8152.c | 23 +++++++++++++++++++++++ | ||
1 file changed, 23 insertions(+) | ||
|
||
--- a/drivers/net/usb/r8152.c | ||
+++ b/drivers/net/usb/r8152.c | ||
@@ -11,6 +11,7 @@ | ||
#include <linux/mii.h> | ||
#include <linux/ethtool.h> | ||
#include <linux/usb.h> | ||
+#include <linux/of.h> | ||
#include <linux/crc32.h> | ||
#include <linux/if_vlan.h> | ||
#include <linux/uaccess.h> | ||
@@ -6864,6 +6865,22 @@ static void rtl_tally_reset(struct r8152 | ||
ocp_write_word(tp, MCU_TYPE_PLA, PLA_RSTTALLY, ocp_data); | ||
} | ||
|
||
+static int r8152_led_configuration(struct r8152 *tp) | ||
+{ | ||
+ u32 led_data; | ||
+ int ret; | ||
+ | ||
+ ret = of_property_read_u32(tp->udev->dev.of_node, "realtek,led-data", | ||
+ &led_data); | ||
+ | ||
+ if (ret) | ||
+ return ret; | ||
+ | ||
+ ocp_write_word(tp, MCU_TYPE_PLA, PLA_LEDSEL, led_data); | ||
+ | ||
+ return 0; | ||
+} | ||
+ | ||
static void r8152b_init(struct r8152 *tp) | ||
{ | ||
u32 ocp_data; | ||
@@ -6905,6 +6922,8 @@ static void r8152b_init(struct r8152 *tp | ||
ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL); | ||
ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN); | ||
ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data); | ||
+ | ||
+ r8152_led_configuration(tp); | ||
} | ||
|
||
static void r8153_init(struct r8152 *tp) | ||
@@ -7045,6 +7064,8 @@ static void r8153_init(struct r8152 *tp) | ||
tp->coalesce = COALESCE_SLOW; | ||
break; | ||
} | ||
+ | ||
+ r8152_led_configuration(tp); | ||
} | ||
|
||
static void r8153b_init(struct r8152 *tp) | ||
@@ -7127,6 +7148,8 @@ static void r8153b_init(struct r8152 *tp | ||
rtl_tally_reset(tp); | ||
|
||
tp->coalesce = 15000; /* 15 us */ | ||
+ | ||
+ r8152_led_configuration(tp); | ||
} | ||
|
||
static void r8153c_init(struct r8152 *tp) |
54 changes: 54 additions & 0 deletions
54
target/linux/generic/hack-6.0/761-dt-bindings-net-add-RTL8152-binding-documentation.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
From 3ee05f4aa64fc86af3be5bc176ba5808de9260a7 Mon Sep 17 00:00:00 2001 | ||
From: David Bauer <mail@david-bauer.net> | ||
Date: Sun, 26 Jul 2020 15:30:33 +0200 | ||
Subject: [PATCH] dt-bindings: net: add RTL8152 binding documentation | ||
|
||
Add binding documentation for the Realtek RTL8152 / RTL8153 USB ethernet | ||
adapters. | ||
|
||
Signed-off-by: David Bauer <mail@david-bauer.net> | ||
--- | ||
.../bindings/net/realtek,rtl8152.yaml | 36 +++++++++++++++++++ | ||
1 file changed, 36 insertions(+) | ||
create mode 100644 Documentation/devicetree/bindings/net/realtek,rtl8152.yaml | ||
|
||
--- /dev/null | ||
+++ b/Documentation/devicetree/bindings/net/realtek,rtl8152.yaml | ||
@@ -0,0 +1,36 @@ | ||
+# SPDX-License-Identifier: GPL-2.0 | ||
+%YAML 1.2 | ||
+--- | ||
+$id: http://devicetree.org/schemas/net/realtek,rtl8152.yaml# | ||
+$schema: http://devicetree.org/meta-schemas/core.yaml# | ||
+ | ||
+title: Realtek RTL8152/RTL8153 series USB ethernet | ||
+ | ||
+maintainers: | ||
+ - David Bauer <mail@david-bauer.net> | ||
+ | ||
+properties: | ||
+ compatible: | ||
+ oneOf: | ||
+ - items: | ||
+ - enum: | ||
+ - realtek,rtl8152 | ||
+ - realtek,rtl8153 | ||
+ | ||
+ reg: | ||
+ description: The device number on the USB bus | ||
+ | ||
+ realtek,led-data: | ||
+ description: Value to be written to the LED configuration register. | ||
+ | ||
+required: | ||
+ - compatible | ||
+ - reg | ||
+ | ||
+examples: | ||
+ - | | ||
+ usb-eth@2 { | ||
+ compatible = "realtek,rtl8153"; | ||
+ reg = <2>; | ||
+ realtek,led-data = <0x87>; | ||
+ }; | ||
\ No newline at end of file |
98 changes: 98 additions & 0 deletions
98
target/linux/generic/hack-6.0/773-bgmac-add-srab-switch.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
From 3cb240533ab787899dc7f17aa7d6c5b4810e2e58 Mon Sep 17 00:00:00 2001 | ||
From: Hauke Mehrtens <hauke@hauke-m.de> | ||
Date: Fri, 7 Jul 2017 17:26:01 +0200 | ||
Subject: bcm53xx: bgmac: use srab switch driver | ||
|
||
use the srab switch driver on these SoCs. | ||
|
||
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> | ||
--- | ||
drivers/net/ethernet/broadcom/bgmac-bcma.c | 1 + | ||
drivers/net/ethernet/broadcom/bgmac.c | 24 ++++++++++++++++++++++++ | ||
drivers/net/ethernet/broadcom/bgmac.h | 4 ++++ | ||
3 files changed, 29 insertions(+) | ||
|
||
--- a/drivers/net/ethernet/broadcom/bgmac-bcma.c | ||
+++ b/drivers/net/ethernet/broadcom/bgmac-bcma.c | ||
@@ -280,6 +280,7 @@ static int bgmac_probe(struct bcma_devic | ||
bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST; | ||
bgmac->feature_flags |= BGMAC_FEAT_NO_RESET; | ||
bgmac->feature_flags |= BGMAC_FEAT_FORCE_SPEED_2500; | ||
+ bgmac->feature_flags |= BGMAC_FEAT_SRAB; | ||
break; | ||
default: | ||
bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST; | ||
--- a/drivers/net/ethernet/broadcom/bgmac.c | ||
+++ b/drivers/net/ethernet/broadcom/bgmac.c | ||
@@ -12,6 +12,7 @@ | ||
#include <linux/bcma/bcma.h> | ||
#include <linux/etherdevice.h> | ||
#include <linux/interrupt.h> | ||
+#include <linux/platform_data/b53.h> | ||
#include <linux/bcm47xx_nvram.h> | ||
#include <linux/phy.h> | ||
#include <linux/phy_fixed.h> | ||
@@ -1408,6 +1409,17 @@ static const struct ethtool_ops bgmac_et | ||
.set_link_ksettings = phy_ethtool_set_link_ksettings, | ||
}; | ||
|
||
+static struct b53_platform_data bgmac_b53_pdata = { | ||
+}; | ||
+ | ||
+static struct platform_device bgmac_b53_dev = { | ||
+ .name = "b53-srab-switch", | ||
+ .id = -1, | ||
+ .dev = { | ||
+ .platform_data = &bgmac_b53_pdata, | ||
+ }, | ||
+}; | ||
+ | ||
/************************************************** | ||
* MII | ||
**************************************************/ | ||
@@ -1542,6 +1554,14 @@ int bgmac_enet_probe(struct bgmac *bgmac | ||
/* Omit FCS from max MTU size */ | ||
net_dev->max_mtu = BGMAC_RX_MAX_FRAME_SIZE - ETH_FCS_LEN; | ||
|
||
+ if ((bgmac->feature_flags & BGMAC_FEAT_SRAB) && !bgmac_b53_pdata.regs) { | ||
+ bgmac_b53_pdata.regs = ioremap_nocache(0x18007000, 0x1000); | ||
+ | ||
+ err = platform_device_register(&bgmac_b53_dev); | ||
+ if (!err) | ||
+ bgmac->b53_device = &bgmac_b53_dev; | ||
+ } | ||
+ | ||
err = register_netdev(bgmac->net_dev); | ||
if (err) { | ||
dev_err(bgmac->dev, "Cannot register net device\n"); | ||
@@ -1564,6 +1584,10 @@ EXPORT_SYMBOL_GPL(bgmac_enet_probe); | ||
|
||
void bgmac_enet_remove(struct bgmac *bgmac) | ||
{ | ||
+ if (bgmac->b53_device) | ||
+ platform_device_unregister(&bgmac_b53_dev); | ||
+ bgmac->b53_device = NULL; | ||
+ | ||
unregister_netdev(bgmac->net_dev); | ||
phy_disconnect(bgmac->net_dev->phydev); | ||
netif_napi_del(&bgmac->napi); | ||
--- a/drivers/net/ethernet/broadcom/bgmac.h | ||
+++ b/drivers/net/ethernet/broadcom/bgmac.h | ||
@@ -388,6 +388,7 @@ | ||
#define BGMAC_FEAT_CC4_IF_SW_TYPE_RGMII BIT(18) | ||
#define BGMAC_FEAT_CC7_IF_TYPE_RGMII BIT(19) | ||
#define BGMAC_FEAT_IDM_MASK BIT(20) | ||
+#define BGMAC_FEAT_SRAB BIT(21) | ||
|
||
struct bgmac_slot_info { | ||
union { | ||
@@ -493,6 +494,9 @@ struct bgmac { | ||
void (*cmn_maskset32)(struct bgmac *bgmac, u16 offset, u32 mask, | ||
u32 set); | ||
int (*phy_connect)(struct bgmac *bgmac); | ||
+ | ||
+ /* platform device for associated switch */ | ||
+ struct platform_device *b53_device; | ||
}; | ||
|
||
struct bgmac *bgmac_alloc(struct device *dev); |
33 changes: 33 additions & 0 deletions
33
target/linux/generic/hack-6.0/780-usb-net-MeigLink_modem_support.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
--- a/drivers/net/usb/qmi_wwan.c | ||
+++ b/drivers/net/usb/qmi_wwan.c | ||
@@ -1088,6 +1088,7 @@ static const struct usb_device_id produc | ||
{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0620)}, /* Quectel EM160R-GL */ | ||
{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0800)}, /* Quectel RM500Q-GL */ | ||
{QMI_MATCH_FF_FF_FF(0x2c7c, 0x0801)}, /* Quectel RM520N */ | ||
+ {QMI_MATCH_FF_FF_FF(0x05c6, 0xf601)}, /* MeigLink SLM750 */ | ||
|
||
/* 3. Combined interface devices matching on interface number */ | ||
{QMI_FIXED_INTF(0x0408, 0xea42, 4)}, /* Yota / Megafon M100-1 */ | ||
--- a/drivers/usb/serial/option.c | ||
+++ b/drivers/usb/serial/option.c | ||
@@ -243,6 +243,8 @@ static void option_instat_callback(struc | ||
#define UBLOX_PRODUCT_R6XX 0x90fa | ||
/* These Yuga products use Qualcomm's vendor ID */ | ||
#define YUGA_PRODUCT_CLM920_NC5 0x9625 | ||
+/* These MeigLink products use Qualcomm's vendor ID */ | ||
+#define MEIGLINK_PRODUCT_SLM750 0xf601 | ||
|
||
#define QUECTEL_VENDOR_ID 0x2c7c | ||
/* These Quectel products use Quectel's vendor ID */ | ||
@@ -1143,6 +1145,11 @@ static const struct usb_device_id option | ||
.driver_info = ZLP }, | ||
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96), | ||
.driver_info = RSVD(4) }, | ||
+ /* Meiglink products using Qualcomm vendor ID */ | ||
+ // Works OK. In case of some issues check macros that are used by Quectel Products | ||
+ { USB_DEVICE_AND_INTERFACE_INFO(QUALCOMM_VENDOR_ID, MEIGLINK_PRODUCT_SLM750, 0xff, 0xff, 0xff), | ||
+ .driver_info = NUMEP2 }, | ||
+ { USB_DEVICE_AND_INTERFACE_INFO(QUALCOMM_VENDOR_ID, MEIGLINK_PRODUCT_SLM750, 0xff, 0, 0) }, | ||
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff), | ||
.driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 }, | ||
{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) }, |
162 changes: 162 additions & 0 deletions
162
target/linux/generic/hack-6.0/800-GPIO-add-named-gpio-exports.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,162 @@ | ||
From cc809a441d8f2924f785eb863dfa6aef47a25b0b Mon Sep 17 00:00:00 2001 | ||
From: John Crispin <blogic@openwrt.org> | ||
Date: Tue, 12 Aug 2014 20:49:27 +0200 | ||
Subject: [PATCH 30/36] GPIO: add named gpio exports | ||
|
||
Signed-off-by: John Crispin <blogic@openwrt.org> | ||
--- a/drivers/gpio/gpiolib-of.c | ||
+++ b/drivers/gpio/gpiolib-of.c | ||
@@ -19,6 +19,8 @@ | ||
#include <linux/pinctrl/pinctrl.h> | ||
#include <linux/slab.h> | ||
#include <linux/gpio/machine.h> | ||
+#include <linux/init.h> | ||
+#include <linux/platform_device.h> | ||
|
||
#include "gpiolib.h" | ||
#include "gpiolib-of.h" | ||
@@ -1066,3 +1068,72 @@ void of_gpio_dev_init(struct gpio_chip * | ||
else | ||
gc->of_node = gdev->dev.of_node; | ||
} | ||
+ | ||
+#ifdef CONFIG_GPIO_SYSFS | ||
+ | ||
+static struct of_device_id gpio_export_ids[] = { | ||
+ { .compatible = "gpio-export" }, | ||
+ { /* sentinel */ } | ||
+}; | ||
+ | ||
+static int of_gpio_export_probe(struct platform_device *pdev) | ||
+{ | ||
+ struct device_node *np = pdev->dev.of_node; | ||
+ struct device_node *cnp; | ||
+ u32 val; | ||
+ int nb = 0; | ||
+ | ||
+ for_each_child_of_node(np, cnp) { | ||
+ const char *name = NULL; | ||
+ int gpio; | ||
+ bool dmc; | ||
+ int max_gpio = 1; | ||
+ int i; | ||
+ | ||
+ of_property_read_string(cnp, "gpio-export,name", &name); | ||
+ | ||
+ if (!name) | ||
+ max_gpio = of_gpio_count(cnp); | ||
+ | ||
+ for (i = 0; i < max_gpio; i++) { | ||
+ unsigned flags = 0; | ||
+ enum of_gpio_flags of_flags; | ||
+ | ||
+ gpio = of_get_gpio_flags(cnp, i, &of_flags); | ||
+ if (!gpio_is_valid(gpio)) | ||
+ return gpio; | ||
+ | ||
+ if (of_flags == OF_GPIO_ACTIVE_LOW) | ||
+ flags |= GPIOF_ACTIVE_LOW; | ||
+ | ||
+ if (!of_property_read_u32(cnp, "gpio-export,output", &val)) | ||
+ flags |= val ? GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW; | ||
+ else | ||
+ flags |= GPIOF_IN; | ||
+ | ||
+ if (devm_gpio_request_one(&pdev->dev, gpio, flags, name ? name : of_node_full_name(np))) | ||
+ continue; | ||
+ | ||
+ dmc = of_property_read_bool(cnp, "gpio-export,direction_may_change"); | ||
+ gpio_export_with_name(gpio, dmc, name); | ||
+ nb++; | ||
+ } | ||
+ } | ||
+ | ||
+ dev_info(&pdev->dev, "%d gpio(s) exported\n", nb); | ||
+ | ||
+ return 0; | ||
+} | ||
+ | ||
+static struct platform_driver gpio_export_driver = { | ||
+ .driver = { | ||
+ .name = "gpio-export", | ||
+ .owner = THIS_MODULE, | ||
+ .of_match_table = of_match_ptr(gpio_export_ids), | ||
+ }, | ||
+ .probe = of_gpio_export_probe, | ||
+}; | ||
+ | ||
+module_platform_driver(gpio_export_driver); | ||
+ | ||
+#endif | ||
--- a/include/asm-generic/gpio.h | ||
+++ b/include/asm-generic/gpio.h | ||
@@ -125,6 +125,12 @@ static inline int gpio_export(unsigned g | ||
return gpiod_export(gpio_to_desc(gpio), direction_may_change); | ||
} | ||
|
||
+int __gpiod_export(struct gpio_desc *desc, bool direction_may_change, const char *name); | ||
+static inline int gpio_export_with_name(unsigned gpio, bool direction_may_change, const char *name) | ||
+{ | ||
+ return __gpiod_export(gpio_to_desc(gpio), direction_may_change, name); | ||
+} | ||
+ | ||
static inline int gpio_export_link(struct device *dev, const char *name, | ||
unsigned gpio) | ||
{ | ||
--- a/include/linux/gpio/consumer.h | ||
+++ b/include/linux/gpio/consumer.h | ||
@@ -728,6 +728,7 @@ static inline struct gpio_desc *acpi_get | ||
|
||
#if IS_ENABLED(CONFIG_GPIOLIB) && IS_ENABLED(CONFIG_GPIO_SYSFS) | ||
|
||
+int _gpiod_export(struct gpio_desc *desc, bool direction_may_change, const char *name); | ||
int gpiod_export(struct gpio_desc *desc, bool direction_may_change); | ||
int gpiod_export_link(struct device *dev, const char *name, | ||
struct gpio_desc *desc); | ||
@@ -735,6 +736,13 @@ void gpiod_unexport(struct gpio_desc *de | ||
|
||
#else /* CONFIG_GPIOLIB && CONFIG_GPIO_SYSFS */ | ||
|
||
+static inline int _gpiod_export(struct gpio_desc *desc, | ||
+ bool direction_may_change, | ||
+ const char *name) | ||
+{ | ||
+ return -ENOSYS; | ||
+} | ||
+ | ||
static inline int gpiod_export(struct gpio_desc *desc, | ||
bool direction_may_change) | ||
{ | ||
--- a/drivers/gpio/gpiolib-sysfs.c | ||
+++ b/drivers/gpio/gpiolib-sysfs.c | ||
@@ -544,7 +544,7 @@ static struct class gpio_class = { | ||
* | ||
* Returns zero on success, else an error. | ||
*/ | ||
-int gpiod_export(struct gpio_desc *desc, bool direction_may_change) | ||
+int __gpiod_export(struct gpio_desc *desc, bool direction_may_change, const char *name) | ||
{ | ||
struct gpio_chip *chip; | ||
struct gpio_device *gdev; | ||
@@ -606,6 +606,8 @@ int gpiod_export(struct gpio_desc *desc, | ||
offset = gpio_chip_hwgpio(desc); | ||
if (chip->names && chip->names[offset]) | ||
ioname = chip->names[offset]; | ||
+ if (name) | ||
+ ioname = name; | ||
|
||
dev = device_create_with_groups(&gpio_class, &gdev->dev, | ||
MKDEV(0, 0), data, gpio_groups, | ||
@@ -627,6 +629,12 @@ err_unlock: | ||
gpiod_dbg(desc, "%s: status %d\n", __func__, status); | ||
return status; | ||
} | ||
+EXPORT_SYMBOL_GPL(__gpiod_export); | ||
+ | ||
+int gpiod_export(struct gpio_desc *desc, bool direction_may_change) | ||
+{ | ||
+ return __gpiod_export(desc, direction_may_change, NULL); | ||
+} | ||
EXPORT_SYMBOL_GPL(gpiod_export); | ||
|
||
static int match_export(struct device *dev, const void *desc) |
Oops, something went wrong.