Merge Official Source

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
Tianling Shen 2021-03-22 16:35:07 +08:00
commit 18e21aff8f
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
169 changed files with 2858 additions and 952 deletions

View File

@ -6,10 +6,10 @@ ifdef CONFIG_TESTING_KERNEL
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
endif
LINUX_VERSION-5.4 = .105
LINUX_VERSION-5.4 = .106
LINUX_VERSION-5.10 = .23
LINUX_KERNEL_HASH-5.4.105 = 244e4cd16184285df55ec5a9501daba011aa8b85c5527ee05eab4592e70fb8b6
LINUX_KERNEL_HASH-5.4.106 = cc873b2c39c1823d4bc4f6cde527943c8cfd28ae94cb517804b0f9679359c8db
LINUX_KERNEL_HASH-5.10.23 = f6e21c03ec6ff85b26d77c59fdab81e64707792a57593643307df192749edb6a
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))

View File

@ -94,6 +94,7 @@ $(eval $(call nf_add,IPT_EXTRA,CONFIG_NETFILTER_XT_MATCH_ADDRTYPE, $(if $(NF_KMO
$(eval $(call nf_add,IPT_EXTRA,CONFIG_NETFILTER_XT_MATCH_OWNER, $(P_XT)xt_owner))
$(eval $(call nf_add,IPT_EXTRA,CONFIG_NETFILTER_XT_MATCH_PKTTYPE, $(P_XT)xt_pkttype))
$(eval $(call nf_add,IPT_EXTRA,CONFIG_NETFILTER_XT_MATCH_QUOTA, $(P_XT)xt_quota))
$(eval $(call nf_add,IPT_EXTRA,CONFIG_NETFILTER_XT_MATCH_CGROUP, $(P_XT)xt_cgroup))
#$(eval $(call nf_add,IPT_EXTRA,CONFIG_IP_NF_TARGET_ROUTE, $(P_V4)ipt_ROUTE))

View File

@ -287,6 +287,7 @@ if [ -n "$CONF_RESTORE" ]; then
fi
[ "$VERBOSE" -gt 1 ] && TAR_V="v" || TAR_V=""
v "Restoring config files..."
tar -C / -x${TAR_V}zf "$CONF_RESTORE"
exit $?
fi

View File

@ -8,14 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=kexec-tools
PKG_VERSION:=2.0.16
PKG_RELEASE:=2
PKG_VERSION:=2.0.21
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/utils/kernel/kexec
PKG_HASH:=5b103351ad752c9badd1d65b00eb6de4bce579f944f4df4e3ef3a755ba567010
PKG_FIXUP:=autoreconf
PKG_HASH:=e113142dee891638ad96e0f72cf9277b244477619470b30c41999d312e8e8702
PKG_CONFIG_DEPENDS := CONFIG_KEXEC_ZLIB CONFIG_KEXEC_LZMA
@ -51,17 +49,6 @@ define Package/kexec/description
The kexec utility allows to load and boot another kernel.
endef
define Package/kdump
$(call Package/kexec-tools/Default)
TITLE:=Kernel crash analysis
DEPENDS:=+kexec @(i386||x86_64||arm) @KERNEL_CRASH_DUMP
endef
define Package/kdump/description
The kdump package allows to automatically boot into a
special kernel for analyzing kernel crashes using kdump.
endef
define Package/kexec/config
source "$(SOURCE)/Config.in"
endef
@ -108,28 +95,5 @@ define Package/kexec/install
$(LN) ../usr/sbin/kexec $(1)/sbin/kexec
endef
define Package/kdump/install
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/init.d $(1)/etc/config $(1)/etc/uci-defaults
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kdump $(PKG_INSTALL_DIR)/usr/sbin/vmcore-dmesg $(1)/usr/sbin
$(INSTALL_BIN) ./files/kdump.init $(1)/etc/init.d/kdump
$(INSTALL_BIN) ./files/kdump.defaults $(1)/etc/uci-defaults/kdump
$(INSTALL_CONF) ./files/kdump.config $(1)/etc/config/kdump
endef
define Package/kdump/prerm
#!/bin/sh
case $$(uname -m) in
i?86|x86_64)
if grep -q " crashkernel=" /boot/grub/grub.cfg; then
mount /boot -o remount,rw
sed -i 's/ crashkernel=[^ ]*//' /boot/grub/grub.cfg
mount /boot -o remount,ro
fi
;;
esac
endef
$(eval $(call BuildPackage,kexec-tools))
$(eval $(call BuildPackage,kexec))
$(eval $(call BuildPackage,kdump))

View File

@ -1,14 +0,0 @@
diff --git a/kexec/arch/x86_64/kexec-elf-rel-x86_64.c b/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
index 7fdde73..af33689 100644
--- a/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
+++ b/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
@@ -78,7 +78,8 @@ void machine_apply_elf_rel(struct mem_ehdr *UNUSED(ehdr),
if ((int64_t)value != *(int32_t *)location)
goto overflow;
break;
- case R_X86_64_PC32:
+ case R_X86_64_PC32:
+ case R_X86_64_PLT32:
*(uint32_t *)location = value - address;
break;
default:

View File

@ -0,0 +1,35 @@
#
# Copyright (C) 2020 Mauri Sandberg <sandberg@mailfence.com>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=gpio-nxp-74hc153
PKG_RELEASE:=1
PKG_LICENSE:=GPL-2.0
include $(INCLUDE_DIR)/package.mk
define KernelPackage/gpio-nxp-74hc153
SUBMENU:=Other modules
TITLE:= NXP 74HC153 GPIO expander
FILES:=$(PKG_BUILD_DIR)/gpio-nxp-74hc153.ko
AUTOLOAD:=$(call AutoLoad,30,gpio-nxp-74hc153,1)
KCONFIG:=
DEPENDS:= @GPIO_SUPPORT @TARGET_ath79
endef
define KernelPackage/gpio-nxp-74hc153/description
Platform driver for NXP 74HC153 Dual 4-input Multiplexer.
This provides a GPIO interface supporting input mode only.
endef
define Build/Compile
$(KERNEL_MAKE) M=$(PKG_BUILD_DIR) modules
endef
$(eval $(call KernelPackage,gpio-nxp-74hc153))

View File

@ -0,0 +1 @@
obj-m += gpio-nxp-74hc153.o

View File

@ -0,0 +1,291 @@
/*
* NXP 74HC153 - Dual 4-input multiplexer GPIO driver
*
* Copyright (C) 2010 Gabor Juhos <juhosg@openwrt.org>
* Copyright (C) 2020 Mauri Sandberg <sandberg@mailfence.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* Example device tree definition:
*
* gpio-extender {
* compatible = "nxp,74hc153-gpio";
* gpio-controller;
* #gpio-cells = <2>;
*
* // GPIOs used by this node
* gpio-s0 = <&gpio 9 GPIO_ACTIVE_HIGH>;
* gpio-s1 = <&gpio 11 GPIO_ACTIVE_HIGH>;
* gpio-1y = <&gpio 12 GPIO_ACTIVE_HIGH>;
* gpio-2y = <&gpio 14 GPIO_ACTIVE_HIGH>;
* };
*
*/
#include <linux/version.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/gpio.h>
#include <linux/slab.h>
#include <linux/platform_device.h>
#include <linux/of_gpio.h>
#define NXP_74HC153_NUM_GPIOS 8
#define NXP_74HC153_S0_MASK 0x1
#define NXP_74HC153_S1_MASK 0x2
#define NXP_74HC153_BANK_MASK 0x4
#define NXP_74HC153_DRIVER_NAME "nxp-74hc153"
struct nxp_74hc153_config {
unsigned gpio_pin_s0;
unsigned gpio_pin_s1;
unsigned gpio_pin_1y;
unsigned gpio_pin_2y;
};
struct nxp_74hc153_chip {
struct device *parent;
struct gpio_chip gpio_chip;
struct mutex lock;
struct nxp_74hc153_config config;
};
static struct nxp_74hc153_chip *gpio_to_nxp(struct gpio_chip *gc)
{
return container_of(gc, struct nxp_74hc153_chip, gpio_chip);
}
static int nxp_74hc153_direction_input(struct gpio_chip *gc, unsigned offset)
{
return 0;
}
static int nxp_74hc153_direction_output(struct gpio_chip *gc,
unsigned offset, int val)
{
return -EINVAL;
}
static int nxp_74hc153_get_value(struct gpio_chip *gc, unsigned offset)
{
struct nxp_74hc153_chip *nxp;
struct nxp_74hc153_platform_data *pdata;
unsigned s0;
unsigned s1;
unsigned pin;
int ret;
nxp = gpio_to_nxp(gc);
pdata = nxp->parent->platform_data;
s0 = !!(offset & NXP_74HC153_S0_MASK);
s1 = !!(offset & NXP_74HC153_S1_MASK);
pin = (offset & NXP_74HC153_BANK_MASK) ? nxp->config.gpio_pin_2y
: nxp->config.gpio_pin_1y;
mutex_lock(&nxp->lock);
gpio_set_value(nxp->config.gpio_pin_s0, s0);
gpio_set_value(nxp->config.gpio_pin_s1, s1);
ret = gpio_get_value(pin);
mutex_unlock(&nxp->lock);
return ret;
}
static void nxp_74hc153_set_value(struct gpio_chip *gc,
unsigned offset, int val)
{
/* not supported */
}
static int nxp_74hc153_probe(struct platform_device *pdev)
{
struct device_node *np = pdev->dev.of_node;
struct nxp_74hc153_chip *nxp;
struct gpio_chip *gc;
int err;
unsigned gpio_s0;
unsigned gpio_s1;
unsigned gpio_1y;
unsigned gpio_2y;
nxp = kzalloc(sizeof(struct nxp_74hc153_chip), GFP_KERNEL);
if (nxp == NULL) {
dev_err(&pdev->dev, "no memory for private data\n");
return -ENOMEM;
}
gpio_s0 = of_get_named_gpio(np, "gpio-s0", 0);
gpio_s1 = of_get_named_gpio(np, "gpio-s1", 0);
gpio_1y = of_get_named_gpio(np, "gpio-1y", 0);
gpio_2y = of_get_named_gpio(np, "gpio-2y", 0);
if (!gpio_is_valid(gpio_s0) || !gpio_is_valid(gpio_s1) ||
!gpio_is_valid(gpio_1y) || !gpio_is_valid(gpio_2y)) {
dev_err(&pdev->dev, "control GPIO(s) are missing\n");
err = -EINVAL;
goto err_free_nxp;
} else {
nxp->config.gpio_pin_s0 = gpio_s0;
nxp->config.gpio_pin_s1 = gpio_s1;
nxp->config.gpio_pin_1y = gpio_1y;
nxp->config.gpio_pin_2y = gpio_2y;
}
// apply pin configuration
err = gpio_request(nxp->config.gpio_pin_s0, dev_name(&pdev->dev));
if (err) {
dev_err(&pdev->dev, "unable to claim gpio %u, err=%d\n",
nxp->config.gpio_pin_s0, err);
goto err_free_nxp;
}
err = gpio_request(nxp->config.gpio_pin_s1, dev_name(&pdev->dev));
if (err) {
dev_err(&pdev->dev, "unable to claim gpio %u, err=%d\n",
nxp->config.gpio_pin_s1, err);
goto err_free_s0;
}
err = gpio_request(nxp->config.gpio_pin_1y, dev_name(&pdev->dev));
if (err) {
dev_err(&pdev->dev, "unable to claim gpio %u, err=%d\n",
nxp->config.gpio_pin_1y, err);
goto err_free_s1;
}
err = gpio_request(nxp->config.gpio_pin_2y, dev_name(&pdev->dev));
if (err) {
dev_err(&pdev->dev, "unable to claim gpio %u, err=%d\n",
nxp->config.gpio_pin_2y, err);
goto err_free_1y;
}
err = gpio_direction_output(nxp->config.gpio_pin_s0, 0);
if (err) {
dev_err(&pdev->dev,
"unable to set direction of gpio %u, err=%d\n",
nxp->config.gpio_pin_s0, err);
goto err_free_2y;
}
err = gpio_direction_output(nxp->config.gpio_pin_s1, 0);
if (err) {
dev_err(&pdev->dev,
"unable to set direction of gpio %u, err=%d\n",
nxp->config.gpio_pin_s1, err);
goto err_free_2y;
}
err = gpio_direction_input(nxp->config.gpio_pin_1y);
if (err) {
dev_err(&pdev->dev,
"unable to set direction of gpio %u, err=%d\n",
nxp->config.gpio_pin_1y, err);
goto err_free_2y;
}
err = gpio_direction_input(nxp->config.gpio_pin_2y);
if (err) {
dev_err(&pdev->dev,
"unable to set direction of gpio %u, err=%d\n",
nxp->config.gpio_pin_2y, err);
goto err_free_2y;
}
nxp->parent = &pdev->dev;
mutex_init(&nxp->lock);
gc = &nxp->gpio_chip;
gc->direction_input = nxp_74hc153_direction_input;
gc->direction_output = nxp_74hc153_direction_output;
gc->get = nxp_74hc153_get_value;
gc->set = nxp_74hc153_set_value;
gc->can_sleep = 1;
gc->base = -1;
gc->ngpio = NXP_74HC153_NUM_GPIOS;
gc->label = dev_name(nxp->parent);
gc->parent = nxp->parent;
gc->owner = THIS_MODULE;
gc->of_node = np;
err = gpiochip_add(&nxp->gpio_chip);
if (err) {
dev_err(&pdev->dev, "unable to add gpio chip, err=%d\n", err);
goto err_free_2y;
}
platform_set_drvdata(pdev, nxp);
return 0;
err_free_2y:
gpio_free(nxp->config.gpio_pin_2y);
err_free_1y:
gpio_free(nxp->config.gpio_pin_1y);
err_free_s1:
gpio_free(nxp->config.gpio_pin_s1);
err_free_s0:
gpio_free(nxp->config.gpio_pin_s0);
err_free_nxp:
kfree(nxp);
return err;
}
static int nxp_74hc153_remove(struct platform_device *pdev)
{
struct nxp_74hc153_chip *nxp = platform_get_drvdata(pdev);
if (nxp) {
gpiochip_remove(&nxp->gpio_chip);
gpio_free(nxp->config.gpio_pin_2y);
gpio_free(nxp->config.gpio_pin_1y);
gpio_free(nxp->config.gpio_pin_s1);
gpio_free(nxp->config.gpio_pin_s0);
kfree(nxp);
platform_set_drvdata(pdev, NULL);
}
return 0;
}
static struct of_device_id nxp_74hc153_id[] = {
{
.compatible = "nxp,74hc153-gpio",
.data = NULL,
}, { /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, nxp_74hc153_id);
static struct platform_driver nxp_74hc153_driver = {
.probe = nxp_74hc153_probe,
.remove = nxp_74hc153_remove,
.driver = {
.name = NXP_74HC153_DRIVER_NAME,
.owner = THIS_MODULE,
.of_match_table = nxp_74hc153_id,
},
};
static int __init nxp_74hc153_init(void)
{
return platform_driver_register(&nxp_74hc153_driver);
}
subsys_initcall(nxp_74hc153_init);
static void __exit nxp_74hc153_exit(void)
{
platform_driver_unregister(&nxp_74hc153_driver);
}
module_exit(nxp_74hc153_exit);
MODULE_AUTHOR("Gabor Juhos <juhosg@openwrt.org>");
MODULE_DESCRIPTION("GPIO expander driver for NXP 74HC153");
MODULE_LICENSE("GPL v2");
MODULE_ALIAS("platform:" NXP_74HC153_DRIVER_NAME);

View File

@ -164,6 +164,26 @@ endef
$(eval $(call KernelPackage,fs-efivarfs))
define KernelPackage/fs-exfat
SUBMENU:=$(FS_MENU)
TITLE:=exFAT filesystem support
KCONFIG:= \
CONFIG_EXFAT_FS \
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
FILES:= \
$(LINUX_DIR)/drivers/staging/exfat/exfat.ko@lt5.7 \
$(LINUX_DIR)/fs/exfat/exfat.ko@ge5.7
AUTOLOAD:=$(call AutoLoad,30,exfat,1)
DEPENDS:=+kmod-nls-base
endef
define KernelPackage/fs-exfat/description
Kernel module for exFAT filesystem support
endef
$(eval $(call KernelPackage,fs-exfat))
define KernelPackage/fs-exportfs
SUBMENU:=$(FS_MENU)
TITLE:=exportfs kernel server support

View File

@ -38,6 +38,21 @@ endef
$(eval $(call KernelPackage,ledtrig-activity))
define KernelPackage/ledtrig-audio
SUBMENU:=$(LEDS_MENU)
TITLE:=LED Audio Mute Trigger
KCONFIG:=CONFIG_LEDS_TRIGGER_AUDIO
FILES:=$(LED_TRIGGER_DIR)/ledtrig-audio.ko
AUTOLOAD:=$(call AutoLoad,50,ledtrig-audio)
endef
define KernelPackage/ledtrig-audio/description
Kernel module that allows LEDs to be controlled by audio drivers
to follow audio mute and mic-mute changes.
endef
$(eval $(call KernelPackage,ledtrig-audio))
define KernelPackage/ledtrig-gpio
SUBMENU:=$(LEDS_MENU)
TITLE:=LED GPIO Trigger

View File

@ -141,7 +141,7 @@ $(eval $(call KernelPackage,mii))
define KernelPackage/mdio-devres
SUBMENU:=$(NETWORK_DEVICES_MENU)
TITLE:=Supports MDIO device registration
DEPENDS:=@LINUX_5_10 +kmod-libphy
DEPENDS:=@LINUX_5_10 +kmod-libphy PACKAGE_kmod-of-mdio:kmod-of-mdio
KCONFIG:=CONFIG_MDIO_DEVRES
HIDDEN:=1
FILES:=$(LINUX_DIR)/drivers/net/phy/mdio_devres.ko

View File

@ -916,6 +916,13 @@ define KernelPackage/sched/description
Extra kernel schedulers modules for IP traffic
endef
SCHED_TEQL_HOTPLUG:=hotplug-sched-teql.sh
define KernelPackage/sched/install
$(INSTALL_DIR) $(1)/etc/hotplug.d/iface
$(INSTALL_DATA) ./files/$(SCHED_TEQL_HOTPLUG) $(1)/etc/hotplug.d/iface/15-teql
endef
$(eval $(call KernelPackage,sched))

View File

@ -304,6 +304,7 @@ $(eval $(call KernelPackage,sound-dummy))
define KernelPackage/sound-hda-core
SUBMENU:=$(SOUND_MENU)
TITLE:=HD Audio Sound Core Support
DEPENDS:=+kmod-ledtrig-audio
KCONFIG:= \
CONFIG_SND_HDA_CORE \
CONFIG_SND_HDA_HWDEP=y \
@ -522,7 +523,8 @@ define KernelPackage/sound-hda-intel
CONFIG_SND_HDA_INTEL
FILES:= \
$(LINUX_DIR)/sound/pci/hda/snd-hda-intel.ko \
$(LINUX_DIR)/sound/hda/snd-intel-nhlt.ko
$(LINUX_DIR)/sound/hda/snd-intel-nhlt.ko@lt5.5 \
$(LINUX_DIR)/sound/hda/snd-intel-dspcfg.ko@ge5.5
AUTOLOAD:=$(call AutoProbe,snd-hda-intel)
$(call AddDepends/sound,kmod-sound-hda-core)
endef

View File

@ -1217,6 +1217,7 @@ $(eval $(call KernelPackage,usb-net-mcs7830))
define KernelPackage/usb-net-smsc95xx
TITLE:=SMSC LAN95XX based USB 2.0 10/100 ethernet devices
DEPENDS:=+LINUX_5_10:kmod-libphy
KCONFIG:=CONFIG_USB_NET_SMSC95XX
FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/smsc95xx.ko
AUTOLOAD:=$(call AutoProbe,smsc95xx)

View File

@ -504,6 +504,7 @@ define Build/Patch
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
$(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rtl,rtl/)
$(if $(QUILT),touch $(PKG_BUILD_DIR)/.quilt_used)
endef
@ -514,6 +515,7 @@ define Quilt/Refresh/Package
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rt2x00,rt2x00/)
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/mwl,mwl/)
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/brcm,brcm/)
$(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR)/rtl,rtl/)
endef
define Build/Compile

View File

@ -0,0 +1,817 @@
From 8f392a72419c4b10e84e635e51bee24670975364 Mon Sep 17 00:00:00 2001
From: Ping-Ke Shih <pkshih@realtek.com>
Date: Fri, 19 Feb 2021 13:26:07 +0800
Subject: [PATCH] rtlwifi: 8821ae: upgrade PHY and RF parameters
New parameters with new format and its parser are updated by the
commit 84d26fda52e2 ("rtlwifi: Update 8821ae new phy parameters and its parser."),
but some parameters are missing. Use this commit to update to the novel
parameters that use new format.
Fixes: 84d26fda52e2 ("rtlwifi: Update 8821ae new phy parameters and its parser")
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
---
.../realtek/rtlwifi/rtl8821ae/table.c | 500 +++++++++++++-----
1 file changed, 370 insertions(+), 130 deletions(-)
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/table.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/table.c
@@ -249,7 +249,7 @@ u32 RTL8821AE_PHY_REG_ARRAY[] = {
0x824, 0x00030FE0,
0x828, 0x00000000,
0x82C, 0x002081DD,
- 0x830, 0x2AAA8E24,
+ 0x830, 0x2AAAEEC8,
0x834, 0x0037A706,
0x838, 0x06489B44,
0x83C, 0x0000095B,
@@ -324,10 +324,10 @@ u32 RTL8821AE_PHY_REG_ARRAY[] = {
0x9D8, 0x00000000,
0x9DC, 0x00000000,
0x9E0, 0x00005D00,
- 0x9E4, 0x00000002,
+ 0x9E4, 0x00000003,
0x9E8, 0x00000001,
0xA00, 0x00D047C8,
- 0xA04, 0x01FF000C,
+ 0xA04, 0x01FF800C,
0xA08, 0x8C8A8300,
0xA0C, 0x2E68000F,
0xA10, 0x9500BB78,
@@ -1320,7 +1320,11 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x083, 0x00021800,
0x084, 0x00028000,
0x085, 0x00048000,
+ 0x80000111, 0x00000000, 0x40000000, 0x00000000,
+ 0x086, 0x0009483A,
+ 0xA0000000, 0x00000000,
0x086, 0x00094838,
+ 0xB0000000, 0x00000000,
0x087, 0x00044980,
0x088, 0x00048000,
0x089, 0x0000D480,
@@ -1409,36 +1413,32 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x03C, 0x000CA000,
0x0EF, 0x00000000,
0x0EF, 0x00001100,
- 0xFF0F0104, 0xABCD,
+ 0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x0004ADF3,
0x034, 0x00049DF0,
- 0xFF0F0204, 0xCDEF,
+ 0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x0004ADF3,
0x034, 0x00049DF0,
- 0xFF0F0404, 0xCDEF,
- 0x034, 0x0004ADF3,
- 0x034, 0x00049DF0,
- 0xFF0F0200, 0xCDEF,
+ 0x90000210, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x0004ADF5,
0x034, 0x00049DF2,
- 0xFF0F02C0, 0xCDEF,
+ 0x9000020c, 0x00000000, 0x40000000, 0x00000000,
+ 0x034, 0x0004A0F3,
+ 0x034, 0x000490B1,
+ 0x9000040c, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x0004A0F3,
0x034, 0x000490B1,
- 0xCDCDCDCD, 0xCDCD,
+ 0x90000200, 0x00000000, 0x40000000, 0x00000000,
+ 0x034, 0x0004ADF5,
+ 0x034, 0x00049DF2,
+ 0x90000410, 0x00000000, 0x40000000, 0x00000000,
+ 0x034, 0x0004ADF3,
+ 0x034, 0x00049DF0,
+ 0xA0000000, 0x00000000,
0x034, 0x0004ADF7,
0x034, 0x00049DF3,
- 0xFF0F0104, 0xDEAD,
- 0xFF0F0104, 0xABCD,
- 0x034, 0x00048DED,
- 0x034, 0x00047DEA,
- 0x034, 0x00046DE7,
- 0x034, 0x00045CE9,
- 0x034, 0x00044CE6,
- 0x034, 0x000438C6,
- 0x034, 0x00042886,
- 0x034, 0x00041486,
- 0x034, 0x00040447,
- 0xFF0F0204, 0xCDEF,
+ 0xB0000000, 0x00000000,
+ 0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x00048DED,
0x034, 0x00047DEA,
0x034, 0x00046DE7,
@@ -1448,7 +1448,7 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x034, 0x00042886,
0x034, 0x00041486,
0x034, 0x00040447,
- 0xFF0F0404, 0xCDEF,
+ 0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x00048DED,
0x034, 0x00047DEA,
0x034, 0x00046DE7,
@@ -1458,7 +1458,17 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x034, 0x00042886,
0x034, 0x00041486,
0x034, 0x00040447,
- 0xFF0F02C0, 0xCDEF,
+ 0x9000020c, 0x00000000, 0x40000000, 0x00000000,
+ 0x034, 0x000480AE,
+ 0x034, 0x000470AB,
+ 0x034, 0x0004608B,
+ 0x034, 0x00045069,
+ 0x034, 0x00044048,
+ 0x034, 0x00043045,
+ 0x034, 0x00042026,
+ 0x034, 0x00041023,
+ 0x034, 0x00040002,
+ 0x9000040c, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x000480AE,
0x034, 0x000470AB,
0x034, 0x0004608B,
@@ -1468,7 +1478,17 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x034, 0x00042026,
0x034, 0x00041023,
0x034, 0x00040002,
- 0xCDCDCDCD, 0xCDCD,
+ 0x90000410, 0x00000000, 0x40000000, 0x00000000,
+ 0x034, 0x00048DED,
+ 0x034, 0x00047DEA,
+ 0x034, 0x00046DE7,
+ 0x034, 0x00045CE9,
+ 0x034, 0x00044CE6,
+ 0x034, 0x000438C6,
+ 0x034, 0x00042886,
+ 0x034, 0x00041486,
+ 0x034, 0x00040447,
+ 0xA0000000, 0x00000000,
0x034, 0x00048DEF,
0x034, 0x00047DEC,
0x034, 0x00046DE9,
@@ -1478,38 +1498,36 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x034, 0x0004248A,
0x034, 0x0004108D,
0x034, 0x0004008A,
- 0xFF0F0104, 0xDEAD,
- 0xFF0F0200, 0xABCD,
+ 0xB0000000, 0x00000000,
+ 0x80000210, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x0002ADF4,
- 0xFF0F02C0, 0xCDEF,
+ 0x9000020c, 0x00000000, 0x40000000, 0x00000000,
+ 0x034, 0x0002A0F3,
+ 0x9000040c, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x0002A0F3,
- 0xCDCDCDCD, 0xCDCD,
+ 0x90000200, 0x00000000, 0x40000000, 0x00000000,
+ 0x034, 0x0002ADF4,
+ 0xA0000000, 0x00000000,
0x034, 0x0002ADF7,
- 0xFF0F0200, 0xDEAD,
- 0xFF0F0104, 0xABCD,
- 0x034, 0x00029DF4,
- 0xFF0F0204, 0xCDEF,
+ 0xB0000000, 0x00000000,
+ 0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x00029DF4,
- 0xFF0F0404, 0xCDEF,
+ 0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x00029DF4,
- 0xFF0F0200, 0xCDEF,
+ 0x90000210, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x00029DF1,
- 0xFF0F02C0, 0xCDEF,
+ 0x9000020c, 0x00000000, 0x40000000, 0x00000000,
+ 0x034, 0x000290F0,
+ 0x9000040c, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x000290F0,
- 0xCDCDCDCD, 0xCDCD,
+ 0x90000200, 0x00000000, 0x40000000, 0x00000000,
+ 0x034, 0x00029DF1,
+ 0x90000410, 0x00000000, 0x40000000, 0x00000000,
+ 0x034, 0x00029DF4,
+ 0xA0000000, 0x00000000,
0x034, 0x00029DF2,
- 0xFF0F0104, 0xDEAD,
- 0xFF0F0104, 0xABCD,
- 0x034, 0x00028DF1,
- 0x034, 0x00027DEE,
- 0x034, 0x00026DEB,
- 0x034, 0x00025CEC,
- 0x034, 0x00024CE9,
- 0x034, 0x000238CA,
- 0x034, 0x00022889,
- 0x034, 0x00021489,
- 0x034, 0x0002044A,
- 0xFF0F0204, 0xCDEF,
+ 0xB0000000, 0x00000000,
+ 0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x00028DF1,
0x034, 0x00027DEE,
0x034, 0x00026DEB,
@@ -1519,7 +1537,7 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x034, 0x00022889,
0x034, 0x00021489,
0x034, 0x0002044A,
- 0xFF0F0404, 0xCDEF,
+ 0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x00028DF1,
0x034, 0x00027DEE,
0x034, 0x00026DEB,
@@ -1529,7 +1547,7 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x034, 0x00022889,
0x034, 0x00021489,
0x034, 0x0002044A,
- 0xFF0F02C0, 0xCDEF,
+ 0x9000020c, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x000280AF,
0x034, 0x000270AC,
0x034, 0x0002608B,
@@ -1539,7 +1557,27 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x034, 0x00022026,
0x034, 0x00021023,
0x034, 0x00020002,
- 0xCDCDCDCD, 0xCDCD,
+ 0x9000040c, 0x00000000, 0x40000000, 0x00000000,
+ 0x034, 0x000280AF,
+ 0x034, 0x000270AC,
+ 0x034, 0x0002608B,
+ 0x034, 0x00025069,
+ 0x034, 0x00024048,
+ 0x034, 0x00023045,
+ 0x034, 0x00022026,
+ 0x034, 0x00021023,
+ 0x034, 0x00020002,
+ 0x90000410, 0x00000000, 0x40000000, 0x00000000,
+ 0x034, 0x00028DF1,
+ 0x034, 0x00027DEE,
+ 0x034, 0x00026DEB,
+ 0x034, 0x00025CEC,
+ 0x034, 0x00024CE9,
+ 0x034, 0x000238CA,
+ 0x034, 0x00022889,
+ 0x034, 0x00021489,
+ 0x034, 0x0002044A,
+ 0xA0000000, 0x00000000,
0x034, 0x00028DEE,
0x034, 0x00027DEB,
0x034, 0x00026CCD,
@@ -1549,27 +1587,24 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x034, 0x00022849,
0x034, 0x00021449,
0x034, 0x0002004D,
- 0xFF0F0104, 0xDEAD,
- 0xFF0F02C0, 0xABCD,
+ 0xB0000000, 0x00000000,
+ 0x8000020c, 0x00000000, 0x40000000, 0x00000000,
+ 0x034, 0x0000A0D7,
+ 0x034, 0x000090D3,
+ 0x034, 0x000080B1,
+ 0x034, 0x000070AE,
+ 0x9000040c, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x0000A0D7,
0x034, 0x000090D3,
0x034, 0x000080B1,
0x034, 0x000070AE,
- 0xCDCDCDCD, 0xCDCD,
+ 0xA0000000, 0x00000000,
0x034, 0x0000ADF7,
0x034, 0x00009DF4,
0x034, 0x00008DF1,
0x034, 0x00007DEE,
- 0xFF0F02C0, 0xDEAD,
- 0xFF0F0104, 0xABCD,
- 0x034, 0x00006DEB,
- 0x034, 0x00005CEC,
- 0x034, 0x00004CE9,
- 0x034, 0x000038CA,
- 0x034, 0x00002889,
- 0x034, 0x00001489,
- 0x034, 0x0000044A,
- 0xFF0F0204, 0xCDEF,
+ 0xB0000000, 0x00000000,
+ 0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x00006DEB,
0x034, 0x00005CEC,
0x034, 0x00004CE9,
@@ -1577,7 +1612,7 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x034, 0x00002889,
0x034, 0x00001489,
0x034, 0x0000044A,
- 0xFF0F0404, 0xCDEF,
+ 0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x00006DEB,
0x034, 0x00005CEC,
0x034, 0x00004CE9,
@@ -1585,7 +1620,7 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x034, 0x00002889,
0x034, 0x00001489,
0x034, 0x0000044A,
- 0xFF0F02C0, 0xCDEF,
+ 0x9000020c, 0x00000000, 0x40000000, 0x00000000,
0x034, 0x0000608D,
0x034, 0x0000506B,
0x034, 0x0000404A,
@@ -1593,7 +1628,23 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x034, 0x00002044,
0x034, 0x00001025,
0x034, 0x00000004,
- 0xCDCDCDCD, 0xCDCD,
+ 0x9000040c, 0x00000000, 0x40000000, 0x00000000,
+ 0x034, 0x0000608D,
+ 0x034, 0x0000506B,
+ 0x034, 0x0000404A,
+ 0x034, 0x00003047,
+ 0x034, 0x00002044,
+ 0x034, 0x00001025,
+ 0x034, 0x00000004,
+ 0x90000410, 0x00000000, 0x40000000, 0x00000000,
+ 0x034, 0x00006DEB,
+ 0x034, 0x00005CEC,
+ 0x034, 0x00004CE9,
+ 0x034, 0x000038CA,
+ 0x034, 0x00002889,
+ 0x034, 0x00001489,
+ 0x034, 0x0000044A,
+ 0xA0000000, 0x00000000,
0x034, 0x00006DCD,
0x034, 0x00005CCD,
0x034, 0x00004CCA,
@@ -1601,11 +1652,11 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x034, 0x00002888,
0x034, 0x00001488,
0x034, 0x00000486,
- 0xFF0F0104, 0xDEAD,
+ 0xB0000000, 0x00000000,
0x0EF, 0x00000000,
0x018, 0x0001712A,
0x0EF, 0x00000040,
- 0xFF0F0104, 0xABCD,
+ 0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x035, 0x00000187,
0x035, 0x00008187,
0x035, 0x00010187,
@@ -1615,7 +1666,7 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x035, 0x00040188,
0x035, 0x00048188,
0x035, 0x00050188,
- 0xFF0F0204, 0xCDEF,
+ 0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x035, 0x00000187,
0x035, 0x00008187,
0x035, 0x00010187,
@@ -1625,7 +1676,37 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x035, 0x00040188,
0x035, 0x00048188,
0x035, 0x00050188,
- 0xFF0F0404, 0xCDEF,
+ 0x90000210, 0x00000000, 0x40000000, 0x00000000,
+ 0x035, 0x00000128,
+ 0x035, 0x00008128,
+ 0x035, 0x00010128,
+ 0x035, 0x000201C8,
+ 0x035, 0x000281C8,
+ 0x035, 0x000301C8,
+ 0x035, 0x000401C8,
+ 0x035, 0x000481C8,
+ 0x035, 0x000501C8,
+ 0x9000040c, 0x00000000, 0x40000000, 0x00000000,
+ 0x035, 0x00000145,
+ 0x035, 0x00008145,
+ 0x035, 0x00010145,
+ 0x035, 0x00020196,
+ 0x035, 0x00028196,
+ 0x035, 0x00030196,
+ 0x035, 0x000401C7,
+ 0x035, 0x000481C7,
+ 0x035, 0x000501C7,
+ 0x90000200, 0x00000000, 0x40000000, 0x00000000,
+ 0x035, 0x00000128,
+ 0x035, 0x00008128,
+ 0x035, 0x00010128,
+ 0x035, 0x000201C8,
+ 0x035, 0x000281C8,
+ 0x035, 0x000301C8,
+ 0x035, 0x000401C8,
+ 0x035, 0x000481C8,
+ 0x035, 0x000501C8,
+ 0x90000410, 0x00000000, 0x40000000, 0x00000000,
0x035, 0x00000187,
0x035, 0x00008187,
0x035, 0x00010187,
@@ -1635,7 +1716,7 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x035, 0x00040188,
0x035, 0x00048188,
0x035, 0x00050188,
- 0xCDCDCDCD, 0xCDCD,
+ 0xA0000000, 0x00000000,
0x035, 0x00000145,
0x035, 0x00008145,
0x035, 0x00010145,
@@ -1645,11 +1726,11 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x035, 0x000401C7,
0x035, 0x000481C7,
0x035, 0x000501C7,
- 0xFF0F0104, 0xDEAD,
+ 0xB0000000, 0x00000000,
0x0EF, 0x00000000,
0x018, 0x0001712A,
0x0EF, 0x00000010,
- 0xFF0F0104, 0xABCD,
+ 0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x036, 0x00085733,
0x036, 0x0008D733,
0x036, 0x00095733,
@@ -1662,7 +1743,7 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x036, 0x000CE4B4,
0x036, 0x000D64B4,
0x036, 0x000DE4B4,
- 0xFF0F0204, 0xCDEF,
+ 0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x036, 0x00085733,
0x036, 0x0008D733,
0x036, 0x00095733,
@@ -1675,7 +1756,46 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x036, 0x000CE4B4,
0x036, 0x000D64B4,
0x036, 0x000DE4B4,
- 0xFF0F0404, 0xCDEF,
+ 0x90000210, 0x00000000, 0x40000000, 0x00000000,
+ 0x036, 0x000063B5,
+ 0x036, 0x0000E3B5,
+ 0x036, 0x000163B5,
+ 0x036, 0x0001E3B5,
+ 0x036, 0x000263B5,
+ 0x036, 0x0002E3B5,
+ 0x036, 0x000363B5,
+ 0x036, 0x0003E3B5,
+ 0x036, 0x000463B5,
+ 0x036, 0x0004E3B5,
+ 0x036, 0x000563B5,
+ 0x036, 0x0005E3B5,
+ 0x9000040c, 0x00000000, 0x40000000, 0x00000000,
+ 0x036, 0x000056B3,
+ 0x036, 0x0000D6B3,
+ 0x036, 0x000156B3,
+ 0x036, 0x0001D6B3,
+ 0x036, 0x00026634,
+ 0x036, 0x0002E634,
+ 0x036, 0x00036634,
+ 0x036, 0x0003E634,
+ 0x036, 0x000467B4,
+ 0x036, 0x0004E7B4,
+ 0x036, 0x000567B4,
+ 0x036, 0x0005E7B4,
+ 0x90000200, 0x00000000, 0x40000000, 0x00000000,
+ 0x036, 0x000063B5,
+ 0x036, 0x0000E3B5,
+ 0x036, 0x000163B5,
+ 0x036, 0x0001E3B5,
+ 0x036, 0x000263B5,
+ 0x036, 0x0002E3B5,
+ 0x036, 0x000363B5,
+ 0x036, 0x0003E3B5,
+ 0x036, 0x000463B5,
+ 0x036, 0x0004E3B5,
+ 0x036, 0x000563B5,
+ 0x036, 0x0005E3B5,
+ 0x90000410, 0x00000000, 0x40000000, 0x00000000,
0x036, 0x00085733,
0x036, 0x0008D733,
0x036, 0x00095733,
@@ -1688,7 +1808,7 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x036, 0x000CE4B4,
0x036, 0x000D64B4,
0x036, 0x000DE4B4,
- 0xCDCDCDCD, 0xCDCD,
+ 0xA0000000, 0x00000000,
0x036, 0x000056B3,
0x036, 0x0000D6B3,
0x036, 0x000156B3,
@@ -1701,103 +1821,162 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x036, 0x0004E7B4,
0x036, 0x000567B4,
0x036, 0x0005E7B4,
- 0xFF0F0104, 0xDEAD,
+ 0xB0000000, 0x00000000,
0x0EF, 0x00000000,
0x0EF, 0x00000008,
- 0xFF0F0104, 0xABCD,
+ 0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x03C, 0x000001C8,
0x03C, 0x00000492,
- 0xFF0F0204, 0xCDEF,
+ 0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x03C, 0x000001C8,
0x03C, 0x00000492,
- 0xFF0F0404, 0xCDEF,
+ 0x90000210, 0x00000000, 0x40000000, 0x00000000,
+ 0x03C, 0x000001B6,
+ 0x03C, 0x00000492,
+ 0x9000040c, 0x00000000, 0x40000000, 0x00000000,
+ 0x03C, 0x0000022A,
+ 0x03C, 0x00000594,
+ 0x90000200, 0x00000000, 0x40000000, 0x00000000,
+ 0x03C, 0x000001B6,
+ 0x03C, 0x00000492,
+ 0x90000410, 0x00000000, 0x40000000, 0x00000000,
0x03C, 0x000001C8,
0x03C, 0x00000492,
- 0xCDCDCDCD, 0xCDCD,
+ 0xA0000000, 0x00000000,
0x03C, 0x0000022A,
0x03C, 0x00000594,
- 0xFF0F0104, 0xDEAD,
- 0xFF0F0104, 0xABCD,
+ 0xB0000000, 0x00000000,
+ 0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x03C, 0x00000800,
- 0xFF0F0204, 0xCDEF,
+ 0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x03C, 0x00000800,
- 0xFF0F0404, 0xCDEF,
+ 0x90000210, 0x00000000, 0x40000000, 0x00000000,
0x03C, 0x00000800,
- 0xFF0F02C0, 0xCDEF,
+ 0x9000020c, 0x00000000, 0x40000000, 0x00000000,
0x03C, 0x00000820,
- 0xCDCDCDCD, 0xCDCD,
+ 0x9000040c, 0x00000000, 0x40000000, 0x00000000,
+ 0x03C, 0x00000820,
+ 0x90000200, 0x00000000, 0x40000000, 0x00000000,
+ 0x03C, 0x00000800,
+ 0x90000410, 0x00000000, 0x40000000, 0x00000000,
+ 0x03C, 0x00000800,
+ 0xA0000000, 0x00000000,
0x03C, 0x00000900,
- 0xFF0F0104, 0xDEAD,
+ 0xB0000000, 0x00000000,
0x0EF, 0x00000000,
0x018, 0x0001712A,
0x0EF, 0x00000002,
- 0xFF0F0104, 0xABCD,
+ 0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x008, 0x0004E400,
- 0xFF0F0204, 0xCDEF,
+ 0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x008, 0x0004E400,
- 0xFF0F0404, 0xCDEF,
+ 0x90000210, 0x00000000, 0x40000000, 0x00000000,
+ 0x008, 0x00002000,
+ 0x9000020c, 0x00000000, 0x40000000, 0x00000000,
+ 0x008, 0x00002000,
+ 0x9000040c, 0x00000000, 0x40000000, 0x00000000,
+ 0x008, 0x00002000,
+ 0x90000200, 0x00000000, 0x40000000, 0x00000000,
+ 0x008, 0x00002000,
+ 0x90000410, 0x00000000, 0x40000000, 0x00000000,
0x008, 0x0004E400,
- 0xCDCDCDCD, 0xCDCD,
+ 0xA0000000, 0x00000000,
0x008, 0x00002000,
- 0xFF0F0104, 0xDEAD,
+ 0xB0000000, 0x00000000,
0x0EF, 0x00000000,
0x0DF, 0x000000C0,
- 0x01F, 0x00040064,
- 0xFF0F0104, 0xABCD,
+ 0x01F, 0x00000064,
+ 0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x058, 0x000A7284,
0x059, 0x000600EC,
- 0xFF0F0204, 0xCDEF,
+ 0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x058, 0x000A7284,
0x059, 0x000600EC,
- 0xFF0F0404, 0xCDEF,
+ 0x9000020c, 0x00000000, 0x40000000, 0x00000000,
+ 0x058, 0x00081184,
+ 0x059, 0x0006016C,
+ 0x9000040c, 0x00000000, 0x40000000, 0x00000000,
+ 0x058, 0x00081184,
+ 0x059, 0x0006016C,
+ 0x90000200, 0x00000000, 0x40000000, 0x00000000,
+ 0x058, 0x00081184,
+ 0x059, 0x0006016C,
+ 0x90000410, 0x00000000, 0x40000000, 0x00000000,
0x058, 0x000A7284,
0x059, 0x000600EC,
- 0xCDCDCDCD, 0xCDCD,
+ 0xA0000000, 0x00000000,
0x058, 0x00081184,
0x059, 0x0006016C,
- 0xFF0F0104, 0xDEAD,
- 0xFF0F0104, 0xABCD,
+ 0xB0000000, 0x00000000,
+ 0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x061, 0x000E8D73,
0x062, 0x00093FC5,
- 0xFF0F0204, 0xCDEF,
+ 0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x061, 0x000E8D73,
0x062, 0x00093FC5,
- 0xFF0F0404, 0xCDEF,
+ 0x90000210, 0x00000000, 0x40000000, 0x00000000,
+ 0x061, 0x000EFD83,
+ 0x062, 0x00093FCC,
+ 0x9000040c, 0x00000000, 0x40000000, 0x00000000,
+ 0x061, 0x000EAD53,
+ 0x062, 0x00093BC4,
+ 0x90000200, 0x00000000, 0x40000000, 0x00000000,
+ 0x061, 0x000EFD83,
+ 0x062, 0x00093FCC,
+ 0x90000410, 0x00000000, 0x40000000, 0x00000000,
0x061, 0x000E8D73,
0x062, 0x00093FC5,
- 0xCDCDCDCD, 0xCDCD,
+ 0xA0000000, 0x00000000,
0x061, 0x000EAD53,
0x062, 0x00093BC4,
- 0xFF0F0104, 0xDEAD,
- 0xFF0F0104, 0xABCD,
+ 0xB0000000, 0x00000000,
+ 0x80000111, 0x00000000, 0x40000000, 0x00000000,
0x063, 0x000110E9,
- 0xFF0F0204, 0xCDEF,
+ 0x90000110, 0x00000000, 0x40000000, 0x00000000,
0x063, 0x000110E9,
- 0xFF0F0404, 0xCDEF,
+ 0x90000210, 0x00000000, 0x40000000, 0x00000000,
+ 0x063, 0x000110EB,
+ 0x9000020c, 0x00000000, 0x40000000, 0x00000000,
0x063, 0x000110E9,
- 0xFF0F0200, 0xCDEF,
- 0x063, 0x000710E9,
- 0xFF0F02C0, 0xCDEF,
+ 0x9000040c, 0x00000000, 0x40000000, 0x00000000,
0x063, 0x000110E9,
- 0xCDCDCDCD, 0xCDCD,
+ 0x90000200, 0x00000000, 0x40000000, 0x00000000,
+ 0x063, 0x000110EB,
+ 0x90000410, 0x00000000, 0x40000000, 0x00000000,
+ 0x063, 0x000110E9,
+ 0xA0000000, 0x00000000,
0x063, 0x000714E9,
- 0xFF0F0104, 0xDEAD,
- 0xFF0F0104, 0xABCD,
+ 0xB0000000, 0x00000000,
+ 0x80000111, 0x00000000, 0x40000000, 0x00000000,
+ 0x064, 0x0001C27C,
+ 0x90000110, 0x00000000, 0x40000000, 0x00000000,
+ 0x064, 0x0001C27C,
+ 0x90000210, 0x00000000, 0x40000000, 0x00000000,
0x064, 0x0001C27C,
- 0xFF0F0204, 0xCDEF,
+ 0x9000040c, 0x00000000, 0x40000000, 0x00000000,
+ 0x064, 0x0001C67C,
+ 0x90000200, 0x00000000, 0x40000000, 0x00000000,
0x064, 0x0001C27C,
- 0xFF0F0404, 0xCDEF,
+ 0x90000410, 0x00000000, 0x40000000, 0x00000000,
0x064, 0x0001C27C,
- 0xCDCDCDCD, 0xCDCD,
+ 0xA0000000, 0x00000000,
0x064, 0x0001C67C,
- 0xFF0F0104, 0xDEAD,
- 0xFF0F0200, 0xABCD,
+ 0xB0000000, 0x00000000,
+ 0x80000111, 0x00000000, 0x40000000, 0x00000000,
+ 0x065, 0x00091016,
+ 0x90000110, 0x00000000, 0x40000000, 0x00000000,
+ 0x065, 0x00091016,
+ 0x90000210, 0x00000000, 0x40000000, 0x00000000,
0x065, 0x00093016,
- 0xFF0F02C0, 0xCDEF,
+ 0x9000020c, 0x00000000, 0x40000000, 0x00000000,
0x065, 0x00093015,
- 0xCDCDCDCD, 0xCDCD,
+ 0x9000040c, 0x00000000, 0x40000000, 0x00000000,
+ 0x065, 0x00093015,
+ 0x90000200, 0x00000000, 0x40000000, 0x00000000,
+ 0x065, 0x00093016,
+ 0xA0000000, 0x00000000,
0x065, 0x00091016,
- 0xFF0F0200, 0xDEAD,
+ 0xB0000000, 0x00000000,
0x018, 0x00000006,
0x0EF, 0x00002000,
0x03B, 0x0003824B,
@@ -1895,9 +2074,10 @@ u32 RTL8821AE_RADIOA_ARRAY[] = {
0x0B4, 0x0001214C,
0x0B7, 0x0003000C,
0x01C, 0x000539D2,
+ 0x0C4, 0x000AFE00,
0x018, 0x0001F12A,
- 0x0FE, 0x00000000,
- 0x0FE, 0x00000000,
+ 0xFFE, 0x00000000,
+ 0xFFE, 0x00000000,
0x018, 0x0001712A,
};
@@ -2017,6 +2197,7 @@ u32 RTL8812AE_MAC_REG_ARRAY[] = {
u32 RTL8812AE_MAC_1T_ARRAYLEN = ARRAY_SIZE(RTL8812AE_MAC_REG_ARRAY);
u32 RTL8821AE_MAC_REG_ARRAY[] = {
+ 0x421, 0x0000000F,
0x428, 0x0000000A,
0x429, 0x00000010,
0x430, 0x00000000,
@@ -2485,7 +2666,7 @@ u32 RTL8821AE_AGC_TAB_ARRAY[] = {
0x81C, 0xA6360001,
0x81C, 0xA5380001,
0x81C, 0xA43A0001,
- 0x81C, 0xA33C0001,
+ 0x81C, 0x683C0001,
0x81C, 0x673E0001,
0x81C, 0x66400001,
0x81C, 0x65420001,
@@ -2519,7 +2700,66 @@ u32 RTL8821AE_AGC_TAB_ARRAY[] = {
0x81C, 0x017A0001,
0x81C, 0x017C0001,
0x81C, 0x017E0001,
- 0xFF0F02C0, 0xABCD,
+ 0x8000020c, 0x00000000, 0x40000000, 0x00000000,
+ 0x81C, 0xFB000101,
+ 0x81C, 0xFA020101,
+ 0x81C, 0xF9040101,
+ 0x81C, 0xF8060101,
+ 0x81C, 0xF7080101,
+ 0x81C, 0xF60A0101,
+ 0x81C, 0xF50C0101,
+ 0x81C, 0xF40E0101,
+ 0x81C, 0xF3100101,
+ 0x81C, 0xF2120101,
+ 0x81C, 0xF1140101,
+ 0x81C, 0xF0160101,
+ 0x81C, 0xEF180101,
+ 0x81C, 0xEE1A0101,
+ 0x81C, 0xED1C0101,
+ 0x81C, 0xEC1E0101,
+ 0x81C, 0xEB200101,
+ 0x81C, 0xEA220101,
+ 0x81C, 0xE9240101,
+ 0x81C, 0xE8260101,
+ 0x81C, 0xE7280101,
+ 0x81C, 0xE62A0101,
+ 0x81C, 0xE52C0101,
+ 0x81C, 0xE42E0101,
+ 0x81C, 0xE3300101,
+ 0x81C, 0xA5320101,
+ 0x81C, 0xA4340101,
+ 0x81C, 0xA3360101,
+ 0x81C, 0x87380101,
+ 0x81C, 0x863A0101,
+ 0x81C, 0x853C0101,
+ 0x81C, 0x843E0101,
+ 0x81C, 0x69400101,
+ 0x81C, 0x68420101,
+ 0x81C, 0x67440101,
+ 0x81C, 0x66460101,
+ 0x81C, 0x49480101,
+ 0x81C, 0x484A0101,
+ 0x81C, 0x474C0101,
+ 0x81C, 0x2A4E0101,
+ 0x81C, 0x29500101,
+ 0x81C, 0x28520101,
+ 0x81C, 0x27540101,
+ 0x81C, 0x26560101,
+ 0x81C, 0x25580101,
+ 0x81C, 0x245A0101,
+ 0x81C, 0x235C0101,
+ 0x81C, 0x055E0101,
+ 0x81C, 0x04600101,
+ 0x81C, 0x03620101,
+ 0x81C, 0x02640101,
+ 0x81C, 0x01660101,
+ 0x81C, 0x01680101,
+ 0x81C, 0x016A0101,
+ 0x81C, 0x016C0101,
+ 0x81C, 0x016E0101,
+ 0x81C, 0x01700101,
+ 0x81C, 0x01720101,
+ 0x9000040c, 0x00000000, 0x40000000, 0x00000000,
0x81C, 0xFB000101,
0x81C, 0xFA020101,
0x81C, 0xF9040101,
@@ -2578,7 +2818,7 @@ u32 RTL8821AE_AGC_TAB_ARRAY[] = {
0x81C, 0x016E0101,
0x81C, 0x01700101,
0x81C, 0x01720101,
- 0xCDCDCDCD, 0xCDCD,
+ 0xA0000000, 0x00000000,
0x81C, 0xFF000101,
0x81C, 0xFF020101,
0x81C, 0xFE040101,
@@ -2637,7 +2877,7 @@ u32 RTL8821AE_AGC_TAB_ARRAY[] = {
0x81C, 0x046E0101,
0x81C, 0x03700101,
0x81C, 0x02720101,
- 0xFF0F02C0, 0xDEAD,
+ 0xB0000000, 0x00000000,
0x81C, 0x01740101,
0x81C, 0x01760101,
0x81C, 0x01780101,

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=libnfnetlink
PKG_VERSION:=1.0.1
PKG_RELEASE:=3
PKG_RELEASE:=4
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:= \
@ -45,7 +45,7 @@ CONFIGURE_ARGS += \
--enable-shared
CONFIGURE_VARS += \
lt_prog_compiler_pic=$(FPIC)
lt_prog_compiler_pic="$(FPIC)"
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/libnfnetlink

View File

@ -0,0 +1,45 @@
#
# Copyright (C) 2021 Jo-Philipp Wich <jo@mein.io>
#
include $(TOPDIR)/rules.mk
PKG_NAME:=firewall4
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/firewall4.git
PKG_SOURCE_DATE:=2021-03-19
PKG_SOURCE_VERSION:=59dbb982b7fefa480196dec03ba51c4f8c4dd7ae
PKG_MIRROR_HASH:=3f37bea16fa553539d820cc49be92e23d3e1fd9b52db57dcbd06e78070044930
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
PKG_LICENSE:=ISC
include $(INCLUDE_DIR)/package.mk
define Package/firewall4
SECTION:=net
CATEGORY:=Base system
TITLE:=OpenWrt 4th gen firewall
DEPENDS:=+ucode +ucode-mod-fs +ucode-mod-uci +ucode-mod-ubus +kmod-nft-core +kmod-nft-fib +kmod-nft-nat +kmod-nft-nat6 +nftables-json
CONFLICTS:=firewall kmod-ipt-nat
endef
define Package/firewall4/description
This package provides an nftables-based implementation of the UCI firewall
sharing the same configuration format.
endef
define Package/firewall4/conffiles
/etc/config/firewall
/etc/nftables.d/
endef
define Package/firewall4/install
$(CP) -a $(PKG_BUILD_DIR)/root/* $(1)/
endef
define Build/Compile
endef
$(eval $(call BuildPackage,firewall4))

View File

@ -1,51 +0,0 @@
#
# Copyright (C) 2006-2011 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=igmpproxy
PKG_VERSION:=0.3
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/pali/igmpproxy/releases/download/${PKG_VERSION}/
PKG_HASH:=d1fc244cb2fbbf99f720bda3e841fe59ece9b6919073790b4b892739b1b844eb
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
include $(INCLUDE_DIR)/package.mk
PKG_FIXUP:=autoreconf
PKG_LICENSE:=GPL-2.0+
define Package/igmpproxy
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
DEPENDS:=+USE_GLIBC:librt
TITLE:=Multicast Routing Daemon
URL:=http://sourceforge.net/projects/igmpproxy
endef
define Package/igmpproxy/description
IGMPproxy is a simple dynamic Multicast Routing Daemon using
only IGMP signalling (Internet Group Management Protocol).
endef
define Package/igmpproxy/conffiles
/etc/config/igmpproxy
endef
define Package/igmpproxy/install
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) ./files/igmpproxy.config $(1)/etc/config/igmpproxy
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/igmpproxy.init $(1)/etc/init.d/igmpproxy
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/igmpproxy $(1)/usr/sbin/
endef
$(eval $(call BuildPackage,igmpproxy))

View File

@ -1,14 +0,0 @@
config igmpproxy
option quickleave 1
# option verbose [0-3](none, minimal[default], more, maximum)
config phyint
option network wan
option zone wan
option direction upstream
list altnet 192.168.1.0/24
config phyint
option network lan
option zone lan
option direction downstream

View File

@ -1,156 +0,0 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2010-2014 OpenWrt.org
START=99
USE_PROCD=1
PROG=/usr/sbin/igmpproxy
CONFIGFILE=/var/etc/igmpproxy.conf
igmp_header() {
local quickleave verbose
config_get_bool quickleave "$1" quickleave 0
config_get verbose "$1" verbose 1
[ $verbose = "0" ] && logopts="-d"
[ $verbose = "2" ] && logopts="-v"
[ $verbose = "3" ] && logopts="-v -v"
mkdir -p /var/etc
rm -f /var/etc/igmpproxy.conf
[ $quickleave -gt 0 ] && echo "quickleave" >> /var/etc/igmpproxy.conf
[ -L /etc/igmpproxy.conf ] || ln -nsf /var/etc/igmpproxy.conf /etc/igmpproxy.conf
}
igmp_add_phyint() {
local network direction altnets device up
config_get network $1 network
config_get direction $1 direction
config_get altnets $1 altnet
local status="$(ubus -S call "network.interface.$network" status)"
[ -n "$status" ] || return
json_load "$status"
json_get_var device l3_device
json_get_var up up
[ -n "$device" -a "$up" = "1" ] || {
procd_append_param error "$network is not up"
return;
}
append netdevs "$device"
[ "$direction" = "upstream" ] && has_upstream=1
echo -e "\nphyint $device $direction ratelimit 0 threshold 1" >> /var/etc/igmpproxy.conf
if [ -n "$altnets" ]; then
local altnet
for altnet in $altnets; do
echo -e "\taltnet $altnet" >> /var/etc/igmpproxy.conf
done
fi
}
igmp_add_network() {
local network
config_get network $1 network
procd_add_interface_trigger "interface.*" $network /etc/init.d/igmpproxy reload
}
igmp_add_firewall_routing() {
config_get direction $1 direction
config_get zone $1 zone
if [ "$direction" != "downstream" ] || [ -z "$zone" ]; then
return 0
fi
# First drop SSDP packets then accept all other multicast
json_add_object ""
json_add_string type rule
json_add_string src "$upstream"
json_add_string dest "$zone"
json_add_string family ipv4
json_add_string proto udp
json_add_string dest_ip "239.255.255.250"
json_add_string target DROP
json_close_object
json_add_object ""
json_add_string type rule
json_add_string src "$upstream"
json_add_string dest "$zone"
json_add_string family ipv4
json_add_string proto udp
json_add_string dest_ip "224.0.0.0/4"
json_add_string target ACCEPT
json_close_object
}
igmp_add_firewall_network() {
config_get direction $1 direction
config_get zone $1 zone
[ ! -z "$zone" ] || return
json_add_object ""
json_add_string type rule
json_add_string src "$zone"
json_add_string family ipv4
json_add_string proto igmp
json_add_string target ACCEPT
json_close_object
[ "$direction" = "upstream" ] && {
upstream="$zone"
config_foreach igmp_add_firewall_routing phyint
}
}
service_triggers() {
procd_add_reload_trigger "igmpproxy"
config_foreach igmp_add_network phyint
}
start_service() {
has_upstream=
netdevs=
logopts=
config_load igmpproxy
config_foreach igmp_header igmpproxy
config_foreach igmp_add_phyint phyint
[ -n "$has_upstream" ] || return
procd_open_instance
procd_set_param command $PROG '-n'
[ -n "$logopts" ] && procd_append_param command $logopts
procd_append_param command $CONFIGFILE
procd_set_param file $CONFIGFILE
procd_set_param netdev $netdevs
procd_set_param respawn
procd_open_data
json_add_array firewall
config_foreach igmp_add_firewall_network phyint
json_close_array
procd_close_data
procd_close_instance
}
service_started() {
procd_set_config_changed firewall
}
stop_service() {
procd_set_config_changed firewall
}

View File

@ -0,0 +1,12 @@
--- a/pppd/Makefile.linux
+++ b/pppd/Makefile.linux
@@ -49,7 +49,8 @@ MPPE=y
# Uncomment the next line to include support for PPP packet filtering.
# This requires that the libpcap library and headers be installed
# and that the kernel driver support PPP packet filtering.
-#FILTER=y
+# libpcap statically linked in OpenWRT, hence disabled here.
+FILTER=
# Support for precompiled filters
PRECOMPILED_FILTER=y

View File

@ -12,9 +12,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/uhttpd.git
PKG_SOURCE_DATE:=2020-11-23
PKG_SOURCE_VERSION:=f53a63999784bcb7dc513e221f3f25dd3de2f35e
PKG_MIRROR_HASH:=b2b71f91a3affd1518b2887d2786be30ae0ac5204bbf65c9a84595603847995c
PKG_SOURCE_DATE:=2021-03-21
PKG_SOURCE_VERSION:=15346de8d3ba422002496526ee24c62a3601ab8c
PKG_MIRROR_HASH:=819424d071ed7c8888f9ca66f679907831becc59a67dd4a5ec521d5fba0a3171
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=ISC

View File

@ -1,13 +1,17 @@
#!/bin/sh
commit=0
if [ -z "$(uci -q get uhttpd.main.ubus_prefix)" ]; then
uci set uhttpd.main.ubus_prefix=/ubus
uci commit uhttpd
commit=1
fi
[ "$(uci -q get uhttpd.main.ubus_socket)" = "/var/run/ubus.sock" ] && {
uci set uhttpd.main.ubus_socket='/var/run/ubus/ubus.sock'
uci commit uhttpd
commit=1
}
[ "$commit" = 1 ] && uci commit uhttpd && /etc/init.d/uhttpd reload
exit 0

View File

@ -24,6 +24,7 @@
"pipe",
"poll",
"fcntl64",
"fstat",
"epoll_create",
"epoll_create1",
"epoll_ctl",

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=iproute2
PKG_VERSION:=5.11.0
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
@ -33,29 +33,46 @@ endef
define Package/ip-tiny
$(call Package/iproute2/Default)
TITLE:=Routing control utility (Minimal)
VARIANT:=tiny
DEFAULT_VARIANT:=1
PROVIDES:=ip
ALTERNATIVES:=200:/sbin/ip:/usr/libexec/ip-tiny
DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl
TITLE:=Routing control utility (minimal)
VARIANT:=iptiny
DEFAULT_VARIANT:=1
PROVIDES:=ip
ALTERNATIVES:=200:/sbin/ip:/usr/libexec/ip-tiny
DEPENDS:=+libnl-tiny +(PACKAGE_devlink||PACKAGE_rdma):libmnl
endef
define Package/ip-full
$(call Package/iproute2/Default)
TITLE:=Routing control utility (Full)
VARIANT:=full
PROVIDES:=ip
ALTERNATIVES:=300:/sbin/ip:/usr/libexec/ip-full
DEPENDS:=+libnl-tiny +libbpf +(PACKAGE_devlink||PACKAGE_rdma):libmnl
TITLE:=Routing control utility (full)
VARIANT:=ipfull
PROVIDES:=ip
ALTERNATIVES:=300:/sbin/ip:/usr/libexec/ip-full
DEPENDS:=+libnl-tiny +libbpf +(PACKAGE_devlink||PACKAGE_rdma):libmnl
endef
define Package/tc
define Package/tc-tiny
$(call Package/iproute2/Default)
TITLE:=Traffic control utility
VARIANT:=tc
TITLE:=Traffic control utility (minimal)
VARIANT:=tctiny
DEFAULT_VARIANT:=1
PROVIDES:=tc
DEPENDS:=+kmod-sched-core +libxtables +libbpf +(PACKAGE_devlink||PACKAGE_rdma):libmnl
ALTERNATIVES:=200:/sbin/tc:/usr/libexec/tc-tiny
DEPENDS:=+kmod-sched-core +libxtables +tc-mod-iptables +(PACKAGE_devlink||PACKAGE_rdma):libmnl
endef
define Package/tc-full
$(call Package/iproute2/Default)
TITLE:=Traffic control utility (full)
VARIANT:=tcfull
PROVIDES:=tc
ALTERNATIVES:=300:/sbin/tc:/usr/libexec/tc-full
DEPENDS:=+kmod-sched-core +libxtables +tc-mod-iptables +libbpf +(PACKAGE_devlink||PACKAGE_rdma):libmnl
endef
define Package/tc-mod-iptables
$(call Package/iproute2/Default)
TITLE:=Traffic control module - iptables action
DEPENDS:=+libxtables
endef
define Package/genl
@ -94,18 +111,22 @@ $(call Package/iproute2/Default)
DEPENDS:=+libmnl
endef
ifeq ($(BUILD_VARIANT),tiny)
ifeq ($(BUILD_VARIANT),iptiny)
IP_CONFIG_TINY:=y
LIBBPF_FORCE:=off
endif
ifeq ($(BUILD_VARIANT),full)
ifeq ($(BUILD_VARIANT),ipfull)
HAVE_ELF:=y
LIBBPF_FORCE:=on
HAVE_CAP:=n
endif
ifeq ($(BUILD_VARIANT),tc)
ifeq ($(BUILD_VARIANT),tctiny)
LIBBPF_FORCE:=off
SHARED_LIBS:=y
endif
ifeq ($(BUILD_VARIANT),tcfull)
HAVE_ELF:=y
LIBBPF_FORCE:=on
SHARED_LIBS:=y
@ -167,15 +188,19 @@ define Package/ip-full/install
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ip/ip $(1)/usr/libexec/ip-full
endef
define Package/tc/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tc/tc $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/etc/hotplug.d/iface
$(INSTALL_BIN) ./files/15-teql $(1)/etc/hotplug.d/iface/
ifeq ($(SHARED_LIBS),y)
define Package/tc-tiny/install
$(INSTALL_DIR) $(1)/usr/libexec
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tc/tc $(1)/usr/libexec/tc-tiny
endef
define Package/tc-full/install
$(INSTALL_DIR) $(1)/usr/libexec
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tc/tc $(1)/usr/libexec/tc-full
endef
define Package/tc-mod-iptables/install
$(INSTALL_DIR) $(1)/usr/lib/tc
$(CP) $(PKG_BUILD_DIR)/tc/*.so $(1)/usr/lib/tc
endif
$(CP) $(PKG_BUILD_DIR)/tc/m_xt.so $(1)/usr/lib/tc
endef
define Package/genl/install
@ -210,7 +235,9 @@ endef
$(eval $(call BuildPackage,ip-tiny))
$(eval $(call BuildPackage,ip-full))
$(eval $(call BuildPackage,tc))
$(eval $(call BuildPackage,tc-tiny))
$(eval $(call BuildPackage,tc-full))
$(eval $(call BuildPackage,tc-mod-iptables))
$(eval $(call BuildPackage,genl))
$(eval $(call BuildPackage,ip-bridge))
$(eval $(call BuildPackage,ss))

View File

@ -0,0 +1,45 @@
From c77310119f9a5f99221dd967c5eb0c7a26094b41 Mon Sep 17 00:00:00 2001
From: Tony Ambardar <Tony.Ambardar@gmail.com>
Date: Wed, 3 Mar 2021 10:29:24 -0800
Subject: [PATCH] lib/bpf: add missing limits.h includes
Several functions in bpf_glue.c and bpf_libbpf.c rely on PATH_MAX, which is
normally included from <limits.h> in other iproute2 source files.
It fixes errors seen using gcc 10.2.0, binutils 2.35.1 and musl 1.1.24:
bpf_glue.c: In function 'get_libbpf_version':
bpf_glue.c:46:11: error: 'PATH_MAX' undeclared (first use in this function);
did you mean 'AF_MAX'?
46 | char buf[PATH_MAX], *s;
| ^~~~~~~~
| AF_MAX
Reported-by: Rui Salvaterra <rsalvaterra@gmail.com>
Signed-off-by: Tony Ambardar <Tony.Ambardar@gmail.com>
---
lib/bpf_glue.c | 2 ++
lib/bpf_libbpf.c | 1 +
2 files changed, 3 insertions(+)
--- a/lib/bpf_glue.c
+++ b/lib/bpf_glue.c
@@ -4,6 +4,8 @@
* Authors: Hangbin Liu <haliu@redhat.com>
*
*/
+#include <limits.h>
+
#include "bpf_util.h"
#ifdef HAVE_LIBBPF
#include <bpf/bpf.h>
--- a/lib/bpf_libbpf.c
+++ b/lib/bpf_libbpf.c
@@ -13,6 +13,7 @@
#include <stdint.h>
#include <errno.h>
#include <fcntl.h>
+#include <limits.h>
#include <libelf.h>
#include <gelf.h>

View File

@ -12,9 +12,9 @@ PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/fstools.git
PKG_MIRROR_HASH:=5e55b446e3e171cd609d94fe00cf528fc5b784e9a4cb911730ba3ee9622e2e0b
PKG_SOURCE_DATE:=2021-03-05
PKG_SOURCE_VERSION:=3c38f0c889177dfac51fa7213c567a110709be71
PKG_MIRROR_HASH:=c9a5647f69dd17ce9d7cd535c9e58055171f7f4af73d2985567ccfc18a2be97f
PKG_SOURCE_DATE:=2021-03-19
PKG_SOURCE_VERSION:=964d1e3af0e111bad6d393f8a3be702e334c2398
CMAKE_INSTALL:=1
PKG_LICENSE:=GPL-2.0

View File

@ -12,9 +12,9 @@ PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git
PKG_SOURCE_DATE:=2021-03-08
PKG_SOURCE_VERSION:=2cfc26f8456a4d5ba3836c914a742f3d00bad781
PKG_MIRROR_HASH:=4b514143949b6ea5799a7b0b2f2f4ad5f084f88929eb0ac5a01ffc7852a71d22
PKG_SOURCE_DATE:=2021-03-21
PKG_SOURCE_VERSION:=7ee456346baca29af40a6d1a5071e57f32ebf762
PKG_MIRROR_HASH:=aad23bc8f0548a46e60e4967b3f6645f03bad61c395269244c3509cc41f2c3d0
CMAKE_INSTALL:=1
PKG_LICENSE:=GPL-2.0
@ -82,7 +82,7 @@ endef
define Package/procd-seccomp
SECTION:=base
CATEGORY:=Base system
DEPENDS:=@(arm||armeb||mips||mipsel||i386||powerpc||x86_64) @!TARGET_uml \
DEPENDS:=@(aarch64||arm||armeb||mips||mipsel||i386||powerpc||x86_64) @!TARGET_uml \
@KERNEL_SECCOMP +libubox +libblobmsg-json
TITLE:=OpenWrt process seccomp helper + utrace
endef

View File

@ -0,0 +1,49 @@
From 7eed119b84b0f7efb7ef351940dd895dc2379eb3 Mon Sep 17 00:00:00 2001
From: Russell Senior <russell@personaltelco.net>
Date: Mon, 15 Mar 2021 23:27:58 -0700
Subject: [PATCH v2] udhcpc: ignore zero-length DHCP options
Discovered that the DHCP server on a TrendNet router (unknown model)
provides a zero-length option 12 (Host Name) in the DHCP ACK message. This
has the effect of causing udhcpc to drop the rest of the options, including
option 51 (IP Address Lease Time), 3 (Router), and 6 (Domain Name Server),
most importantly leaving the OpenWrt device with no default gateway.
The TrendNet behavior violates RFC 2132, which in Section 3.14 declares that
option 12 has a miniumum length of 1 octet. It is perhaps not a cosmic coincidence
that I found this behavior on Pi Day.
This patch allows zero length options without bailing out, by simply skipping them.
v2 changelog:
* advance the optionptr by two bytes, not one;
* add a message to warn about the rfc violation;
Signed-off-by: Russell Senior <russell@personaltelco.net>
---
networking/udhcp/common.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/networking/udhcp/common.c b/networking/udhcp/common.c
index 4bc719001..a16fd85d0 100644
--- a/networking/udhcp/common.c
+++ b/networking/udhcp/common.c
@@ -277,8 +277,13 @@ uint8_t* FAST_FUNC udhcp_scan_options(struct dhcp_packet *packet, struct dhcp_sc
goto complain; /* complain and return NULL */
len = 2 + scan_state->optionptr[OPT_LEN];
scan_state->rem -= len;
- /* So far no valid option with length 0 known. */
- if (scan_state->rem < 0 || scan_state->optionptr[OPT_LEN] == 0)
+ /* skip any options with zero length */
+ if (scan_state->optionptr[OPT_LEN] == 0) {
+ scan_state->optionptr += 2;
+ bb_simple_error_msg("warning: zero length DHCP option violates rfc2132, skipping");
+ continue;
+ }
+ if (scan_state->rem < 0)
goto complain; /* complain and return NULL */
if (scan_state->optionptr[OPT_CODE] == DHCP_OPTION_OVERLOAD) {
--
2.30.1

View File

@ -0,0 +1,116 @@
#
# Copyright (C) 2020-2021 Jo-Philipp Wich <jo@mein.io>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=ucode
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=https://github.com/jow-/ucode.git
PKG_SOURCE_DATE:=2021-03-19
PKG_SOURCE_VERSION:=4a5b9010ccc56fdf288fe758023af445feb93fad
PKG_MIRROR_HASH:=145a2ce69e14cae9b448de85b94c7a817ba3aea04b1611399186ad36fb88958e
PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
PKG_LICENSE:=ISC
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/ucode/default
SECTION:=utils
CATEGORY:=Utilities
TITLE:=ucode - Tiny scripting and templating language
endef
define Package/ucode
$(Package/ucode/default)
DEPENDS:=+libjson-c
endef
define Package/ucode/description
ucode is a tiny script interpreter featuring an ECMAScript oriented
script language and Jinja-inspired templating.
endef
define Package/ucode-mod-fs
$(Package/ucode/default)
TITLE+= (filesystem module)
DEPENDS:=ucode
endef
define Package/ucode-mod-fs/description
The filesystem plugin module allows interaction with the local file system.
endef
define Package/ucode-mod-math
$(Package/ucode/default)
TITLE+= (math module)
DEPENDS:=ucode
endef
define Package/ucode-mod-math/description
The math plugin provides access to various <math.h> procedures.
endef
define Package/ucode-mod-ubus
$(Package/ucode/default)
TITLE+= (ubus module)
DEPENDS:=ucode +libubus +libblobmsg-json
endef
define Package/ucode-mod-ubus/description
The ubus module allows ucode template scripts to enumerate and invoke ubus
procedures.
endef
define Package/ucode-mod-uci
$(Package/ucode/default)
TITLE+= (uci module)
DEPENDS:=ucode +libuci
endef
define Package/ucode-mod-uci/description
The uci module allows templates to read and modify uci configuration.
endef
define Package/ucode/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ucode $(1)/usr/bin/ucode
endef
define Package/ucode-mod-fs/install
$(INSTALL_DIR) $(1)/usr/lib/ucode
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/fs.so $(1)/usr/lib/ucode/
endef
define Package/ucode-mod-math/install
$(INSTALL_DIR) $(1)/usr/lib/ucode
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/math.so $(1)/usr/lib/ucode/
endef
define Package/ucode-mod-ubus/install
$(INSTALL_DIR) $(1)/usr/lib/ucode
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/ubus.so $(1)/usr/lib/ucode/
endef
define Package/ucode-mod-uci/install
$(INSTALL_DIR) $(1)/usr/lib/ucode
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/uci.so $(1)/usr/lib/ucode/
endef
$(eval $(call BuildPackage,ucode))
$(eval $(call BuildPackage,ucode-mod-fs))
$(eval $(call BuildPackage,ucode-mod-math))
$(eval $(call BuildPackage,ucode-mod-ubus))
$(eval $(call BuildPackage,ucode-mod-uci))

View File

@ -38,9 +38,10 @@ if output:
"make",
"--no-print-directory",
"-C",
"target/linux/{}".format(output['target'].split('/')[0]),
"target/linux/{}".format(output["target"].split("/")[0]),
"val.DEFAULT_PACKAGES",
"val.ARCH_PACKAGES",
"DUMP=1",
],
stdout=PIPE,
stderr=PIPE,

View File

@ -48,9 +48,9 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
#include "xhci.h"
#include "xhci-trace.h"
@@ -63,6 +65,44 @@
#define PCI_DEVICE_ID_ASMEDIA_1142_XHCI 0x1242
@@ -64,6 +66,44 @@
#define PCI_DEVICE_ID_ASMEDIA_2142_XHCI 0x2142
#define PCI_DEVICE_ID_ASMEDIA_3242_XHCI 0x3242
+#define RENESAS_FW_VERSION 0x6C
+#define RENESAS_ROM_CONFIG 0xF0
@ -93,7 +93,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
static const char hcd_name[] = "xhci_hcd";
static struct hc_driver __read_mostly xhci_pci_hc_driver;
@@ -298,6 +338,873 @@ static void xhci_pme_acpi_rtd3_enable(st
@@ -307,6 +347,873 @@ static void xhci_pme_acpi_rtd3_enable(st
static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) { }
#endif /* CONFIG_ACPI */
@ -967,7 +967,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
/* called during probe() after chip reset completes */
static int xhci_pci_setup(struct usb_hcd *hcd)
{
@@ -339,6 +1246,27 @@ static int xhci_pci_probe(struct pci_dev
@@ -348,6 +1255,27 @@ static int xhci_pci_probe(struct pci_dev
struct hc_driver *driver;
struct usb_hcd *hcd;
@ -995,7 +995,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
driver = (struct hc_driver *)id->driver_data;
/* Prevent runtime suspending between USB-2 and USB-3 initialization */
@@ -400,6 +1328,16 @@ static void xhci_pci_remove(struct pci_d
@@ -409,6 +1337,16 @@ static void xhci_pci_remove(struct pci_d
{
struct xhci_hcd *xhci;
@ -1012,7 +1012,7 @@ Signed-off-by: Vinod Koul <vkoul@kernel.org>
xhci = hcd_to_xhci(pci_get_drvdata(dev));
xhci->xhc_state |= XHCI_STATE_REMOVING;
@@ -539,6 +1477,11 @@ static int xhci_pci_resume(struct usb_hc
@@ -548,6 +1486,11 @@ static int xhci_pci_resume(struct usb_hc
if (pdev->vendor == PCI_VENDOR_ID_INTEL)
usb_enable_intel_xhci_ports(pdev);

View File

@ -13,7 +13,7 @@ produce a noisy warning.
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -285,6 +285,7 @@ static void xhci_pci_quirks(struct devic
@@ -286,6 +286,7 @@ static void xhci_pci_quirks(struct devic
pdev->device == 0x0015) {
xhci->quirks |= XHCI_RESET_ON_RESUME;
xhci->quirks |= XHCI_ZERO_64B_REGS;
@ -43,7 +43,7 @@ produce a noisy warning.
hcd->msi_enabled = 1;
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1882,6 +1882,7 @@ struct xhci_hcd {
@@ -1883,6 +1883,7 @@ struct xhci_hcd {
struct xhci_hub usb2_rhub;
struct xhci_hub usb3_rhub;
/* support xHCI 1.0 spec USB2 hardware LPM */

View File

@ -140,6 +140,7 @@ CONFIG_HAVE_NET_DSA=y
CONFIG_HAVE_OPROFILE=y
CONFIG_HAVE_PCI=y
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_HZ=100
CONFIG_HZ_PERIODIC=y
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y

View File

@ -92,7 +92,6 @@ CONFIG_ARM64_VHE=y
CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y
CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y
CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y
# CONFIG_ARM_PSCI_CPUIDLE is not set
CONFIG_ATOMIC64_SELFTEST=y
CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
@ -104,7 +103,6 @@ CONFIG_CLK_SP810=y
CONFIG_CLK_VEXPRESS_OSC=y
CONFIG_COMMON_CLK_VERSATILE=y
CONFIG_CPU_IDLE=y
# CONFIG_CPU_IDLE_GOV_LADDER is not set
CONFIG_CPU_IDLE_GOV_MENU=y
CONFIG_CPU_PM=y
CONFIG_CRYPTO_AES_ARM64=y
@ -122,12 +120,8 @@ CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA1_ARM64_CE=y
CONFIG_CRYPTO_SHA256_ARM64=y
CONFIG_CRYPTO_SHA2_ARM64_CE=y
# CONFIG_CRYPTO_SHA3_ARM64 is not set
CONFIG_CRYPTO_SHA512_ARM64=y
# CONFIG_CRYPTO_SHA512_ARM64_CE is not set
CONFIG_CRYPTO_SIMD=y
# CONFIG_CRYPTO_SM3_ARM64_CE is not set
# CONFIG_CRYPTO_SM4_ARM64_CE is not set
CONFIG_DMA_DIRECT_REMAP=y
CONFIG_DMA_SHARED_BUFFER=y
CONFIG_DRM=y
@ -138,7 +132,6 @@ CONFIG_DRM_PANEL=y
CONFIG_DRM_PANEL_BRIDGE=y
# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
# CONFIG_DRM_PANEL_SIMPLE is not set
CONFIG_DRM_QXL=y
CONFIG_DRM_RCAR_WRITEBACK=y
CONFIG_DRM_TTM=y
@ -218,7 +211,6 @@ CONFIG_MFD_SYSCON=y
CONFIG_MFD_VEXPRESS_SYSREG=y
CONFIG_MMC=y
CONFIG_MMC_ARMMMCI=y
# CONFIG_MMC_TIFM_SD is not set
CONFIG_MODULES_USE_ELF_RELA=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_NO_HZ=y
@ -226,8 +218,6 @@ CONFIG_NO_HZ_COMMON=y
CONFIG_NO_HZ_IDLE=y
CONFIG_NR_CPUS=64
# CONFIG_NUMA is not set
# CONFIG_OCTEONTX2_AF is not set
# CONFIG_PCIE_AL is not set
CONFIG_PM=y
CONFIG_PM_CLK=y
# CONFIG_PM_DEBUG is not set

View File

@ -229,7 +229,6 @@ CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_CONSOLE=y
CONFIG_VIRTIO_MMIO=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_NET=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_PCI_LEGACY=y

View File

@ -0,0 +1,26 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "ar9132_buffalo_wzr-hp-g300nh.dtsi"
/ {
compatible = "buffalo,wzr-hp-g300nh-rb", "qca,ar9132";
model = "Buffalo WZR-HP-G300NH (rtl8366rb)";
};
&switch {
status = "okay";
compatible = "realtek,rtl8366rb";
};
&eth0 {
status = "okay";
pll-data = <0x1f000000 0x13000a44 0x00441099>;
};
&eth1 {
status = "okay";
pll-data = <0x100 0x13000a44 0x00441099>;
};

View File

@ -0,0 +1,26 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "ar9132_buffalo_wzr-hp-g300nh.dtsi"
/ {
compatible = "buffalo,wzr-hp-g300nh-s", "qca,ar9132";
model = "Buffalo WZR-HP-G300NH (rtl8366s)";
};
&switch {
status = "okay";
compatible = "realtek,rtl8366s";
};
&eth0 {
status = "okay";
pll-data = <0x1e000100 0x13000a44 0x00441099>;
};
&eth1 {
status = "okay";
pll-data = <0x1e000100 0x13000a44 0x00441099>;
};

View File

@ -0,0 +1,249 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "ar9132.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
aliases {
led-boot = &led_diag;
led-failsafe = &led_security;
led-upgrade = &led_diag;
};
clock40mhz: ref {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <40000000>;
};
gpio2: gpio-extender {
compatible = "nxp,74hc153-gpio";
gpio-controller;
#gpio-cells = <2>;
// GPIOs used by this node
gpio-s0 = <&gpio 9 GPIO_ACTIVE_HIGH>;
gpio-s1 = <&gpio 11 GPIO_ACTIVE_HIGH>;
gpio-1y = <&gpio 12 GPIO_ACTIVE_HIGH>;
gpio-2y = <&gpio 14 GPIO_ACTIVE_HIGH>;
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
aoss {
label = "aoss";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
router_on {
label = "router_on";
linux,code = <BTN_5>;
gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
movie_off {
label = "movie_off";
linux,code = <BTN_3>;
gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
usb {
label = "usb";
linux,code = <BTN_2>;
gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
router_auto {
label = "router_auto";
linux,code = <BTN_6>;
gpios = <&gpio2 6 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
movie_on {
label = "movie_on";
linux,code = <BTN_4>;
gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
debounce-interval = <60>;
};
};
flash@1e000000 {
compatible = "cfi-flash";
reg = <0x1e000000 0x2000000>;
bank-width = <2>;
device-width = <2>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x0000000 0x0040000>;
read-only;
};
partition@40000 {
label = "u-boot-env";
reg = <0x0040000 0x0020000>;
read-only;
};
partition@60000 {
compatible = "denx,uimage";
label = "firmware";
reg = <0x0060000 0x1f60000>;
};
partition@1fc0000 {
label = "user_property";
reg = <0x1fc0000 0x0020000>;
read-only;
};
art: partition@1fe0000 {
label = "art";
reg = <0x1fe0000 0x020000>;
read-only;
};
};
};
leds {
compatible = "gpio-leds";
usb {
label = "blue:usb";
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
trigger-sources = <&hub_port>;
linux,default-trigger = "usbport";
};
led_diag: diag {
label = "red:diag";
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
};
wireless {
label = "green:wireless";
gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
led_security: security {
label = "amber:security";
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
};
router {
label = "green:router";
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
};
};
switch: switch {
status = "disabled";
gpio-sda = <&gpio 19 GPIO_ACTIVE_HIGH>;
gpio-sck = <&gpio 20 GPIO_ACTIVE_HIGH>;
mii-bus = <&mdio0>;
mdio-bus {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
phy-mask = <0x10>;
phy4: ethernet-phy@4 {
reg = <4>;
phy-mode = "rgmii";
};
};
};
};
&mdio0 {
status = "okay";
};
&eth0 {
status = "disabled";
phy-mode = "rgmii";
mtd-mac-address = <&art 0x1120c>;
fixed-link {
speed = <1000>;
full-duplex;
};
};
&mdio1 {
status = "okay";
};
&eth1 {
status = "disabled";
compatible = "qca,ar9130-eth", "syscon";
reg = <0x1a000000 0x200
0x18070004 0x4>;
pll-reg = <0x4 0x18 22>;
pll-handle = <&pll>;
phy-mode = "rgmii";
phy-handle = <&phy4>;
resets = <&rst 13>;
reset-names = "mac";
qca,mac-idx = <1>;
mtd-mac-address = <&art 0x1120c>;
};
&wmac {
status = "okay";
mtd-cal-data = <&art 0x11000>;
};
&uart {
status = "okay";
};
&pll {
clocks = <&clock40mhz>;
};
&usb {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
hub_port: port@1 {
reg = <1>;
#trigger-source-cells = <0>;
};
};
&usb_phy {
status = "okay";
};

View File

@ -83,6 +83,10 @@ avm,fritzdvbc)
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "green:rssimediumhigh" "wlan1" "60" "100"
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "green:rssihigh" "wlan1" "80" "100"
;;
buffalo,wzr-hp-g300nh-rb|\
buffalo,wzr-hp-g300nh-s)
ucidef_set_led_netdev "router" "Router" "green:router" "eth1"
;;
comfast,cf-e110n-v2)
ucidef_set_led_netdev "lan" "LAN" "green:lan" "eth1"
ucidef_set_led_switch "wan" "WAN" "green:wan" "switch0" "0x02"

View File

@ -155,6 +155,13 @@ ath79_setup_interfaces()
ucidef_add_switch "switch0" \
"0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
;;
buffalo,wzr-hp-g300nh-rb|\
buffalo,wzr-hp-g300nh-s|\
dlink,dir-825-b1)
ucidef_set_interface_wan "eth1"
ucidef_add_switch "switch0" \
"0:lan" "1:lan" "2:lan" "3:lan" "5@eth0"
;;
buffalo,wzr-hp-g302h-a1a0)
ucidef_add_switch "switch0" \
"0@eth0" "1:lan:1" "3:lan:4" "4:lan:3" "5:lan:2" "2:wan"
@ -211,11 +218,6 @@ ath79_setup_interfaces()
ucidef_add_switch "switch0" \
"0@eth0" "1:lan:2" "2:lan:1"
;;
dlink,dir-825-b1)
ucidef_set_interface_wan "eth1"
ucidef_add_switch "switch0" \
"0:lan" "1:lan" "2:lan" "3:lan" "5@eth0"
;;
dlink,dir-825-c1|\
dlink,dir-835-a1|\
dlink,dir-842-c1|\
@ -223,6 +225,7 @@ ath79_setup_interfaces()
dlink,dir-842-c3|\
dlink,dir-859-a1|\
engenius,epg5000|\
sitecom,wlr-7100|\
tplink,archer-c2-v3|\
tplink,tl-wr1043nd-v4|\
tplink,tl-wr1043n-v5)
@ -262,7 +265,6 @@ ath79_setup_interfaces()
iodata,wn-ac1600dgr2|\
iodata,wn-ag300dgr|\
pcs,cr5000|\
sitecom,wlr-7100|\
wd,mynet-n750|\
xwrt,csac)
ucidef_add_switch "switch0" \

View File

@ -480,6 +480,29 @@ define Device/buffalo_wzr-hp-ag300h
endef
TARGET_DEVICES += buffalo_wzr-hp-ag300h
define Device/buffalo_wzr-hp-g300nh
$(Device/buffalo_common)
SOC := ar9132
BUFFALO_PRODUCT := WZR-HP-G300NH
BUFFALO_HWVER := 1
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport kmod-gpio-nxp-74hc153
BLOCKSIZE := 128k
IMAGE_SIZE := 32128k
SUPPORTED_DEVICES += wzr-hp-g300nh
endef
define Device/buffalo_wzr-hp-g300nh-rb
$(Device/buffalo_wzr-hp-g300nh)
DEVICE_MODEL := WZR-HP-G300NH (RTL8366RB switch)
endef
TARGET_DEVICES += buffalo_wzr-hp-g300nh-rb
define Device/buffalo_wzr-hp-g300nh-s
$(Device/buffalo_wzr-hp-g300nh)
DEVICE_MODEL := WZR-HP-G300NH (RTL8366S switch)
endef
TARGET_DEVICES += buffalo_wzr-hp-g300nh-s
define Device/buffalo_wzr-hp-g302h-a1a0
$(Device/buffalo_common)
SOC := ar7242

View File

@ -0,0 +1,58 @@
From f1f811410af297c848e9ec17eaa280d190fdce10 Mon Sep 17 00:00:00 2001
From: Mauri Sandberg <sandberg@mailfence.com>
Date: Tue, 23 Feb 2021 18:09:31 +0200
Subject: [PATCH] mtd: cfi_cmdset_0002: AMD chip 0x2201 - write words
Buffer writes do not work with AMD chip 0x2201. The chip in question
is a AMD/Spansion/Cypress Semiconductor S29GL256N and datasheet [1]
talks about writing buffers being possible. While waiting for a neater
solution resort to writing word-sized chunks only.
Without the patch kernel logs will be flooded with entries like below:
jffs2_scan_eraseblock(): End of filesystem marker found at 0x0
jffs2_build_filesystem(): unlocking the mtd device...
done.
jffs2_build_filesystem(): erasing all blocks after the end marker...
MTD do_write_buffer_wait(): software timeout, address:0x01ec000a.
jffs2: Write clean marker to block at 0x01920000 failed: -5
MTD do_write_buffer_wait(): software timeout, address:0x01e2000a.
jffs2: Write clean marker to block at 0x01880000 failed: -5
MTD do_write_buffer_wait(): software timeout, address:0x01e0000a.
jffs2: Write clean marker to block at 0x01860000 failed: -5
MTD do_write_buffer_wait(): software timeout, address:0x01dc000a.
jffs2: Write clean marker to block at 0x01820000 failed: -5
MTD do_write_buffer_wait(): software timeout, address:0x01da000a.
jffs2: Write clean marker to block at 0x01800000 failed: -5
...
Tested on a Buffalo wzr-hp-g300nh running kernel 5.10.16.
[1] https://www.cypress.com/file/219941/download
or https://datasheetspdf.com/pdf-file/565708/SPANSION/S29GL256N/1
Signed-off-by: Mauri Sandberg <sandberg@mailfence.com>
---
drivers/mtd/chips/cfi_cmdset_0002.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
index a1f3e1031c3d..28b6f3583f8a 100644
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -272,6 +272,10 @@ static void fixup_use_write_buffers(struct mtd_info *mtd)
{
struct map_info *map = mtd->priv;
struct cfi_private *cfi = map->fldrv_priv;
+
+ if ((cfi->mfr == CFI_MFR_AMD) && (cfi->id == 0x2201))
+ return;
+
if (cfi->cfiq->BufWriteTimeoutTyp) {
pr_debug("Using buffer write method\n");
mtd->_write = cfi_amdstd_write_buffers;
base-commit: 5de15b610f785f0e188fefb707f0b19de156968a
--
2.25.1

View File

@ -307,7 +307,6 @@ CONFIG_MMC_SDHCI_IO_ACCESSORS=y
CONFIG_MMC_SDHCI_IPROC=y
# CONFIG_MMC_SDHCI_PCI is not set
CONFIG_MMC_SDHCI_PLTFM=y
# CONFIG_MMC_TIFM_SD is not set
CONFIG_MODULES_USE_ELF_REL=y
# CONFIG_MTD is not set
CONFIG_MUTEX_SPIN_ON_OWNER=y

View File

@ -52,7 +52,6 @@ CONFIG_ARM_GIC_V2M=y
CONFIG_ARM_GIC_V3=y
CONFIG_ARM_GIC_V3_ITS=y
CONFIG_ARM_GIC_V3_ITS_PCI=y
# CONFIG_ARM_PSCI_CPUIDLE is not set
CONFIG_ARM_PSCI_FW=y
CONFIG_ARM_RASPBERRYPI_CPUFREQ=y
# CONFIG_ARM_SCMI_PROTOCOL is not set
@ -310,7 +309,6 @@ CONFIG_MMC_SDHCI_IO_ACCESSORS=y
CONFIG_MMC_SDHCI_IPROC=y
# CONFIG_MMC_SDHCI_PCI is not set
CONFIG_MMC_SDHCI_PLTFM=y
# CONFIG_MMC_TIFM_SD is not set
CONFIG_MODULES_USE_ELF_RELA=y
# CONFIG_MTD is not set
CONFIG_MUTEX_SPIN_ON_OWNER=y
@ -324,7 +322,6 @@ CONFIG_NO_HZ_COMMON=y
CONFIG_NO_HZ_IDLE=y
CONFIG_NR_CPUS=4
CONFIG_NVMEM=y
# CONFIG_OCTEONTX2_AF is not set
CONFIG_OF=y
CONFIG_OF_ADDRESS=y
CONFIG_OF_CONFIGFS=y
@ -341,7 +338,6 @@ CONFIG_OF_RESOLVE=y
CONFIG_PADATA=y
CONFIG_PARTITION_PERCPU=y
CONFIG_PCI=y
# CONFIG_PCIE_AL is not set
# CONFIG_PCIE_BRCMSTB is not set
CONFIG_PCI_DOMAINS=y
CONFIG_PCI_DOMAINS_GENERIC=y

View File

@ -52,7 +52,6 @@ CONFIG_ARM_GIC_V2M=y
CONFIG_ARM_GIC_V3=y
CONFIG_ARM_GIC_V3_ITS=y
CONFIG_ARM_GIC_V3_ITS_PCI=y
# CONFIG_ARM_PSCI_CPUIDLE is not set
CONFIG_ARM_PSCI_FW=y
CONFIG_ARM_RASPBERRYPI_CPUFREQ=y
# CONFIG_ARM_SCMI_PROTOCOL is not set
@ -257,6 +256,7 @@ CONFIG_HOLES_IN_ZONE=y
CONFIG_HOTPLUG_CPU=y
CONFIG_HW_CONSOLE=y
CONFIG_HW_RANDOM=y
# CONFIG_HW_RANDOM_BCM2835 is not set
CONFIG_HW_RANDOM_IPROC_RNG200=y
CONFIG_HZ=250
CONFIG_HZ_250=y
@ -316,7 +316,6 @@ CONFIG_MMC_SDHCI_IO_ACCESSORS=y
CONFIG_MMC_SDHCI_IPROC=y
# CONFIG_MMC_SDHCI_PCI is not set
CONFIG_MMC_SDHCI_PLTFM=y
# CONFIG_MMC_TIFM_SD is not set
CONFIG_MODULES_USE_ELF_RELA=y
# CONFIG_MTD is not set
CONFIG_MUTEX_SPIN_ON_OWNER=y
@ -331,7 +330,6 @@ CONFIG_NO_HZ_COMMON=y
CONFIG_NO_HZ_IDLE=y
CONFIG_NR_CPUS=4
CONFIG_NVMEM=y
# CONFIG_OCTEONTX2_AF is not set
CONFIG_OF=y
CONFIG_OF_ADDRESS=y
CONFIG_OF_CONFIGFS=y
@ -350,7 +348,6 @@ CONFIG_PARTITION_PERCPU=y
CONFIG_PCI=y
CONFIG_PCIEAER=y
CONFIG_PCIEPORTBUS=y
# CONFIG_PCIE_AL is not set
CONFIG_PCIE_BRCMSTB=y
CONFIG_PCIE_PME=y
CONFIG_PCI_DOMAINS=y

View File

@ -10,7 +10,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -254,6 +254,10 @@ static void xhci_pci_quirks(struct devic
@@ -255,6 +255,10 @@ static void xhci_pci_quirks(struct devic
pdev->device == 0x3432)
xhci->quirks |= XHCI_BROKEN_STREAMS;

View File

@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -1456,6 +1456,103 @@ command_cleanup:
@@ -1464,6 +1464,103 @@ command_cleanup:
}
/*
@ -119,7 +119,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
* non-error returns are a promise to giveback() the urb later
* we drop ownership so next owner (or urb unlink) can get it
*/
@@ -5337,6 +5434,7 @@ static const struct hc_driver xhci_hc_dr
@@ -5345,6 +5442,7 @@ static const struct hc_driver xhci_hc_dr
.endpoint_reset = xhci_endpoint_reset,
.check_bandwidth = xhci_check_bandwidth,
.reset_bandwidth = xhci_reset_bandwidth,

View File

@ -23,7 +23,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -255,8 +255,10 @@ static void xhci_pci_quirks(struct devic
@@ -256,8 +256,10 @@ static void xhci_pci_quirks(struct devic
xhci->quirks |= XHCI_BROKEN_STREAMS;
if (pdev->vendor == PCI_VENDOR_ID_VIA &&
@ -87,4 +87,4 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
+#define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(36)
#define XHCI_SKIP_PHY_INIT BIT_ULL(37)
#define XHCI_DISABLE_SPARSE BIT_ULL(38)
#define XHCI_NO_SOFT_RETRY BIT_ULL(40)

View File

@ -24,7 +24,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/Makefile
+++ b/Makefile
@@ -1261,6 +1261,9 @@ ifneq ($(dtstree),)
@@ -1267,6 +1267,9 @@ ifneq ($(dtstree),)
%.dtb: include/config/kernel.release scripts_dtc
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@

View File

@ -85,7 +85,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
zhole_size[ZONE_NORMAL] -= normal_end - normal_start;
}
}
@@ -410,9 +410,9 @@ void __init arm64_memblock_init(void)
@@ -422,9 +422,9 @@ void __init arm64_memblock_init(void)
/* 4GB maximum for 32-bit only capable devices */
if (IS_ENABLED(CONFIG_ZONE_DMA32))
@ -97,7 +97,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
reserve_crashkernel();
@@ -420,7 +420,7 @@ void __init arm64_memblock_init(void)
@@ -432,7 +432,7 @@ void __init arm64_memblock_init(void)
high_memory = __va(memblock_end_of_DRAM() - 1) + 1;
@ -106,7 +106,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
}
void __init bootmem_init(void)
@@ -524,7 +524,7 @@ static void __init free_unused_memmap(vo
@@ -536,7 +536,7 @@ static void __init free_unused_memmap(vo
void __init mem_init(void)
{
if (swiotlb_force == SWIOTLB_FORCE ||

View File

@ -140,7 +140,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
}
#endif
if (end > max_dma32) {
@@ -408,9 +430,11 @@ void __init arm64_memblock_init(void)
@@ -420,9 +442,11 @@ void __init arm64_memblock_init(void)
early_init_fdt_scan_reserved_mem();
@ -154,7 +154,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
else
arm64_dma32_phys_limit = PHYS_MASK + 1;
@@ -420,7 +444,7 @@ void __init arm64_memblock_init(void)
@@ -432,7 +456,7 @@ void __init arm64_memblock_init(void)
high_memory = __va(memblock_end_of_DRAM() - 1) + 1;
@ -163,7 +163,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
}
void __init bootmem_init(void)
@@ -524,7 +548,7 @@ static void __init free_unused_memmap(vo
@@ -536,7 +560,7 @@ static void __init free_unused_memmap(vo
void __init mem_init(void)
{
if (swiotlb_force == SWIOTLB_FORCE ||

View File

@ -50,7 +50,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
/*
* We need to be able to catch inadvertent references to memstart_addr
* that occur (potentially in generic code) before arm64_memblock_init()
@@ -430,8 +433,10 @@ void __init arm64_memblock_init(void)
@@ -442,8 +445,10 @@ void __init arm64_memblock_init(void)
early_init_fdt_scan_reserved_mem();

View File

@ -15,7 +15,7 @@ Signed-off-by: Nataliya Korovkina <malus.brandywine@gmail.com>
--- a/Makefile
+++ b/Makefile
@@ -1261,7 +1261,7 @@ ifneq ($(dtstree),)
@@ -1267,7 +1267,7 @@ ifneq ($(dtstree),)
%.dtb: include/config/kernel.release scripts_dtc
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@

View File

@ -33,7 +33,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
crash_size, SZ_2M);
if (crash_base == 0) {
pr_warn("cannot allocate crashkernel (size:0x%llx)\n",
@@ -449,7 +449,7 @@ void __init arm64_memblock_init(void)
@@ -461,7 +461,7 @@ void __init arm64_memblock_init(void)
high_memory = __va(memblock_end_of_DRAM() - 1) + 1;

View File

@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -258,6 +258,7 @@ static void xhci_pci_quirks(struct devic
@@ -259,6 +259,7 @@ static void xhci_pci_quirks(struct devic
pdev->device == 0x3483) {
xhci->quirks |= XHCI_LPM_SUPPORT;
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
@ -56,6 +56,6 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
#define XHCI_SKIP_PHY_INIT BIT_ULL(37)
#define XHCI_DISABLE_SPARSE BIT_ULL(38)
+#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(39)
#define XHCI_NO_SOFT_RETRY BIT_ULL(40)
unsigned int num_active_eps;
unsigned int limit_active_eps;

View File

@ -0,0 +1,30 @@
From 5337af7918bedde9713cd223ce5df74b3d6c7d7a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
Date: Wed, 17 Mar 2021 09:16:31 +0100
Subject: [PATCH] arm64: dts: broadcom: bcm4908: add Ethernet TX irq
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This hardware supports two interrupts, one per DMA channel (RX and TX).
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
@@ -116,8 +116,9 @@
compatible = "brcm,bcm4908-enet";
reg = <0x2000 0x1000>;
- interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "rx";
+ interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "rx", "tx";
};
usb_phy: usb-phy@c200 {

View File

@ -0,0 +1,25 @@
From f4e6d7cdbfae502788bc468295b232dec76ee57e Mon Sep 17 00:00:00 2001
From: Florian Fainelli <f.fainelli@gmail.com>
Date: Fri, 12 Mar 2021 13:11:01 -0800
Subject: [PATCH] net: dsa: bcm_sf2: Fill in BCM4908 CFP entries
The BCM4908 switch has 256 CFP entrie, update that setting so CFP can be
used.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
drivers/net/dsa/bcm_sf2.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/net/dsa/bcm_sf2.c
+++ b/drivers/net/dsa/bcm_sf2.c
@@ -1063,7 +1063,7 @@ static const struct bcm_sf2_of_data bcm_
.type = BCM4908_DEVICE_ID,
.core_reg_align = 0,
.reg_offsets = bcm_sf2_4908_reg_offsets,
- .num_cfp_rules = 0, /* FIXME */
+ .num_cfp_rules = 256,
.num_crossbar_int_ports = 2,
};

View File

@ -0,0 +1,127 @@
From 55cfeb396965c3906a84d09a9c487d065e37773b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
Date: Thu, 18 Mar 2021 09:01:42 +0100
Subject: [PATCH 1/2] net: dsa: bcm_sf2: add function finding RGMII register
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Simple macro like REG_RGMII_CNTRL_P() is insufficient as:
1. It doesn't validate port argument
2. It doesn't support chipsets with non-lineral RGMII regs layout
Missing port validation could result in getting register offset from out
of array. Random memory -> random offset -> random reads/writes. It
affected e.g. BCM4908 for REG_RGMII_CNTRL_P(7).
Fixes: a78e86ed586d ("net: dsa: bcm_sf2: Prepare for different register layouts")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
drivers/net/dsa/bcm_sf2.c | 49 +++++++++++++++++++++++++++++-----
drivers/net/dsa/bcm_sf2_regs.h | 2 --
2 files changed, 42 insertions(+), 9 deletions(-)
--- a/drivers/net/dsa/bcm_sf2.c
+++ b/drivers/net/dsa/bcm_sf2.c
@@ -31,6 +31,31 @@
#include "b53/b53_priv.h"
#include "b53/b53_regs.h"
+static u16 bcm_sf2_reg_rgmii_cntrl(struct bcm_sf2_priv *priv, int port)
+{
+ switch (priv->type) {
+ case BCM4908_DEVICE_ID:
+ /* TODO */
+ break;
+ default:
+ switch (port) {
+ case 0:
+ return REG_RGMII_0_CNTRL;
+ case 1:
+ return REG_RGMII_1_CNTRL;
+ case 2:
+ return REG_RGMII_2_CNTRL;
+ default:
+ break;
+ }
+ }
+
+ WARN_ONCE(1, "Unsupported port %d\n", port);
+
+ /* RO fallback reg */
+ return REG_SWITCH_STATUS;
+}
+
static void bcm_sf2_imp_setup(struct dsa_switch *ds, int port)
{
struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
@@ -591,6 +616,7 @@ static void bcm_sf2_sw_mac_config(struct
{
struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
u32 id_mode_dis = 0, port_mode;
+ u32 reg_rgmii_ctrl;
u32 reg, offset;
if (port == core_readl(priv, CORE_IMP0_PRT_ID))
@@ -620,10 +646,12 @@ static void bcm_sf2_sw_mac_config(struct
goto force_link;
}
+ reg_rgmii_ctrl = bcm_sf2_reg_rgmii_cntrl(priv, port);
+
/* Clear id_mode_dis bit, and the existing port mode, let
* RGMII_MODE_EN bet set by mac_link_{up,down}
*/
- reg = reg_readl(priv, REG_RGMII_CNTRL_P(port));
+ reg = reg_readl(priv, reg_rgmii_ctrl);
reg &= ~ID_MODE_DIS;
reg &= ~(PORT_MODE_MASK << PORT_MODE_SHIFT);
reg &= ~(RX_PAUSE_EN | TX_PAUSE_EN);
@@ -638,7 +666,7 @@ static void bcm_sf2_sw_mac_config(struct
reg |= RX_PAUSE_EN;
}
- reg_writel(priv, reg, REG_RGMII_CNTRL_P(port));
+ reg_writel(priv, reg, reg_rgmii_ctrl);
force_link:
/* Force link settings detected from the PHY */
@@ -664,6 +692,7 @@ static void bcm_sf2_sw_mac_link_set(stru
phy_interface_t interface, bool link)
{
struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
+ u32 reg_rgmii_ctrl;
u32 reg;
if (!phy_interface_mode_is_rgmii(interface) &&
@@ -671,13 +700,15 @@ static void bcm_sf2_sw_mac_link_set(stru
interface != PHY_INTERFACE_MODE_REVMII)
return;
+ reg_rgmii_ctrl = bcm_sf2_reg_rgmii_cntrl(priv, port);
+
/* If the link is down, just disable the interface to conserve power */
- reg = reg_readl(priv, REG_RGMII_CNTRL_P(port));
+ reg = reg_readl(priv, reg_rgmii_ctrl);
if (link)
reg |= RGMII_MODE_EN;
else
reg &= ~RGMII_MODE_EN;
- reg_writel(priv, reg, REG_RGMII_CNTRL_P(port));
+ reg_writel(priv, reg, reg_rgmii_ctrl);
}
static void bcm_sf2_sw_mac_link_down(struct dsa_switch *ds, int port,
--- a/drivers/net/dsa/bcm_sf2_regs.h
+++ b/drivers/net/dsa/bcm_sf2_regs.h
@@ -55,8 +55,6 @@ enum bcm_sf2_reg_offs {
#define CROSSBAR_BCM4908_EXT_GPHY4 1
#define CROSSBAR_BCM4908_EXT_RGMII 2
-#define REG_RGMII_CNTRL_P(x) (REG_RGMII_0_CNTRL + (x))
-
/* Relative to REG_RGMII_CNTRL */
#define RGMII_MODE_EN (1 << 0)
#define ID_MODE_DIS (1 << 1)

View File

@ -0,0 +1,56 @@
From 6859d91549341c2ad769d482de58129f080c0f04 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
Date: Thu, 18 Mar 2021 09:01:43 +0100
Subject: [PATCH 2/2] net: dsa: bcm_sf2: fix BCM4908 RGMII reg(s)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
BCM4908 has only 1 RGMII reg for controlling port 7.
Fixes: 73b7a6047971 ("net: dsa: bcm_sf2: support BCM4908's integrated switch")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
drivers/net/dsa/bcm_sf2.c | 11 +++++++----
drivers/net/dsa/bcm_sf2_regs.h | 1 +
2 files changed, 8 insertions(+), 4 deletions(-)
--- a/drivers/net/dsa/bcm_sf2.c
+++ b/drivers/net/dsa/bcm_sf2.c
@@ -35,7 +35,12 @@ static u16 bcm_sf2_reg_rgmii_cntrl(struc
{
switch (priv->type) {
case BCM4908_DEVICE_ID:
- /* TODO */
+ switch (port) {
+ case 7:
+ return REG_RGMII_11_CNTRL;
+ default:
+ break;
+ }
break;
default:
switch (port) {
@@ -1082,9 +1087,7 @@ static const u16 bcm_sf2_4908_reg_offset
[REG_PHY_REVISION] = 0x14,
[REG_SPHY_CNTRL] = 0x24,
[REG_CROSSBAR] = 0xc8,
- [REG_RGMII_0_CNTRL] = 0xe0,
- [REG_RGMII_1_CNTRL] = 0xec,
- [REG_RGMII_2_CNTRL] = 0xf8,
+ [REG_RGMII_11_CNTRL] = 0x014c,
[REG_LED_0_CNTRL] = 0x40,
[REG_LED_1_CNTRL] = 0x4c,
[REG_LED_2_CNTRL] = 0x58,
--- a/drivers/net/dsa/bcm_sf2_regs.h
+++ b/drivers/net/dsa/bcm_sf2_regs.h
@@ -21,6 +21,7 @@ enum bcm_sf2_reg_offs {
REG_RGMII_0_CNTRL,
REG_RGMII_1_CNTRL,
REG_RGMII_2_CNTRL,
+ REG_RGMII_11_CNTRL,
REG_LED_0_CNTRL,
REG_LED_1_CNTRL,
REG_LED_2_CNTRL,

View File

@ -12,7 +12,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908.dtsi
@@ -280,7 +280,7 @@
@@ -281,7 +281,7 @@
gpio0: gpio-controller@500 {
compatible = "brcm,bcm6345-gpio";
reg-names = "dirout", "dat";

View File

@ -0,0 +1,28 @@
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
Date: Mon, 22 Mar 2021 07:15:17 +0100
Subject: [PATCH] mtd: support BLKRRPART
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Rescan MTD subpartitions on request.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
--- a/drivers/mtd/mtdchar.c
+++ b/drivers/mtd/mtdchar.c
@@ -1015,8 +1015,11 @@ static int mtdchar_ioctl(struct file *fi
case BLKRRPART:
{
- /* No reread partition feature. Just return ok */
- ret = 0;
+ int nr_parts;
+
+ del_mtd_partitions(mtd);
+ nr_parts = parse_mtd_partitions(mtd, NULL, NULL);
+ ret = nr_parts < 0 ? nr_parts : 0;
break;
}
}

View File

@ -29,7 +29,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
--- a/drivers/net/dsa/bcm_sf2.c
+++ b/drivers/net/dsa/bcm_sf2.c
@@ -1290,10 +1290,14 @@ static int bcm_sf2_sw_probe(struct platf
@@ -1324,10 +1324,14 @@ static int bcm_sf2_sw_probe(struct platf
rev = reg_readl(priv, REG_PHY_REVISION);
priv->hw_params.gphy_rev = rev & PHY_REVISION_MASK;

View File

@ -15,7 +15,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
--- a/drivers/net/dsa/bcm_sf2.c
+++ b/drivers/net/dsa/bcm_sf2.c
@@ -1304,6 +1304,12 @@ static int bcm_sf2_sw_probe(struct platf
@@ -1338,6 +1338,12 @@ static int bcm_sf2_sw_probe(struct platf
priv->hw_params.core_rev >> 8, priv->hw_params.core_rev & 0xff,
priv->irq0, priv->irq1);

View File

@ -1,109 +0,0 @@
From 7e2dc41c745f6d9c571919d98abed2d783fce8fb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
Date: Sun, 14 Mar 2021 22:43:32 +0100
Subject: [PATCH] net: dsa: bcm_sf2: quick fix for RGMII reg access on BCM4908
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
BCM4908 has only 1 RGMII register and it's used for port 7.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
drivers/net/dsa/bcm_sf2.c | 30 +++++++++++++++++++++++-------
drivers/net/dsa/bcm_sf2_regs.h | 1 +
2 files changed, 24 insertions(+), 7 deletions(-)
--- a/drivers/net/dsa/bcm_sf2.c
+++ b/drivers/net/dsa/bcm_sf2.c
@@ -592,10 +592,19 @@ static void bcm_sf2_sw_mac_config(struct
struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
u32 id_mode_dis = 0, port_mode;
u32 reg, offset;
+ u32 rgmii_ctrl;
if (port == core_readl(priv, CORE_IMP0_PRT_ID))
return;
+ if (priv->type == BCM4908_DEVICE_ID) {
+ if (port != 7)
+ return;
+ rgmii_ctrl = REG_RGMII_11_CNTRL;
+ } else {
+ rgmii_ctrl = REG_RGMII_CNTRL_P(port);
+ }
+
if (priv->type == BCM4908_DEVICE_ID ||
priv->type == BCM7445_DEVICE_ID)
offset = CORE_STS_OVERRIDE_GMIIP_PORT(port);
@@ -623,7 +632,7 @@ static void bcm_sf2_sw_mac_config(struct
/* Clear id_mode_dis bit, and the existing port mode, let
* RGMII_MODE_EN bet set by mac_link_{up,down}
*/
- reg = reg_readl(priv, REG_RGMII_CNTRL_P(port));
+ reg = reg_readl(priv, rgmii_ctrl);
reg &= ~ID_MODE_DIS;
reg &= ~(PORT_MODE_MASK << PORT_MODE_SHIFT);
reg &= ~(RX_PAUSE_EN | TX_PAUSE_EN);
@@ -638,7 +647,7 @@ static void bcm_sf2_sw_mac_config(struct
reg |= RX_PAUSE_EN;
}
- reg_writel(priv, reg, REG_RGMII_CNTRL_P(port));
+ reg_writel(priv, reg, rgmii_ctrl);
force_link:
/* Force link settings detected from the PHY */
@@ -664,6 +673,7 @@ static void bcm_sf2_sw_mac_link_set(stru
phy_interface_t interface, bool link)
{
struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
+ u32 rgmii_ctrl;
u32 reg;
if (!phy_interface_mode_is_rgmii(interface) &&
@@ -671,13 +681,21 @@ static void bcm_sf2_sw_mac_link_set(stru
interface != PHY_INTERFACE_MODE_REVMII)
return;
+ if (priv->type == BCM4908_DEVICE_ID) {
+ if (port != 7)
+ return;
+ rgmii_ctrl = REG_RGMII_11_CNTRL;
+ } else {
+ rgmii_ctrl = REG_RGMII_CNTRL_P(port);
+ }
+
/* If the link is down, just disable the interface to conserve power */
- reg = reg_readl(priv, REG_RGMII_CNTRL_P(port));
+ reg = reg_readl(priv, rgmii_ctrl);
if (link)
reg |= RGMII_MODE_EN;
else
reg &= ~RGMII_MODE_EN;
- reg_writel(priv, reg, REG_RGMII_CNTRL_P(port));
+ reg_writel(priv, reg, rgmii_ctrl);
}
static void bcm_sf2_sw_mac_link_down(struct dsa_switch *ds, int port,
@@ -1051,9 +1069,7 @@ static const u16 bcm_sf2_4908_reg_offset
[REG_PHY_REVISION] = 0x14,
[REG_SPHY_CNTRL] = 0x24,
[REG_CROSSBAR] = 0xc8,
- [REG_RGMII_0_CNTRL] = 0xe0,
- [REG_RGMII_1_CNTRL] = 0xec,
- [REG_RGMII_2_CNTRL] = 0xf8,
+ [REG_RGMII_11_CNTRL] = 0x014c,
[REG_LED_0_CNTRL] = 0x40,
[REG_LED_1_CNTRL] = 0x4c,
[REG_LED_2_CNTRL] = 0x58,
--- a/drivers/net/dsa/bcm_sf2_regs.h
+++ b/drivers/net/dsa/bcm_sf2_regs.h
@@ -21,6 +21,7 @@ enum bcm_sf2_reg_offs {
REG_RGMII_0_CNTRL,
REG_RGMII_1_CNTRL,
REG_RGMII_2_CNTRL,
+ REG_RGMII_11_CNTRL,
REG_LED_0_CNTRL,
REG_LED_1_CNTRL,
REG_LED_2_CNTRL,

View File

@ -134,4 +134,4 @@ it on BCM4708 family.
+#define XHCI_FAKE_DOORBELL BIT_ULL(36)
#define XHCI_SKIP_PHY_INIT BIT_ULL(37)
#define XHCI_DISABLE_SPARSE BIT_ULL(38)
#define XHCI_NO_SOFT_RETRY BIT_ULL(40)

View File

@ -0,0 +1,104 @@
From a3b0b6479700a5b0af2c631cb2ec0fb7a0d978f2 Mon Sep 17 00:00:00 2001
From: Vladimir Oltean <vladimir.oltean@nxp.com>
Date: Sun, 1 Nov 2020 21:16:09 +0200
Subject: [PATCH] net: dsa: implement a central TX reallocation procedure
At the moment, taggers are left with the task of ensuring that the skb
headers are writable (which they aren't, if the frames were cloned for
TX timestamping, for flooding by the bridge, etc), and that there is
enough space in the skb data area for the DSA tag to be pushed.
Moreover, the life of tail taggers is even harder, because they need to
ensure that short frames have enough padding, a problem that normal
taggers don't have.
The principle of the DSA framework is that everything except for the
most intimate hardware specifics (like in this case, the actual packing
of the DSA tag bits) should be done inside the core, to avoid having
code paths that are very rarely tested.
So provide a TX reallocation procedure that should cover the known needs
of DSA today.
Note that this patch also gives the network stack a good hint about the
headroom/tailroom it's going to need. Up till now it wasn't doing that.
So the reallocation procedure should really be there only for the
exceptional cases, and for cloned packets which need to be unshared.
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Tested-by: Christian Eggers <ceggers@arri.de> # For tail taggers only
Tested-by: Kurt Kanzenbach <kurt@linutronix.de>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
net/dsa/slave.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
--- a/net/dsa/slave.c
+++ b/net/dsa/slave.c
@@ -548,6 +548,30 @@ netdev_tx_t dsa_enqueue_skb(struct sk_bu
}
EXPORT_SYMBOL_GPL(dsa_enqueue_skb);
+static int dsa_realloc_skb(struct sk_buff *skb, struct net_device *dev)
+{
+ int needed_headroom = dev->needed_headroom;
+ int needed_tailroom = dev->needed_tailroom;
+
+ /* For tail taggers, we need to pad short frames ourselves, to ensure
+ * that the tail tag does not fail at its role of being at the end of
+ * the packet, once the master interface pads the frame. Account for
+ * that pad length here, and pad later.
+ */
+ if (unlikely(needed_tailroom && skb->len < ETH_ZLEN))
+ needed_tailroom += ETH_ZLEN - skb->len;
+ /* skb_headroom() returns unsigned int... */
+ needed_headroom = max_t(int, needed_headroom - skb_headroom(skb), 0);
+ needed_tailroom = max_t(int, needed_tailroom - skb_tailroom(skb), 0);
+
+ if (likely(!needed_headroom && !needed_tailroom && !skb_cloned(skb)))
+ /* No reallocation needed, yay! */
+ return 0;
+
+ return pskb_expand_head(skb, needed_headroom, needed_tailroom,
+ GFP_ATOMIC);
+}
+
static netdev_tx_t dsa_slave_xmit(struct sk_buff *skb, struct net_device *dev)
{
struct dsa_slave_priv *p = netdev_priv(dev);
@@ -567,6 +591,17 @@ static netdev_tx_t dsa_slave_xmit(struct
*/
dsa_skb_tx_timestamp(p, skb);
+ if (dsa_realloc_skb(skb, dev)) {
+ dev_kfree_skb_any(skb);
+ return NETDEV_TX_OK;
+ }
+
+ /* needed_tailroom should still be 'warm' in the cache line from
+ * dsa_realloc_skb(), which has also ensured that padding is safe.
+ */
+ if (dev->needed_tailroom)
+ eth_skb_pad(skb);
+
/* Transmit function may have to reallocate the original SKB,
* in which case it must have freed it. Only free it here on error.
*/
@@ -1825,6 +1860,16 @@ int dsa_slave_create(struct dsa_port *po
slave_dev->netdev_ops = &dsa_slave_netdev_ops;
if (ds->ops->port_max_mtu)
slave_dev->max_mtu = ds->ops->port_max_mtu(ds, port->index);
+ if (cpu_dp->tag_ops->tail_tag)
+ slave_dev->needed_tailroom = cpu_dp->tag_ops->overhead;
+ else
+ slave_dev->needed_headroom = cpu_dp->tag_ops->overhead;
+ /* Try to save one extra realloc later in the TX path (in the master)
+ * by also inheriting the master's needed headroom and tailroom.
+ * The 8021q driver also does this.
+ */
+ slave_dev->needed_headroom += master->needed_headroom;
+ slave_dev->needed_tailroom += master->needed_tailroom;
SET_NETDEV_DEVTYPE(slave_dev, &dsa_type);
netdev_for_each_tx_queue(slave_dev, dsa_slave_set_lockdep_class_one,

View File

@ -1,7 +1,7 @@
From cd6906754bbe3e0665ecaeca2cfb26d927fe9277 Mon Sep 17 00:00:00 2001
From ad426d7d966b525b73ed5a1842dd830312bbba71 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
Date: Mon, 1 Mar 2021 07:29:29 +0100
Subject: [PATCH 1/3] net: dsa: b53: relax is63xx() condition
Date: Wed, 17 Mar 2021 09:42:01 +0100
Subject: [PATCH] net: dsa: b53: relax is63xx() condition
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@ -9,6 +9,8 @@ Content-Transfer-Encoding: 8bit
BCM63xx switches are present on bcm63xx and bmips devices.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
drivers/net/dsa/b53/b53_priv.h | 4 ----
1 file changed, 4 deletions(-)

View File

@ -1,59 +1,22 @@
From 3bc3d79efdff6e29b80bf35f7a56baaa36e4d8fe Mon Sep 17 00:00:00 2001
From 964dbf186eaa84d409c359ddf09c827a3fbe8228 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
Date: Fri, 12 Mar 2021 12:35:39 +0100
Subject: [PATCH] net: dsa: b53: support tags for legacy switches
Date: Wed, 17 Mar 2021 11:29:26 +0100
Subject: [PATCH 1/2] net: dsa: tag_brcm: add support for legacy tags
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
drivers/net/dsa/b53/Kconfig | 1 +
drivers/net/dsa/b53/b53_common.c | 6 +++
include/net/dsa.h | 2 +
net/dsa/Kconfig | 7 +++
net/dsa/tag_brcm.c | 93 ++++++++++++++++++++++++++++++++
5 files changed, 109 insertions(+)
Add support for legacy Broadcom tags, which are similar to DSA_TAG_PROTO_BRCM.
These tags are used on BCM5325, BCM5365 and BCM63xx switches.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
include/net/dsa.h | 2 +
net/dsa/Kconfig | 7 +++
net/dsa/tag_brcm.c | 107 +++++++++++++++++++++++++++++++++++++++++++--
3 files changed, 113 insertions(+), 3 deletions(-)
--- a/drivers/net/dsa/b53/Kconfig
+++ b/drivers/net/dsa/b53/Kconfig
@@ -3,6 +3,7 @@ menuconfig B53
tristate "Broadcom BCM53xx managed switch support"
depends on NET_DSA
select NET_DSA_TAG_BRCM
+ select NET_DSA_TAG_BRCM_LEGACY
select NET_DSA_TAG_BRCM_PREPEND
help
This driver adds support for Broadcom managed switch chips. It supports
--- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c
@@ -1992,6 +1992,7 @@ static bool b53_can_enable_brcm_tags(str
switch (tag_protocol) {
case DSA_TAG_PROTO_BRCM:
+ case DSA_TAG_PROTO_BRCM_LEGACY:
case DSA_TAG_PROTO_BRCM_PREPEND:
dev_warn(ds->dev,
"Port %d is stacked to Broadcom tag switch\n", port);
@@ -2013,12 +2014,16 @@ enum dsa_tag_protocol b53_get_tag_protoc
/* Older models (5325, 5365) support a different tag format that we do
* not support in net/dsa/tag_brcm.c yet.
*/
- if (is5325(dev) || is5365(dev) ||
- !b53_can_enable_brcm_tags(ds, port, mprot)) {
+ if (!b53_can_enable_brcm_tags(ds, port, mprot)) {
dev->tag_protocol = DSA_TAG_PROTO_NONE;
goto out;
}
+ if (is5325(dev) || is5365(dev) || is63xx(dev)) {
+ dev->tag_protocol = DSA_TAG_PROTO_BRCM_LEGACY;
+ goto out;
+ }
+
/* Broadcom BCM58xx chips have a flow accelerator on Port 8
* which requires us to use the prepended Broadcom tag type
*/
--- a/include/net/dsa.h
+++ b/include/net/dsa.h
@@ -45,10 +45,12 @@ struct phylink_link_state;
@ -87,31 +50,37 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
tristate "Tag driver for Broadcom switches using prepended headers"
--- a/net/dsa/tag_brcm.c
+++ b/net/dsa/tag_brcm.c
@@ -8,9 +8,23 @@
#include <linux/etherdevice.h>
#include <linux/list.h>
#include <linux/slab.h>
+#include <linux/types.h>
@@ -11,9 +11,26 @@
#include "dsa_priv.h"
+struct bcm_legacy_tag {
+ uint16_t type;
+#define BRCM_LEG_TYPE 0x8874
-/* This tag length is 4 bytes, older ones were 6 bytes, we do not
- * handle them
- */
+/* Legacy Broadcom tag (6 bytes) */
+#define BRCM_LEG_TAG_LEN 6
+
+ uint32_t tag;
+#define BRCM_LEG_TAG_PORT_ID (0xf)
+#define BRCM_LEG_TAG_MULTICAST (1 << 29)
+#define BRCM_LEG_TAG_EGRESS (2 << 29)
+#define BRCM_LEG_TAG_INGRESS (3 << 29)
+} __attribute__((packed));
+/* Type fields */
+/* 1st byte in the tag */
+#define BRCM_LEG_TYPE_HI 0x88
+/* 2nd byte in the tag */
+#define BRCM_LEG_TYPE_LO 0x74
+
+#define BRCM_LEG_TAG_LEN sizeof(struct bcm_legacy_tag)
+/* Tag fields */
+/* 3rd byte in the tag */
+#define BRCM_LEG_UNICAST (0 << 5)
+#define BRCM_LEG_MULTICAST (1 << 5)
+#define BRCM_LEG_EGRESS (2 << 5)
+#define BRCM_LEG_INGRESS (3 << 5)
+
/* This tag length is 4 bytes, older ones were 6 bytes, we do not
* handle them
*/
@@ -197,6 +211,85 @@ DSA_TAG_DRIVER(brcm_netdev_ops);
+/* 6th byte in the tag */
+#define BRCM_LEG_PORT_ID (0xf)
+
+/* Newer Broadcom tag (4 bytes) */
#define BRCM_TAG_LEN 4
/* Tag is constructed and desconstructed using byte by byte access
@@ -197,6 +214,87 @@ DSA_TAG_DRIVER(brcm_netdev_ops);
MODULE_ALIAS_DSA_TAG_DRIVER(DSA_TAG_PROTO_BRCM);
#endif
@ -120,10 +89,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
+ struct net_device *dev)
+{
+ struct dsa_port *dp = dsa_slave_to_port(dev);
+ struct bcm_legacy_tag *brcm_tag;
+
+ if (skb_cow_head(skb, BRCM_LEG_TAG_LEN) < 0)
+ return NULL;
+ u8 *brcm_tag;
+
+ /* The Ethernet switch we are interfaced with needs packets to be at
+ * least 64 bytes (including FCS) otherwise they will be discarded when
@ -141,29 +107,34 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
+
+ memmove(skb->data, skb->data + BRCM_LEG_TAG_LEN, 2 * ETH_ALEN);
+
+ brcm_tag = (struct bcm_legacy_tag *) (skb->data + 2 * ETH_ALEN);
+ brcm_tag = skb->data + 2 * ETH_ALEN;
+
+ brcm_tag->type = BRCM_LEG_TYPE;
+ brcm_tag->tag = BRCM_LEG_TAG_EGRESS;
+ brcm_tag->tag |= dp->index & BRCM_LEG_TAG_PORT_ID;
+ /* Broadcom tag type */
+ brcm_tag[0] = BRCM_LEG_TYPE_HI;
+ brcm_tag[1] = BRCM_LEG_TYPE_LO;
+
+ /* Broadcom tag value */
+ brcm_tag[2] = BRCM_LEG_EGRESS;
+ brcm_tag[3] = 0;
+ brcm_tag[4] = 0;
+ brcm_tag[5] = dp->index & BRCM_LEG_PORT_ID;
+
+ return skb;
+}
+
+
+static struct sk_buff *brcm_leg_tag_rcv(struct sk_buff *skb,
+ struct net_device *dev,
+ struct packet_type *pt)
+{
+ int source_port;
+ struct bcm_legacy_tag *brcm_tag;
+ u8 *brcm_tag;
+
+ if (unlikely(!pskb_may_pull(skb, BRCM_LEG_TAG_LEN)))
+ if (unlikely(!pskb_may_pull(skb, BRCM_LEG_PORT_ID)))
+ return NULL;
+
+ brcm_tag = (struct bcm_legacy_tag *) (skb->data - 2);
+ brcm_tag = skb->data - 2;
+
+ source_port = brcm_tag->tag & BRCM_LEG_TAG_PORT_ID;
+ source_port = brcm_tag[5] & BRCM_LEG_PORT_ID;
+
+ skb->dev = dsa_master_find_slave(dev, 0, source_port);
+ if (!skb->dev)
@ -183,10 +154,10 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
+}
+
+static const struct dsa_device_ops brcm_legacy_netdev_ops = {
+ .name = "brcm-legacy",
+ .proto = DSA_TAG_PROTO_BRCM_LEGACY,
+ .xmit = brcm_leg_tag_xmit,
+ .rcv = brcm_leg_tag_rcv,
+ .name = "brcm-legacy",
+ .proto = DSA_TAG_PROTO_BRCM_LEGACY,
+ .xmit = brcm_leg_tag_xmit,
+ .rcv = brcm_leg_tag_rcv,
+ .overhead = BRCM_LEG_TAG_LEN,
+};
+
@ -197,7 +168,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
#if IS_ENABLED(CONFIG_NET_DSA_TAG_BRCM_PREPEND)
static struct sk_buff *brcm_tag_xmit_prepend(struct sk_buff *skb,
struct net_device *dev)
@@ -229,6 +322,9 @@ static struct dsa_tag_driver *dsa_tag_dr
@@ -229,6 +327,9 @@ static struct dsa_tag_driver *dsa_tag_dr
#if IS_ENABLED(CONFIG_NET_DSA_TAG_BRCM)
&DSA_TAG_DRIVER_NAME(brcm_netdev_ops),
#endif

View File

@ -0,0 +1,53 @@
From 46c5176c586c81306bf9e7024c13b95da775490f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
Date: Wed, 17 Mar 2021 11:29:27 +0100
Subject: [PATCH 2/2] net: dsa: b53: support legacy tags
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
These tags are used on BCM5325, BCM5365 and BCM63xx switches.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
drivers/net/dsa/b53/Kconfig | 1 +
drivers/net/dsa/b53/b53_common.c | 12 +++++++-----
2 files changed, 8 insertions(+), 5 deletions(-)
--- a/drivers/net/dsa/b53/Kconfig
+++ b/drivers/net/dsa/b53/Kconfig
@@ -3,6 +3,7 @@ menuconfig B53
tristate "Broadcom BCM53xx managed switch support"
depends on NET_DSA
select NET_DSA_TAG_BRCM
+ select NET_DSA_TAG_BRCM_LEGACY
select NET_DSA_TAG_BRCM_PREPEND
help
This driver adds support for Broadcom managed switch chips. It supports
--- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c
@@ -2010,15 +2010,17 @@ enum dsa_tag_protocol b53_get_tag_protoc
{
struct b53_device *dev = ds->priv;
- /* Older models (5325, 5365) support a different tag format that we do
- * not support in net/dsa/tag_brcm.c yet.
- */
- if (is5325(dev) || is5365(dev) ||
- !b53_can_enable_brcm_tags(ds, port, mprot)) {
+ if (!b53_can_enable_brcm_tags(ds, port, mprot)) {
dev->tag_protocol = DSA_TAG_PROTO_NONE;
goto out;
}
+ /* Older models require a different 6 byte tag */
+ if (is5325(dev) || is5365(dev) || is63xx(dev)) {
+ dev->tag_protocol = DSA_TAG_PROTO_BRCM_LEGACY;
+ goto out;
+ }
+
/* Broadcom BCM58xx chips have a flow accelerator on Port 8
* which requires us to use the prepended Broadcom tag type
*/

View File

@ -1,7 +1,7 @@
From f5419e7f362ae1c462baf28a2da7360267f8e4f9 Mon Sep 17 00:00:00 2001
From a5538a777b73b35750ed1ffff8c1ef539e861624 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
Date: Mon, 1 Mar 2021 07:32:32 +0100
Subject: [PATCH 2/3] net: dsa: b53: mmap: Add device tree support
Date: Wed, 17 Mar 2021 10:23:17 +0100
Subject: [PATCH] net: dsa: b53: mmap: Add device tree support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@ -9,22 +9,31 @@ Content-Transfer-Encoding: 8bit
Add device tree support to b53_mmap.c while keeping platform devices support.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
drivers/net/dsa/b53/b53_mmap.c | 36 ++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
drivers/net/dsa/b53/b53_mmap.c | 55 ++++++++++++++++++++++++++++++++++
1 file changed, 55 insertions(+)
--- a/drivers/net/dsa/b53/b53_mmap.c
+++ b/drivers/net/dsa/b53/b53_mmap.c
@@ -228,12 +228,64 @@ static const struct b53_io_ops b53_mmap_
@@ -16,6 +16,7 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
+#include <linux/bits.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/io.h>
@@ -228,11 +229,65 @@ static const struct b53_io_ops b53_mmap_
.write64 = b53_mmap_write64,
};
+static int b53_mmap_probe_of(struct platform_device *pdev,
+ struct b53_platform_data **ppdata)
+{
+ struct device *dev = &pdev->dev;
+ struct device_node *np = dev->of_node;
+ struct device_node *np = pdev->dev.of_node;
+ struct device_node *of_ports, *of_port;
+ struct device *dev = &pdev->dev;
+ struct b53_platform_data *pdata;
+ void __iomem *mem;
+
@ -57,6 +66,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
+ pdata->enabled_ports |= BIT(reg);
+ }
+
+ of_node_put(of_ports);
+ *ppdata = pdata;
+
+ return 0;
@ -68,15 +78,15 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
struct b53_platform_data *pdata = pdev->dev.platform_data;
struct b53_mmap_priv *priv;
struct b53_device *dev;
+ if (np) {
+ int ret = b53_mmap_probe_of(pdev, &pdata);
+ int ret;
+
+ if (!pdata && np) {
+ ret = b53_mmap_probe_of(pdev, &pdata);
+ if (ret) {
+ dev_err(&pdev->dev, "OF probe error\n");
+ return ret;
+ }
+ }
+
if (!pdata)
return -EINVAL;

View File

@ -24,7 +24,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
#include <linux/workqueue.h>
#include <linux/mdio.h>
#include <linux/io.h>
@@ -842,6 +843,9 @@ void phy_stop(struct phy_device *phydev)
@@ -843,6 +844,9 @@ void phy_stop(struct phy_device *phydev)
mutex_lock(&phydev->lock);
@ -34,7 +34,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
phydev->state = PHY_HALTED;
mutex_unlock(&phydev->lock);
@@ -904,6 +908,9 @@ void phy_state_machine(struct work_struc
@@ -905,6 +909,9 @@ void phy_state_machine(struct work_struc
old_state = phydev->state;

View File

@ -393,6 +393,7 @@ CONFIG_ARM_GIC_MAX_NR=1
# CONFIG_ARM_PATCH_PHYS_VIRT is not set
# CONFIG_ARM_PSCI is not set
# CONFIG_ARM_PSCI_CHECKER is not set
# CONFIG_ARM_PSCI_CPUIDLE is not set
# CONFIG_ARM_PTDUMP_DEBUGFS is not set
# CONFIG_ARM_SBSA_WATCHDOG is not set
# CONFIG_ARM_SCPI_PROTOCOL is not set
@ -678,10 +679,10 @@ CONFIG_BLOCK=y
# CONFIG_BONDING is not set
# CONFIG_BOOKE_WDT is not set
CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=3
# CONFIG_BOOTTIME_TRACING is not set
# CONFIG_BOOT_CONFIG is not set
# CONFIG_BOOT_PRINTK_DELAY is not set
CONFIG_BOOT_RAW=y
# CONFIG_BOOTTIME_TRACING is not set
# CONFIG_BOUNCE is not set
CONFIG_BPF=y
# CONFIG_BPFILTER is not set
@ -941,7 +942,6 @@ CONFIG_COMPACTION=y
# CONFIG_COMPAT_BRK is not set
# CONFIG_COMPILE_TEST is not set
# CONFIG_CONFIGFS_FS is not set
# CONFIG_CONFIG_KVM_AMD_SEV is not set
# CONFIG_CONNECTOR is not set
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
CONFIG_CONSOLE_LOGLEVEL_QUIET=4
@ -971,6 +971,7 @@ CONFIG_CONSTRUCTORS=y
# CONFIG_CPU_ICACHE_DISABLE is not set
# CONFIG_CPU_ICACHE_MISMATCH_WORKAROUND is not set
# CONFIG_CPU_IDLE is not set
# CONFIG_CPU_IDLE_GOV_LADDER is not set
# CONFIG_CPU_IDLE_GOV_MENU is not set
# CONFIG_CPU_IDLE_GOV_TEO is not set
# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set
@ -1163,14 +1164,18 @@ CONFIG_CRYPTO_PCRYPT=y
# CONFIG_CRYPTO_SHA256_ARM is not set
# CONFIG_CRYPTO_SHA2_ARM_CE is not set
# CONFIG_CRYPTO_SHA3 is not set
# CONFIG_CRYPTO_SHA3_ARM64 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_SHA512_ARM is not set
# CONFIG_CRYPTO_SHA512_ARM64_CE is not set
# CONFIG_CRYPTO_SIMD is not set
CONFIG_CRYPTO_SKCIPHER=y
CONFIG_CRYPTO_SKCIPHER2=y
# CONFIG_CRYPTO_SM2 is not set
# CONFIG_CRYPTO_SM3 is not set
# CONFIG_CRYPTO_SM3_ARM64_CE is not set
# CONFIG_CRYPTO_SM4 is not set
# CONFIG_CRYPTO_SM4_ARM64_CE is not set
# CONFIG_CRYPTO_SPECK is not set
# CONFIG_CRYPTO_STATS is not set
# CONFIG_CRYPTO_STREEBOG is not set
@ -1394,6 +1399,9 @@ CONFIG_DQL=y
# CONFIG_DRM_AMDGPU_USERPTR is not set
# CONFIG_DRM_AMD_ACP is not set
# CONFIG_DRM_AMD_DC_DCN2_0 is not set
# CONFIG_DRM_AMD_DC_DCN3_0 is not set
# CONFIG_DRM_AMD_DC_HDCP is not set
# CONFIG_DRM_AMD_DC_SI is not set
# CONFIG_DRM_ANALOGIX_ANX6345 is not set
# CONFIG_DRM_ANALOGIX_ANX78XX is not set
# CONFIG_DRM_ARCPGU is not set
@ -1471,12 +1479,13 @@ CONFIG_DQL=y
# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
@ -1899,13 +1908,13 @@ CONFIG_FIB_RULES=y
# CONFIG_FIELDBUS_DEV is not set
CONFIG_FILE_LOCKING=y
# CONFIG_FIND_BIT_BENCHMARK is not set
# CONFIG_FIT_PARTITION is not set
# CONFIG_FIREWIRE is not set
# CONFIG_FIREWIRE_NOSY is not set
# CONFIG_FIREWIRE_SERIAL is not set
# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FIRMWARE_IN_KERNEL is not set
# CONFIG_FIRMWARE_MEMMAP is not set
# CONFIG_FIT_PARTITION is not set
# CONFIG_FIXED_PHY is not set
CONFIG_FLATMEM=y
CONFIG_FLATMEM_MANUAL=y
@ -2555,11 +2564,13 @@ CONFIG_INPUT_MISC=y
# CONFIG_INTEGRITY is not set
# CONFIG_INTEGRITY_AUDIT is not set
# CONFIG_INTEGRITY_SIGNATURE is not set
# CONFIG_INTEL_ATOMISP2_LED is not set
# CONFIG_INTEL_ATOMISP2_PM is not set
# CONFIG_INTEL_CHT_INT33FE is not set
# CONFIG_INTEL_HID_EVENT is not set
# CONFIG_INTEL_IDLE is not set
# CONFIG_INTEL_IDMA64 is not set
# CONFIG_INTEL_INT0002_VGPIO is not set
# CONFIG_INTEL_IOATDMA is not set
# CONFIG_INTEL_ISH_HID is not set
# CONFIG_INTEL_MEI is not set
@ -2768,8 +2779,6 @@ CONFIG_JFFS2_SUMMARY=y
# CONFIG_JME is not set
CONFIG_JOLIET=y
# CONFIG_JSA1212 is not set
# CONFIG_JZ4740_WDT is not set
# CONFIG_JZ4770_PHY is not set
# CONFIG_JUMP_LABEL is not set
# CONFIG_JZ4740_WDT is not set
# CONFIG_JZ4770_PHY is not set
@ -2789,9 +2798,9 @@ CONFIG_KASAN_STACK=1
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_ZSTD is not set
CONFIG_KERNEL_MODE_NEON=y
CONFIG_KERNEL_XZ=y
# CONFIG_KERNEL_ZSTD is not set
CONFIG_KERNFS=y
# CONFIG_KEXEC is not set
# CONFIG_KEXEC_FILE is not set
@ -2837,10 +2846,10 @@ CONFIG_KERNFS=y
# CONFIG_KGDB is not set
# CONFIG_KMEMCHECK is not set
# CONFIG_KMX61 is not set
# CONFIG_KPROBE_EVENT_GEN_TEST is not set
# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
# CONFIG_KPROBES is not set
# CONFIG_KPROBES_SANITY_TEST is not set
# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set
# CONFIG_KPROBE_EVENT_GEN_TEST is not set
# CONFIG_KS7010 is not set
# CONFIG_KS8842 is not set
# CONFIG_KS8851 is not set
@ -2850,8 +2859,10 @@ CONFIG_KERNFS=y
# CONFIG_KUNIT is not set
CONFIG_KUSER_HELPERS=y
# CONFIG_KVM_AMD is not set
# CONFIG_KVM_AMD_SEV is not set
# CONFIG_KVM_GUEST is not set
# CONFIG_KVM_INTEL is not set
# CONFIG_KVM_WERROR is not set
# CONFIG_KXCJK1013 is not set
# CONFIG_KXSD9 is not set
# CONFIG_L2TP is not set
@ -3034,7 +3045,6 @@ CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
# CONFIG_MACH_JZ4740 is not set
# CONFIG_MACH_LOONGSON2EF is not set
# CONFIG_MACH_LOONGSON32 is not set
# CONFIG_MACH_LOONGSON2EF is not set
# CONFIG_MACH_LOONGSON64 is not set
# CONFIG_MACH_PIC32 is not set
# CONFIG_MACH_PISTACHIO is not set
@ -3385,6 +3395,7 @@ CONFIG_MMC_BLOCK_MINORS=8
# CONFIG_MMC_SPI is not set
# CONFIG_MMC_STM32_SDMMC is not set
# CONFIG_MMC_TEST is not set
# CONFIG_MMC_TIFM_SD is not set
# CONFIG_MMC_TOSHIBA_PCI is not set
# CONFIG_MMC_USDHI6ROL0 is not set
# CONFIG_MMC_USHC is not set
@ -4143,6 +4154,7 @@ CONFIG_NMI_LOG_BUF_SHIFT=13
# CONFIG_OABI_COMPAT is not set
# CONFIG_OBS600 is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_OCTEONTX2_AF is not set
# CONFIG_OCTEONTX2_PF is not set
# CONFIG_OF_OVERLAY is not set
CONFIG_OF_RESERVED_MEM=y
@ -4262,6 +4274,7 @@ CONFIG_PARTITION_ADVANCED=y
# CONFIG_PCIEAER_INJECT is not set
# CONFIG_PCIEASPM is not set
# CONFIG_PCIEPORTBUS is not set
# CONFIG_PCIE_AL is not set
# CONFIG_PCIE_ALTERA is not set
# CONFIG_PCIE_ARMADA_8K is not set
# CONFIG_PCIE_BUS_DEFAULT is not set
@ -5411,6 +5424,7 @@ CONFIG_SND_DRIVERS=y
# CONFIG_SND_GUSMAX is not set
# CONFIG_SND_HDA_INTEL is not set
# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set
# CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM is not set
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
CONFIG_SND_HDA_PREALLOC_SIZE=64
# CONFIG_SND_HDSP is not set
@ -5508,6 +5522,7 @@ CONFIG_SND_PROC_FS=y
# CONFIG_SND_SOC_ALC5623 is not set
# CONFIG_SND_SOC_AMD_ACP is not set
# CONFIG_SND_SOC_AMD_ACP3x is not set
# CONFIG_SND_SOC_AMD_RENOIR is not set
# CONFIG_SND_SOC_AU1XAUDIO is not set
# CONFIG_SND_SOC_AU1XPSC is not set
# CONFIG_SND_SOC_BD28623 is not set
@ -5573,6 +5588,7 @@ CONFIG_SND_PROC_FS=y
# CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH is not set
# CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH is not set
# CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH is not set
# CONFIG_SND_SOC_INTEL_CATPT is not set
# CONFIG_SND_SOC_INTEL_CFL is not set
# CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH is not set
# CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH is not set
@ -5594,6 +5610,7 @@ CONFIG_SND_PROC_FS=y
# CONFIG_SND_SOC_INTEL_SKYLAKE is not set
# CONFIG_SND_SOC_INTEL_SST is not set
CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set
# CONFIG_SND_SOC_JZ4725B_CODEC is not set
# CONFIG_SND_SOC_JZ4740_CODEC is not set
# CONFIG_SND_SOC_JZ4770_CODEC is not set
@ -5786,6 +5803,7 @@ CONFIG_SND_X86=y
# CONFIG_SPI_GPIO is not set
# CONFIG_SPI_GPIO_OLD is not set
# CONFIG_SPI_IMG_SPFI is not set
# CONFIG_SPI_LANTIQ_SSC is not set
# CONFIG_SPI_LM70_LLP is not set
# CONFIG_SPI_LOOPBACK_TEST is not set
# CONFIG_SPI_MASTER is not set
@ -5912,8 +5930,8 @@ CONFIG_SYMBOLIC_ERRNAME=y
# CONFIG_SYNCLINK_CS is not set
# CONFIG_SYNC_FILE is not set
# CONFIG_SYNOPSYS_DWC_ETH_QOS is not set
CONFIG_SYN_COOKIES=y
# CONFIG_SYNTH_EVENTS is not set
CONFIG_SYN_COOKIES=y
# CONFIG_SYSCON_REBOOT_MODE is not set
CONFIG_SYSCTL=y
# CONFIG_SYSCTL_SYSCALL is not set
@ -6547,6 +6565,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
# CONFIG_USB_RCAR_PHY is not set
# CONFIG_USB_RENESAS_USBHS is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_ROLES_INTEL_XHCI is not set
# CONFIG_USB_ROLE_SWITCH is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_RTL8152 is not set
@ -6782,6 +6801,7 @@ CONFIG_VHOST_MENU=y
# CONFIG_VIDEO_OV2659 is not set
# CONFIG_VIDEO_OV2680 is not set
# CONFIG_VIDEO_OV2685 is not set
# CONFIG_VIDEO_OV2740 is not set
# CONFIG_VIDEO_OV5640 is not set
# CONFIG_VIDEO_OV5645 is not set
# CONFIG_VIDEO_OV5647 is not set
@ -6858,6 +6878,7 @@ CONFIG_VHOST_MENU=y
# CONFIG_VIRTIO_INPUT is not set
CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_MMIO is not set
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
# CONFIG_VIRTIO_PCI is not set
# CONFIG_VIRTUALIZATION is not set
# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set

View File

@ -370,6 +370,7 @@ CONFIG_ARM_GIC_MAX_NR=1
# CONFIG_ARM_PATCH_PHYS_VIRT is not set
# CONFIG_ARM_PSCI is not set
# CONFIG_ARM_PSCI_CHECKER is not set
# CONFIG_ARM_PSCI_CPUIDLE is not set
# CONFIG_ARM_PTDUMP_DEBUGFS is not set
# CONFIG_ARM_SBSA_WATCHDOG is not set
# CONFIG_ARM_SCPI_PROTOCOL is not set
@ -888,7 +889,6 @@ CONFIG_COMPACTION=y
# CONFIG_COMPAT_BRK is not set
# CONFIG_COMPILE_TEST is not set
# CONFIG_CONFIGFS_FS is not set
# CONFIG_CONFIG_KVM_AMD_SEV is not set
# CONFIG_CONNECTOR is not set
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
CONFIG_CONSOLE_LOGLEVEL_QUIET=4
@ -917,6 +917,7 @@ CONFIG_CONSTRUCTORS=y
# CONFIG_CPU_ICACHE_DISABLE is not set
# CONFIG_CPU_ICACHE_MISMATCH_WORKAROUND is not set
# CONFIG_CPU_IDLE is not set
# CONFIG_CPU_IDLE_GOV_LADDER is not set
# CONFIG_CPU_IDLE_GOV_MENU is not set
# CONFIG_CPU_IDLE_GOV_TEO is not set
# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set
@ -968,6 +969,7 @@ CONFIG_CRYPTO_ALGAPI2=y
# CONFIG_CRYPTO_ARC4 is not set
# CONFIG_CRYPTO_AUTHENC is not set
# CONFIG_CRYPTO_BLAKE2S is not set
# CONFIG_CRYPTO_BLAKE2S_X86 is not set
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_BLKCIPHER2=y
# CONFIG_CRYPTO_BLOWFISH is not set
@ -992,6 +994,7 @@ CONFIG_CRYPTO_BLKCIPHER2=y
# CONFIG_CRYPTO_CTS is not set
# CONFIG_CRYPTO_CURVE25519 is not set
# CONFIG_CRYPTO_CURVE25519_NEON is not set
# CONFIG_CRYPTO_CURVE25519_X86 is not set
# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_DEV_ATMEL_AES is not set
@ -1084,6 +1087,7 @@ CONFIG_CRYPTO_PCRYPT=y
# CONFIG_CRYPTO_POLY1305 is not set
# CONFIG_CRYPTO_POLY1305_ARM is not set
# CONFIG_CRYPTO_POLY1305_MIPS is not set
# CONFIG_CRYPTO_POLY1305_NEON is not set
# CONFIG_CRYPTO_RMD128 is not set
# CONFIG_CRYPTO_RMD160 is not set
# CONFIG_CRYPTO_RMD256 is not set
@ -1103,11 +1107,15 @@ CONFIG_CRYPTO_PCRYPT=y
# CONFIG_CRYPTO_SHA256_ARM is not set
# CONFIG_CRYPTO_SHA2_ARM_CE is not set
# CONFIG_CRYPTO_SHA3 is not set
# CONFIG_CRYPTO_SHA3_ARM64 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_SHA512_ARM is not set
# CONFIG_CRYPTO_SHA512_ARM64_CE is not set
# CONFIG_CRYPTO_SIMD is not set
# CONFIG_CRYPTO_SM3 is not set
# CONFIG_CRYPTO_SM3_ARM64_CE is not set
# CONFIG_CRYPTO_SM4 is not set
# CONFIG_CRYPTO_SM4_ARM64_CE is not set
# CONFIG_CRYPTO_SPECK is not set
# CONFIG_CRYPTO_STATS is not set
# CONFIG_CRYPTO_STREEBOG is not set
@ -1385,6 +1393,7 @@ CONFIG_DQL=y
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
@ -1498,7 +1507,13 @@ CONFIG_ETHERNET=y
# CONFIG_ETHOC is not set
CONFIG_EVENTFD=y
# CONFIG_EVM is not set
# CONFIG_EXFAT_DEBUG_MSG is not set
CONFIG_EXFAT_DEFAULT_CODEPAGE=437
# CONFIG_EXFAT_DELAYED_SYNC is not set
CONFIG_EXFAT_DISCARD=y
CONFIG_EXFAT_DONT_MOUNT_VFAT=y
# CONFIG_EXFAT_FS is not set
# CONFIG_EXFAT_KERNEL_DEBUG is not set
CONFIG_EXPERT=y
CONFIG_EXPORTFS=y
# CONFIG_EXPORTFS_BLOCK_OPS is not set
@ -2620,6 +2635,7 @@ CONFIG_KERNFS=y
# CONFIG_KSZ884X_PCI is not set
CONFIG_KUSER_HELPERS=y
# CONFIG_KVM_AMD is not set
# CONFIG_KVM_AMD_SEV is not set
# CONFIG_KVM_GUEST is not set
# CONFIG_KVM_INTEL is not set
# CONFIG_KXCJK1013 is not set
@ -3085,6 +3101,7 @@ CONFIG_MMC_BLOCK_MINORS=8
# CONFIG_MMC_SPI is not set
# CONFIG_MMC_STM32_SDMMC is not set
# CONFIG_MMC_TEST is not set
# CONFIG_MMC_TIFM_SD is not set
# CONFIG_MMC_TOSHIBA_PCI is not set
# CONFIG_MMC_USDHI6ROL0 is not set
# CONFIG_MMC_USHC is not set
@ -3825,6 +3842,7 @@ CONFIG_NMI_LOG_BUF_SHIFT=13
# CONFIG_OABI_COMPAT is not set
# CONFIG_OBS600 is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_OCTEONTX2_AF is not set
# CONFIG_OF_OVERLAY is not set
CONFIG_OF_RESERVED_MEM=y
# CONFIG_OF_UNITTEST is not set
@ -3942,6 +3960,7 @@ CONFIG_PARTITION_ADVANCED=y
# CONFIG_PCIEAER_INJECT is not set
# CONFIG_PCIEASPM is not set
# CONFIG_PCIEPORTBUS is not set
# CONFIG_PCIE_AL is not set
# CONFIG_PCIE_ALTERA is not set
# CONFIG_PCIE_ARMADA_8K is not set
# CONFIG_PCIE_BW is not set
@ -6356,6 +6375,7 @@ CONFIG_VDSO=y
# CONFIG_VIRTIO_INPUT is not set
CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_MMIO is not set
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
# CONFIG_VIRTIO_PCI is not set
# CONFIG_VIRTUALIZATION is not set
# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set

View File

@ -298,7 +298,6 @@ CONFIG_MMC_SDHCI_IO_ACCESSORS=y
CONFIG_MMC_SDHCI_OF_ESDHC=y
# CONFIG_MMC_SDHCI_PCI is not set
CONFIG_MMC_SDHCI_PLTFM=y
# CONFIG_MMC_TIFM_SD is not set
CONFIG_MODULES_USE_ELF_REL=y
CONFIG_MPILIB=y
CONFIG_MTD_NAND_CORE=y

View File

@ -272,7 +272,6 @@ CONFIG_MMC_SDHCI_IO_ACCESSORS=y
CONFIG_MMC_SDHCI_OF_ESDHC=y
# CONFIG_MMC_SDHCI_PCI is not set
CONFIG_MMC_SDHCI_PLTFM=y
# CONFIG_MMC_TIFM_SD is not set
CONFIG_MODULES_USE_ELF_REL=y
CONFIG_MPILIB=y
CONFIG_MTD_NAND_CORE=y

View File

@ -249,7 +249,6 @@ CONFIG_MMC_SDHCI_IO_ACCESSORS=y
CONFIG_MMC_SDHCI_MSM=y
# CONFIG_MMC_SDHCI_PCI is not set
CONFIG_MMC_SDHCI_PLTFM=y
# CONFIG_MMC_TIFM_SD is not set
CONFIG_MODULES_USE_ELF_REL=y
# CONFIG_MSM_GCC_8660 is not set
# CONFIG_MSM_GCC_8916 is not set

View File

@ -298,7 +298,6 @@ CONFIG_MMC_SDHCI_IO_ACCESSORS=y
CONFIG_MMC_SDHCI_MSM=y
# CONFIG_MMC_SDHCI_PCI is not set
CONFIG_MMC_SDHCI_PLTFM=y
# CONFIG_MMC_TIFM_SD is not set
CONFIG_MODULES_USE_ELF_REL=y
CONFIG_MSM_GCC_8660=y
# CONFIG_MSM_GCC_8916 is not set

View File

@ -22,7 +22,7 @@
};
chosen {
bootargs = "rootfstype=squashfs,ext4 rootwait noinitrd";
bootargs = "rootfstype=squashfs,ext4 rootwait noinitrd fstools_ignore_partname=1";
append-rootblock = "root=/dev/mmcblk0p";
};

View File

@ -390,7 +390,6 @@ CONFIG_MMC_SDHCI_IO_ACCESSORS=y
CONFIG_MMC_SDHCI_MSM=y
# CONFIG_MMC_SDHCI_PCI is not set
CONFIG_MMC_SDHCI_PLTFM=y
# CONFIG_MMC_TIFM_SD is not set
CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_MODULES_USE_ELF_RELA=y
CONFIG_MPILIB=y

View File

@ -17,9 +17,11 @@ define Device/arcadyan_arv7519rw22
DEVICE_ALT0_VARIANT := 2.1
DEVICE_ALT1_VENDOR := Astoria Networks
DEVICE_ALT1_MODEL := ARV7519RW22
KERNEL_SIZE := 2048k
IMAGE_SIZE := 31232k
DEVICE_PACKAGES := kmod-usb-dwc2
SUPPORTED_DEVICES += ARV7519RW22
DEFAULT := n
endef
TARGET_DEVICES += arcadyan_arv7519rw22

View File

@ -75,7 +75,6 @@ CONFIG_ARM_PATCH_IDIV=y
CONFIG_ARM_PATCH_PHYS_VIRT=y
CONFIG_ARM_PMU=y
CONFIG_ARM_PSCI=y
# CONFIG_ARM_PSCI_CPUIDLE is not set
CONFIG_ARM_PSCI_FW=y
# CONFIG_ARM_SMMU is not set
CONFIG_ARM_THUMB=y
@ -165,7 +164,6 @@ CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_HAS_ASID=y
CONFIG_CPU_IDLE=y
# CONFIG_CPU_IDLE_GOV_LADDER is not set
CONFIG_CPU_IDLE_GOV_MENU=y
CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
CONFIG_CPU_PABRT_V7=y
@ -456,7 +454,6 @@ CONFIG_MMC_SDHCI_IO_ACCESSORS=y
CONFIG_MMC_SDHCI_OF_ESDHC=y
# CONFIG_MMC_SDHCI_PCI is not set
CONFIG_MMC_SDHCI_PLTFM=y
# CONFIG_MMC_TIFM_SD is not set
CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_MODULES_USE_ELF_REL=y
CONFIG_MSDOS_FS=y
@ -754,7 +751,6 @@ CONFIG_VIRTIO=y
CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_CONSOLE=y
CONFIG_VIRTIO_MMIO=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_NET=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_PCI_LEGACY=y

View File

@ -99,7 +99,6 @@ CONFIG_ARM_GIC_V3_ITS_FSL_MC=y
CONFIG_ARM_GIC_V3_ITS_PCI=y
# CONFIG_ARM_PL172_MPMC is not set
CONFIG_ARM_PMU=y
# CONFIG_ARM_PSCI_CPUIDLE is not set
CONFIG_ARM_PSCI_FW=y
CONFIG_ARM_SMMU=y
# CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT is not set
@ -184,7 +183,6 @@ CONFIG_CPU_FREQ_GOV_POWERSAVE=y
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_IDLE=y
# CONFIG_CPU_IDLE_GOV_LADDER is not set
CONFIG_CPU_IDLE_GOV_MENU=y
CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
CONFIG_CPU_PM=y
@ -618,7 +616,6 @@ CONFIG_MMC_SDHCI_IO_ACCESSORS=y
CONFIG_MMC_SDHCI_OF_ESDHC=y
# CONFIG_MMC_SDHCI_PCI is not set
CONFIG_MMC_SDHCI_PLTFM=y
# CONFIG_MMC_TIFM_SD is not set
CONFIG_MMU_NOTIFIER=y
CONFIG_MODULES_TREE_LOOKUP=y
CONFIG_MODULES_USE_ELF_RELA=y
@ -693,7 +690,6 @@ CONFIG_NUMA_BALANCING=y
CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
CONFIG_NVMEM=y
CONFIG_NVMEM_SYSFS=y
# CONFIG_OCTEONTX2_AF is not set
CONFIG_OF=y
CONFIG_OF_ADDRESS=y
CONFIG_OF_EARLY_FLATTREE=y
@ -722,7 +718,6 @@ CONFIG_PCIEASPM_DEFAULT=y
# CONFIG_PCIEASPM_POWERSAVE is not set
# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
CONFIG_PCIEPORTBUS=y
# CONFIG_PCIE_AL is not set
CONFIG_PCIE_DW=y
CONFIG_PCIE_DW_HOST=y
CONFIG_PCIE_LAYERSCAPE_GEN4=y
@ -956,7 +951,6 @@ CONFIG_VIRTIO_BLK=y
CONFIG_VIRTIO_CONSOLE=y
# CONFIG_VIRTIO_IOMMU is not set
CONFIG_VIRTIO_MMIO=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_NET=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_PCI_LEGACY=y

View File

@ -14,7 +14,7 @@ Signed-off-by: Poonam Aggrwal <poonam.aggrwal@nxp.com>
--- a/arch/arm64/mm/init.c
+++ b/arch/arm64/mm/init.c
@@ -406,6 +406,8 @@ void __init arm64_memblock_init(void)
@@ -418,6 +418,8 @@ void __init arm64_memblock_init(void)
initrd_end = initrd_start + phys_initrd_size;
}
@ -23,7 +23,7 @@ Signed-off-by: Poonam Aggrwal <poonam.aggrwal@nxp.com>
early_init_fdt_scan_reserved_mem();
/* 4GB maximum for 32-bit only capable devices */
@@ -416,8 +418,6 @@ void __init arm64_memblock_init(void)
@@ -428,8 +430,6 @@ void __init arm64_memblock_init(void)
reserve_crashkernel();

View File

@ -57,7 +57,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
fsl-enetc-mdio-y := enetc_pci_mdio.o enetc_mdio.o
--- a/drivers/net/ethernet/freescale/enetc/enetc.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc.c
@@ -1427,8 +1427,7 @@ int enetc_close(struct net_device *ndev)
@@ -1422,8 +1422,7 @@ int enetc_close(struct net_device *ndev)
return 0;
}
@ -67,7 +67,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
{
struct enetc_ndev_priv *priv = netdev_priv(ndev);
struct tc_mqprio_qopt *mqprio = type_data;
@@ -1436,9 +1435,6 @@ int enetc_setup_tc(struct net_device *nd
@@ -1431,9 +1430,6 @@ int enetc_setup_tc(struct net_device *nd
u8 num_tc;
int i;
@ -77,7 +77,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
mqprio->hw = TC_MQPRIO_HW_OFFLOAD_TCS;
num_tc = mqprio->num_tc;
@@ -1483,6 +1479,19 @@ int enetc_setup_tc(struct net_device *nd
@@ -1478,6 +1474,19 @@ int enetc_setup_tc(struct net_device *nd
return 0;
}
@ -99,7 +99,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
struct enetc_ndev_priv *priv = netdev_priv(ndev);
--- a/drivers/net/ethernet/freescale/enetc/enetc.h
+++ b/drivers/net/ethernet/freescale/enetc/enetc.h
@@ -244,3 +244,10 @@ int enetc_set_fs_entry(struct enetc_si *
@@ -249,3 +249,10 @@ int enetc_set_fs_entry(struct enetc_si *
void enetc_set_rss_key(struct enetc_hw *hw, const u8 *bytes);
int enetc_get_rss_table(struct enetc_si *si, u32 *table, int count);
int enetc_set_rss_table(struct enetc_si *si, const u32 *table, int count);

View File

@ -42,7 +42,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
static int enetc_dma_alloc_bdr(struct enetc_bdr *r, size_t bd_size)
@@ -1314,8 +1319,12 @@ static void enetc_disable_interrupts(str
@@ -1309,8 +1314,12 @@ static void enetc_disable_interrupts(str
static void adjust_link(struct net_device *ndev)
{
@ -91,7 +91,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
struct enetc_bdr *tx_ring[16];
struct enetc_bdr *rx_ring[16];
@@ -248,6 +254,8 @@ int enetc_send_cmd(struct enetc_si *si,
@@ -253,6 +259,8 @@ int enetc_send_cmd(struct enetc_si *si,
#ifdef CONFIG_FSL_ENETC_QOS
int enetc_setup_tc_taprio(struct net_device *ndev, void *type_data);

View File

@ -79,8 +79,8 @@ Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
+}
--- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c
@@ -852,6 +852,61 @@ static int enetc_init_port_rss_memory(st
return err;
@@ -872,6 +872,61 @@ static void enetc_init_unused_port(struc
enetc_free_cbdr(dev, &si->cbd_ring);
}
+static void enetc_configure_sgmii(struct mii_bus *imdio)
@ -141,7 +141,7 @@ Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
static int enetc_pf_probe(struct pci_dev *pdev,
const struct pci_device_id *ent)
{
@@ -928,6 +983,10 @@ static int enetc_pf_probe(struct pci_dev
@@ -956,6 +1011,10 @@ static int enetc_pf_probe(struct pci_dev
if (err)
dev_warn(&pdev->dev, "Fallback to PHY-less operation\n");

View File

@ -125,7 +125,7 @@ Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
}
/* Initialize the entire shared memory for the flow steering entries
@@ -933,6 +936,10 @@ static int enetc_pf_probe(struct pci_dev
@@ -955,6 +958,10 @@ static int enetc_pf_probe(struct pci_dev
pf->si = si;
pf->total_vfs = pci_sriov_get_totalvfs(pdev);
@ -136,7 +136,7 @@ Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
enetc_configure_port(pf);
enetc_get_si_caps(si);
@@ -947,6 +954,8 @@ static int enetc_pf_probe(struct pci_dev
@@ -969,6 +976,8 @@ static int enetc_pf_probe(struct pci_dev
enetc_pf_netdev_setup(si, ndev, &enetc_ndev_ops);
priv = netdev_priv(ndev);
@ -145,7 +145,7 @@ Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
enetc_init_si_rings_params(priv);
@@ -974,10 +983,6 @@ static int enetc_pf_probe(struct pci_dev
@@ -1002,10 +1011,6 @@ static int enetc_pf_probe(struct pci_dev
goto err_alloc_msix;
}
@ -156,23 +156,23 @@ Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
err = enetc_configure_serdes(priv);
if (err)
dev_warn(&pdev->dev, "Attempted serdes config but failed\n");
@@ -995,7 +1000,6 @@ static int enetc_pf_probe(struct pci_dev
@@ -1023,7 +1028,6 @@ static int enetc_pf_probe(struct pci_dev
err_reg_netdev:
enetc_mdio_remove(pf);
- enetc_of_put_phy(priv);
enetc_free_msix(priv);
err_config_si:
err_init_port_rss:
err_init_port_rfs:
@@ -1005,6 +1009,7 @@ err_alloc_si_res:
@@ -1034,6 +1038,7 @@ err_alloc_si_res:
si->ndev = NULL;
free_netdev(ndev);
err_alloc_netdev:
+ enetc_of_put_phy(pf);
err_device_disabled:
err_map_pf_space:
enetc_pci_remove(pdev);
@@ -1027,7 +1032,7 @@ static void enetc_pf_remove(struct pci_d
@@ -1057,7 +1062,7 @@ static void enetc_pf_remove(struct pci_d
unregister_netdev(si->ndev);
enetc_mdio_remove(pf);

View File

@ -23,7 +23,7 @@ Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com>
enetc_port_wr(hw, ENETC_PM0_IF_MODE, ENETC_PM0_IFM_XGMII);
}
@@ -889,7 +890,8 @@ static int enetc_configure_serdes(struct
@@ -909,7 +910,8 @@ static int enetc_configure_serdes(struct
int err;
if (priv->if_mode != PHY_INTERFACE_MODE_SGMII &&
@ -33,7 +33,7 @@ Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com>
return 0;
err = enetc_imdio_init(pf);
@@ -899,7 +901,8 @@ static int enetc_configure_serdes(struct
@@ -919,7 +921,8 @@ static int enetc_configure_serdes(struct
if (priv->if_mode == PHY_INTERFACE_MODE_SGMII)
enetc_configure_sgmii(pf->imdio);

View File

@ -397,7 +397,7 @@ Signed-off-by: Alex Marginean <alexandru.marginean@nxp.com>
#define enetc_mdio_rd(mdio_priv, off) \
--- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c
@@ -1046,6 +1046,9 @@ static void enetc_pf_remove(struct pci_d
@@ -1076,6 +1076,9 @@ static void enetc_pf_remove(struct pci_d
enetc_pci_remove(pdev);
}

View File

@ -371,7 +371,7 @@ Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
#define enetc_rd(hw, off) enetc_rd_reg((hw)->reg + (off))
--- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c
@@ -1046,8 +1046,9 @@ static void enetc_pf_remove(struct pci_d
@@ -1076,8 +1076,9 @@ static void enetc_pf_remove(struct pci_d
enetc_pci_remove(pdev);
}

View File

@ -48,11 +48,11 @@ Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
--- a/drivers/net/ethernet/freescale/enetc/enetc_pf.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc_pf.c
@@ -1012,6 +1012,7 @@ err_alloc_si_res:
@@ -1041,6 +1041,7 @@ err_alloc_si_res:
si->ndev = NULL;
free_netdev(ndev);
err_alloc_netdev:
+ enetc_mdio_remove(pf);
enetc_of_put_phy(pf);
err_device_disabled:
err_map_pf_space:
enetc_pci_remove(pdev);

View File

@ -47,7 +47,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
+ taprio(802.1Qbv) and Credit Based Shaper(802.1Qbu).
--- a/drivers/net/ethernet/freescale/enetc/enetc.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc.c
@@ -1524,6 +1524,8 @@ int enetc_setup_tc(struct net_device *nd
@@ -1519,6 +1519,8 @@ int enetc_setup_tc(struct net_device *nd
return enetc_setup_tc_mqprio(ndev, type_data);
case TC_SETUP_QDISC_TAPRIO:
return enetc_setup_tc_taprio(ndev, type_data);
@ -58,7 +58,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}
--- a/drivers/net/ethernet/freescale/enetc/enetc.h
+++ b/drivers/net/ethernet/freescale/enetc/enetc.h
@@ -255,7 +255,9 @@ int enetc_send_cmd(struct enetc_si *si,
@@ -260,7 +260,9 @@ int enetc_send_cmd(struct enetc_si *si,
#ifdef CONFIG_FSL_ENETC_QOS
int enetc_setup_tc_taprio(struct net_device *ndev, void *type_data);
void enetc_sched_speed_set(struct net_device *ndev);

View File

@ -179,7 +179,7 @@ Signed-off-by: Po Liu <Po.Liu@nxp.com>
};
struct enetc_ndev_priv {
@@ -261,3 +292,10 @@ int enetc_setup_tc_cbs(struct net_device
@@ -266,3 +297,10 @@ int enetc_setup_tc_cbs(struct net_device
#define enetc_sched_speed_set(ndev) (void)0
#define enetc_setup_tc_cbs(ndev, type_data) -EOPNOTSUPP
#endif
@ -839,7 +839,7 @@ Signed-off-by: Po Liu <Po.Liu@nxp.com>
/* pick up primary MAC address from SI */
enetc_get_primary_mac_addr(&si->hw, ndev->dev_addr);
}
@@ -999,6 +1006,8 @@ static int enetc_pf_probe(struct pci_dev
@@ -1027,6 +1034,8 @@ static int enetc_pf_probe(struct pci_dev
netif_info(priv, probe, ndev, "%s v%s\n",
enetc_drv_name, enetc_drv_ver);
@ -848,7 +848,7 @@ Signed-off-by: Po Liu <Po.Liu@nxp.com>
return 0;
err_reg_netdev:
@@ -1033,6 +1042,8 @@ static void enetc_pf_remove(struct pci_d
@@ -1063,6 +1072,8 @@ static void enetc_pf_remove(struct pci_d
netif_info(priv, drv, si->ndev, "%s v%s remove\n",
enetc_drv_name, enetc_drv_ver);

View File

@ -17,7 +17,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
--- a/drivers/net/ethernet/freescale/enetc/enetc.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc.c
@@ -1369,6 +1369,7 @@ static int enetc_phy_connect(struct net_
@@ -1364,6 +1364,7 @@ static int enetc_phy_connect(struct net_
{
struct enetc_ndev_priv *priv = netdev_priv(ndev);
struct phy_device *phydev;
@ -25,7 +25,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
if (!priv->phy_node)
return 0; /* phy-less mode */
@@ -1382,6 +1383,10 @@ static int enetc_phy_connect(struct net_
@@ -1377,6 +1378,10 @@ static int enetc_phy_connect(struct net_
phy_attached_info(phydev);

View File

@ -344,7 +344,7 @@ MDIO erratum.
static int enetc_of_get_phy(struct enetc_pf *pf)
{
struct device *dev = &pf->si->pdev->dev;
@@ -891,6 +938,30 @@ static void enetc_configure_sxgmii(struc
@@ -911,6 +958,30 @@ static void enetc_configure_sxgmii(struc
ENETC_PCS_CR_LANE_RESET | ENETC_PCS_CR_RESET_AN);
}

View File

@ -16,7 +16,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/ethernet/freescale/enetc/enetc.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc.c
@@ -1661,7 +1661,10 @@ int enetc_ioctl(struct net_device *ndev,
@@ -1656,7 +1656,10 @@ int enetc_ioctl(struct net_device *ndev,
if (cmd == SIOCGHWTSTAMP)
return enetc_hwtstamp_get(ndev, rq);
#endif

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