Merge Official Source

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
Tianling Shen 2023-06-24 12:22:24 +08:00
commit 36512ff672
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
68 changed files with 1443 additions and 64 deletions

View File

@ -1,2 +1,2 @@
LINUX_VERSION-5.15 = .117
LINUX_KERNEL_HASH-5.15.117 = a9a8331f3c0e004b40a41f30d688b53bf85405597ac41c2c89be7f4fbcf7239f
LINUX_VERSION-5.15 = .118
LINUX_KERNEL_HASH-5.15.118 = 4e6bf4dadb04d5d11d1d4cc37c0eabcf33bc333b7dd3dc2143c3099a823eb5b3

View File

@ -1,2 +1,2 @@
LINUX_VERSION-6.1 = .34
LINUX_KERNEL_HASH-6.1.34 = b26f7cbcbf8031efc49f11f236f372fc34a4fd5fc6ad3151b893d1aa038ed603
LINUX_VERSION-6.1 = .35
LINUX_KERNEL_HASH-6.1.35 = be368143bc5d0dc73dd3e8c6191630c1620520379baf6f47c16116b2c0bc26ac

View File

@ -93,6 +93,7 @@ zyxel,nbg6616)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x10000"
;;
aruba,ap-105|\
aruba,ap-115|\
aruba,ap-175|\
dongwon,dw02-412h-64m|\
dongwon,dw02-412h-128m|\

View File

@ -44,6 +44,9 @@ livinet,zr-3020|\
qihoo,360t7-ubootmod)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000" "1"
;;
netgear,wax220)
ubootenv_add_uci_config "/dev/mtd5" "0x0" "0x20000" "0x20000"
;;
xiaomi,redmi-router-ax6000|\
xiaomi,redmi-router-ax6000-stock)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x10000" "0x20000"

View File

@ -197,7 +197,7 @@ $(eval $(call KernelPackage,nf-flow))
define KernelPackage/nf-socket
SUBMENU:=$(NF_MENU)
TITLE:=Netfilter socket lookup support
KCONFIG:= $(KCOFNIG_NF_SOCKET)
KCONFIG:= $(KCONFIG_NF_SOCKET)
FILES:=$(foreach mod,$(NF_SOCKET-m),$(LINUX_DIR)/net/$(mod).ko)
AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_SOCKET-m)))
endef
@ -208,7 +208,7 @@ $(eval $(call KernelPackage,nf-socket))
define KernelPackage/nf-tproxy
SUBMENU:=$(NF_MENU)
TITLE:=Netfilter tproxy support
KCONFIG:= $(KCOFNIG_NF_TPROXY)
KCONFIG:= $(KCONFIG_NF_TPROXY)
FILES:=$(foreach mod,$(NF_TPROXY-m),$(LINUX_DIR)/net/$(mod).ko)
AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_TPROXY-m)))
endef

View File

@ -0,0 +1,23 @@
From: Felix Fietkau <nbd@nbd.name>
Date: Thu, 22 Jun 2023 18:02:25 +0200
Subject: [PATCH] mac80211: fix sband iftype data lookup for AP_VLAN
AP_VLAN interfaces are virtual, so doesn't really exist as a type for
capabilities. When passed in as a type, AP is the one that's really intended.
Fixes: c4cbaf7973a7 ("cfg80211: Add support for HE")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -567,6 +567,9 @@ ieee80211_get_sband_iftype_data(const st
if (WARN_ON(iftype >= NL80211_IFTYPE_MAX))
return NULL;
+ if (iftype == NL80211_IFTYPE_AP_VLAN)
+ iftype = NL80211_IFTYPE_AP;
+
for (i = 0; i < sband->n_iftype_data; i++) {
const struct ieee80211_sband_iftype_data *data =
&sband->iftype_data[i];

View File

@ -0,0 +1,36 @@
From cdf461888f900c3a149b10a04d72b4a590ecdec3 Mon Sep 17 00:00:00 2001
From: David Bauer <mail@david-bauer.net>
Date: Tue, 16 May 2023 23:11:32 +0200
Subject: [PATCH] mac80211: always use mac80211 loss detection
ath10k does not report excessive loss in case of broken block-ack
sessions. The loss is communicated to the host-os, but ath10k does not
trigger a low-ack events by itself.
The mac80211 framework for loss detection however detects this
circumstance well in case of ath10k. So use it regardless of ath10k's
own loss detection mechanism.
Patching this in mac80211 does allow this hack to be used with any
flavor of ath10k/ath11k.
Signed-off-by: David Bauer <mail@david-bauer.net>
---
net/mac80211/status.c | 6 ------
1 file changed, 6 deletions(-)
--- a/net/mac80211/status.c
+++ b/net/mac80211/status.c
@@ -794,12 +794,6 @@ static void ieee80211_lost_packet(struct
unsigned long pkt_time = STA_LOST_PKT_TIME;
unsigned int pkt_thr = STA_LOST_PKT_THRESHOLD;
- /* If driver relies on its own algorithm for station kickout, skip
- * mac80211 packet loss mechanism.
- */
- if (ieee80211_hw_check(&sta->local->hw, REPORTS_LOW_ACK))
- return;
-
/* This packet was aggregated but doesn't carry status info */
if ((info->flags & IEEE80211_TX_CTL_AMPDU) &&
!(info->flags & IEEE80211_TX_STAT_AMPDU))

View File

@ -1,6 +1,6 @@
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -4081,6 +4081,7 @@ struct mgmt_frame_regs {
@@ -4084,6 +4084,7 @@ struct mgmt_frame_regs {
* (as advertised by the nl80211 feature flag.)
* @get_tx_power: store the current TX power into the dbm variable;
* return 0 if successful
@ -8,7 +8,7 @@
*
* @rfkill_poll: polls the hw rfkill line, use cfg80211 reporting
* functions to adjust rfkill hw state
@@ -4431,6 +4432,7 @@ struct cfg80211_ops {
@@ -4434,6 +4435,7 @@ struct cfg80211_ops {
enum nl80211_tx_power_setting type, int mbm);
int (*get_tx_power)(struct wiphy *wiphy, struct wireless_dev *wdev,
int *dbm);

View File

@ -8,9 +8,9 @@ PKG_LICENSE_FILES:=
PKG_SOURCE_URL:=https://github.com/openwrt/mt76
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2023-05-13
PKG_SOURCE_VERSION:=969b7b5ebd129068ca56e4b0d831593a2f92382f
PKG_MIRROR_HASH:=d28869591d1cb9a967b72f5cd8215c7b2c3388b7b31147b7b18c797018ab8ffb
PKG_SOURCE_DATE:=2023-06-22
PKG_SOURCE_VERSION:=29cfabbb4b9076aca2a5b5124729a2a9c391905c
PKG_MIRROR_HASH:=4b696f473fa784c5cc14ea964a0942e7263022e078e2929db650b458b576f1ce
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_USE_NINJA:=0
@ -266,7 +266,7 @@ define KernelPackage/mt7921-common
$(KernelPackage/mt76-default)
TITLE:=MediaTek MT7615 wireless driver common code
HIDDEN:=1
DEPENDS+=+kmod-mt76-connac +kmod-mt7921-firmware +@DRIVER_11AX_SUPPORT
DEPENDS+=+kmod-mt76-connac +kmod-mt7921-firmware +@DRIVER_11AX_SUPPORT +kmod-hwmon-core
FILES:= $(PKG_BUILD_DIR)/mt7921/mt7921-common.ko
endef

View File

@ -5,9 +5,9 @@ PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git
PKG_SOURCE_DATE:=2023-06-04
PKG_SOURCE_VERSION:=ec9dba72124597b7224bbfe75960386dc320f4bd
PKG_MIRROR_HASH:=baee39a3882a2b03fc83a3a6a8963c340fa8d884c7a8c9e80e7d2dddc50e24bd
PKG_SOURCE_DATE:=2023-06-23
PKG_SOURCE_VERSION:=edf3aced9f9ae4b07cfbb98d3919ddc7a9e44362
PKG_MIRROR_HASH:=cae6397d7e10d5f2659bf4c1e66b1ed7198693d2d4e448c414780fcf2a43ea94
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=GPL-2.0

View File

@ -202,7 +202,7 @@
+subsys_initcall(ar5312_gpio_init);
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -230,6 +230,7 @@ config ATH25
@@ -231,6 +231,7 @@ config ATH25
select CEVT_R4K
select CSRC_R4K
select DMA_NONCOHERENT

View File

@ -59,6 +59,14 @@
gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
};
};
watchdog {
compatible = "linux,wdt-gpio";
gpios = <&gpio 21 GPIO_ACTIVE_HIGH>;
hw_algo = "toggle";
hw_margin_ms = <30000>;
always-running;
};
};
&wdt {

View File

@ -0,0 +1,239 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "qca955x.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
compatible = "aruba,ap-115", "qca,qca9558";
model = "Aruba AP-115";
aliases {
led-boot = &led_power_green;
led-failsafe = &led_power_red;
led-running = &led_power_green;
led-upgrade = &led_power_red;
label-mac-device = &eth0;
};
chosen {
bootargs = "console=ttyS0,9600n8";
};
/**
* Currently unused GPIOs in OpenWrt:
*
* TPM-CLK: 19
* TPM-IO: 20
* ETH-PHY-Interrupt: 11
* Power-DC: 22
* Power-PoE: 23
* Power-PoE-8023af: 17
*/
leds {
compatible = "gpio-leds";
led_power_green: power-green {
label = "green:power";
gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
};
led_power_red: power-red {
label = "red:power";
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
};
radio-24-green {
label = "green:radio-24";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
radio-24-amber {
label = "amber:radio-24";
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
};
radio-5-green {
label = "green:radio-5";
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy1tpt";
};
radio-5-amber {
label = "amber:radio-5";
gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
};
};
keys {
compatible = "gpio-keys";
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
};
};
reg_usb_vbus {
compatible = "regulator-fixed";
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio 3 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-always-on;
};
};
&pcie0 {
status = "okay";
ath9k: wifi@0,0 {
compatible = "pci168c,0033";
reg = <0x0000 0 0 0 0>;
qca,no-eeprom;
nvmem-cells = <&macaddr_oemdata_1d>;
nvmem-cell-names = "mac-address";
mac-address-increment = <1>;
};
};
&pinmux {
/**
* Ugly hack ahead!
*
* GPIO05: Bank1-CS / Bank2-CLK
* GPIO14: Bank1-CLK / Bank2-CS
*
* We can not support this with OpenWrt, as this
* would require us to influence the pinmux based on the CS.
*
* We force-select Bank 1. Remember to blame Aruba for that.
*/
cs0_pin5: spi-cs0-pin5 {
pinctrl-single,bits = <0x4 0x900 0xff00>;
};
clk_pin14: spi-cs1-pin14 {
pinctrl-single,bits = <0xc 0x0a0000 0xff0000>;
};
};
&spi {
pinctrl-names = "default";
pinctrl-0 = <&cs0_pin5 &clk_pin14>;
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@1 {
label = "flash-full";
reg = <0x0 0x1000000>;
read-only;
};
uboot: partition@0 {
label = "u-boot";
reg = <0x000000 0x040000>;
read-only;
};
/* Here be dragons */
partition@100000 {
compatible = "denx,uimage";
label = "firmware";
reg = <0x100000 0xe00000>;
};
oemdata: partition@fe0000 {
label = "oemdata";
reg = <0xfe0000 0x010000>;
read-only;
};
partition@ff0000 {
label = "u-boot-env";
reg = <0xff0000 0x10000>;
};
};
};
};
&wmac {
status = "okay";
qca,no-eeprom;
nvmem-cells = <&macaddr_oemdata_1d>;
nvmem-cell-names = "mac-address";
};
&mdio0 {
status = "okay";
phy0: ethernet-phy@0 {
reg = <0>;
reset-gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
reset-assert-us = <10000>;
reset-deassert-us = <10000>;
eee-broken-100tx;
eee-broken-1000t;
};
};
&eth0 {
status = "okay";
nvmem-cells = <&macaddr_oemdata_1d>;
nvmem-cell-names = "mac-address";
phy-handle = <&phy0>;
phy-mode = "rgmii-id";
pll-data = <0xa6000000 0xa0000101 0xa0001313>;
gmac-config {
device = <&gmac>;
ge0-sgmii = <0>;
txen-delay = <3>;
txd-delay = <3>;
rxdv-delay = <3>;
rxd-delay = <3>;
rgmii-enabled = <1>;
};
};
&oemdata {
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;
macaddr_oemdata_1d: macaddr@1d {
reg = <0x1d 0x6>;
};
};
&usb_phy0 {
status = "okay";
};
&usb0 {
dr_mode = "host";
status = "okay";
};

View File

@ -12,6 +12,9 @@ case "$FIRMWARE" in
8dev,lima)
caldata_extract "art" 0x1000 0x800
;;
aruba,ap-115)
caldata_extract "oemdata" 0x1000 0x440
;;
asus,pl-ac56|\
asus,rp-ac51|\
asus,rp-ac66)
@ -79,6 +82,9 @@ case "$FIRMWARE" in
;;
"ath9k-eeprom-pci-0000:00:00.0.bin")
case $board in
aruba,ap-115)
caldata_extract "oemdata" 0x5000 0x440
;;
avm,fritz300e)
caldata_extract_reverse "urloader" 0x1541 0x440
;;

View File

@ -413,6 +413,21 @@ define Device/aruba_ap-105
endef
TARGET_DEVICES += aruba_ap-105
define Device/aruba_ap-115
SOC := qca9558
DEVICE_VENDOR := Aruba
DEVICE_MODEL := AP-115
IMAGE_SIZE := 16000k
DEVICE_PACKAGES := kmod-usb2
LOADER_TYPE := bin
LOADER_FLASH_OFFS := 0x102000
COMPILE := loader-$(1).bin
COMPILE/loader-$(1).bin := loader-okli-compile
KERNEL := kernel-bin | append-dtb | lzma | uImage lzma -M 0x4f4b4c49 | loader-okli $(1) 8128 | uImage none
KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | loader-kernel
endef
TARGET_DEVICES += aruba_ap-115
define Device/aruba_ap-175
SOC := ar7161
DEVICE_VENDOR := Aruba

View File

@ -15,7 +15,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -256,6 +256,8 @@ config ATH79
@@ -257,6 +257,8 @@ config ATH79
select SYS_SUPPORTS_BIG_ENDIAN
select SYS_SUPPORTS_MIPS16
select SYS_SUPPORTS_ZBOOT_UART_PROM

View File

@ -784,7 +784,7 @@ SVN-Revision: 35130
--- a/include/net/neighbour.h
+++ b/include/net/neighbour.h
@@ -275,8 +275,10 @@ static inline bool neigh_key_eq128(const
@@ -270,8 +270,10 @@ static inline bool neigh_key_eq128(const
const u32 *n32 = (const u32 *)n->primary_key;
const u32 *p32 = pkey;

View File

@ -29,7 +29,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
*
@@ -6079,6 +6082,12 @@ int __init cgroup_init(void)
mutex_unlock(&cgroup_mutex);
cgroup_unlock();
+ /*
+ * Apply an implicit disable, knowing that an explicit enable will
@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
for_each_subsys(ss, ssid) {
if (ss->early_init) {
struct cgroup_subsys_state *css =
@@ -6717,6 +6726,10 @@ static int __init cgroup_disable(char *s
@@ -6716,6 +6725,10 @@ static int __init cgroup_disable(char *s
strcmp(token, ss->legacy_name))
continue;
@ -51,7 +51,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
static_branch_disable(cgroup_subsys_enabled_key[i]);
pr_info("Disabling %s control group subsystem\n",
ss->name);
@@ -6735,6 +6748,31 @@ static int __init cgroup_disable(char *s
@@ -6734,6 +6747,31 @@ static int __init cgroup_disable(char *s
}
__setup("cgroup_disable=", cgroup_disable);

View File

@ -80,7 +80,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
}
/*********************************
@@ -1489,7 +1505,6 @@ static int __init zswap_debugfs_init(voi
@@ -1496,7 +1512,6 @@ static int __init zswap_debugfs_init(voi
**********************************/
static int __init init_zswap(void)
{
@ -88,7 +88,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
int ret;
zswap_init_started = true;
@@ -1513,33 +1528,23 @@ static int __init init_zswap(void)
@@ -1520,33 +1535,23 @@ static int __init init_zswap(void)
if (ret)
goto hp_fail;

View File

@ -14,7 +14,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -331,6 +331,9 @@ config BCM63XX
@@ -332,6 +332,9 @@ config BCM63XX
select SYNC_R4K
select DMA_NONCOHERENT
select IRQ_MIPS_CPU

View File

@ -6,6 +6,10 @@
board_config_update
case "$(board_name)" in
arcadyan,ar7516)
ucidef_set_led_netdev "wan" "WAN" "green:wan" "wan"
ucidef_set_led_netdev "wlan0" "WiFi" "green:wifi" "phy0-ap0"
;;
nucom,r5010unv2 |\
sercomm,ad1018)
ucidef_set_led_usbport "usb" "USB" "green:usb" "usb1-port1" "usb2-port1"

View File

@ -5,6 +5,10 @@
board_config_update
case "$(board_name)" in
arcadyan,ar7516)
ucidef_set_bridge_device switch
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" "wan"
;;
comtrend,ar-5381u |\
comtrend,ar-5387un |\
nucom,r5010unv2)

View File

@ -3,6 +3,7 @@
. /lib/functions.sh
case "$(board_name)" in
arcadyan,ar7516 |\
comtrend,ar-5381u |\
comtrend,ar-5387un |\
nucom,r5010unv2)

View File

@ -0,0 +1,186 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include "bcm6328.dtsi"
/ {
model = "Arcadyan AR7516";
compatible = "arcadyan,ar7516", "brcm,bcm6328";
aliases {
led-failsafe = &led_upgrade_green;
led-upgrade = &led_upgrade_green;
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <100>;
reset {
label = "reset";
gpios = <&gpio 23 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
debounce-interval = <60>;
};
wps {
label = "wps";
gpios = <&gpio 24 GPIO_ACTIVE_LOW>;
linux,code = <KEY_WPS_BUTTON>;
debounce-interval = <60>;
};
};
bcm43227-sprom {
compatible = "brcm,bcma-sprom";
pci-bus = <1>;
pci-dev = <0>;
nvmem-cells = <&macaddr_cfe_6a0>;
nvmem-cell-names = "mac-address";
mac-address-increment = <1>;
brcm,sprom = "brcm/bcm43227-sprom.bin";
};
};
&ehci {
status = "okay";
};
&ethernet {
status = "okay";
nvmem-cells = <&macaddr_cfe_6a0>;
nvmem-cell-names = "mac-address";
};
&hsspi {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
spi-max-frequency = <16666667>;
spi-tx-bus-width = <2>;
spi-rx-bus-width = <2>;
reg = <0>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
cfe: partition@0 {
label = "cfe";
reg = <0x000000 0x010000>;
read-only;
};
partition@10000 {
compatible = "brcm,bcm963xx-imagetag";
label = "firmware";
reg = <0x010000 0x7e0000>;
};
partition@7f0000 {
label = "nvram";
reg = <0x7f0000 0x010000>;
};
};
};
};
&leds {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ephy0_act_led &pinctrl_ephy1_act_led
&pinctrl_ephy2_act_led &pinctrl_ephy3_act_led
&pinctrl_leds>;
led_upgrade_green: led@1 {
reg = <1>;
label = "green:upgrade";
};
led@6 {
reg = <6>;
active-low;
label = "green:wan";
};
led@7 {
reg = <7>;
active-low;
label = "green:wifi";
};
};
&ohci {
status = "okay";
};
&pcie {
status = "okay";
};
&pinctrl {
pinctrl_leds: leds {
function = "led";
pins = "gpio1", "gpio6", "gpio7";
};
};
&switch0 {
ports {
port@0 {
reg = <0>;
label = "lan1";
phy-handle = <&phy1>;
phy-mode = "mii";
};
port@1 {
reg = <1>;
label = "lan2";
phy-handle = <&phy2>;
phy-mode = "mii";
};
port@2 {
reg = <2>;
label = "lan3";
phy-handle = <&phy3>;
phy-mode = "mii";
};
port@3 {
reg = <3>;
label = "wan";
phy-handle = <&phy4>;
phy-mode = "mii";
};
};
};
&uart0 {
status = "okay";
};
&usbh {
status = "okay";
};
&cfe {
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;
macaddr_cfe_6a0: macaddr@6a0 {
reg = <0x6a0 0x6>;
};
};

View File

@ -1,5 +1,18 @@
# SPDX-License-Identifier: GPL-2.0-or-later
define Device/arcadyan_ar7516
$(Device/bcm63xx-cfe)
DEVICE_VENDOR := Arcadyan
DEVICE_MODEL := AR7516
CHIP_ID := 6328
CFE_BOARD_ID := AR7516AAW
FLASH_MB := 8
DEVICE_PACKAGES += $(USB2_PACKAGES) \
$(B43_PACKAGES) broadcom-43227-sprom \
kmod-leds-bcm6328
endef
TARGET_DEVICES += arcadyan_ar7516
define Device/comtrend_ar-5381u
$(Device/bcm63xx-cfe)
DEVICE_VENDOR := Comtrend

View File

@ -13,7 +13,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -274,25 +274,20 @@ config BMIPS_GENERIC
@@ -275,25 +275,20 @@ config BMIPS_GENERIC
select SYNC_R4K
select COMMON_CLK
select BCM6345_L1_IRQ

View File

@ -14,7 +14,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -274,6 +274,7 @@ config BMIPS_GENERIC
@@ -275,6 +275,7 @@ config BMIPS_GENERIC
select SYNC_R4K
select COMMON_CLK
select BCM6345_L1_IRQ

View File

@ -13,7 +13,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -272,19 +272,13 @@ config BMIPS_GENERIC
@@ -273,19 +273,13 @@ config BMIPS_GENERIC
select SYNC_R4K
select COMMON_CLK
select BCM6345_L1_IRQ
@ -33,7 +33,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
select SWAP_IO_SPACE
select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN
select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
@@ -294,6 +288,7 @@ config BMIPS_GENERIC
@@ -295,6 +289,7 @@ config BMIPS_GENERIC
select HAVE_PCI
select PCI_DRIVERS_GENERIC
select FW_CFE

View File

@ -14,7 +14,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -286,7 +286,6 @@ config BMIPS_GENERIC
@@ -287,7 +287,6 @@ config BMIPS_GENERIC
select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
select HARDIRQS_SW_RESEND
select HAVE_PCI

View File

@ -65,7 +65,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
struct page *page_pool_alloc_pages(struct page_pool *pool, gfp_t gfp);
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -434,6 +434,19 @@ config NET_DEVLINK
@@ -432,6 +432,19 @@ config NET_DEVLINK
config PAGE_POOL
bool

View File

@ -32,7 +32,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -11789,6 +11789,14 @@ L: netdev@vger.kernel.org
@@ -11782,6 +11782,14 @@ L: netdev@vger.kernel.org
S: Maintained
F: drivers/net/ethernet/mediatek/

View File

@ -25,7 +25,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -11901,6 +11901,7 @@ M: Landen Chao <Landen.Chao@mediatek.com
@@ -11894,6 +11894,7 @@ M: Landen Chao <Landen.Chao@mediatek.com
M: DENG Qingfang <dqfext@gmail.com>
L: netdev@vger.kernel.org
S: Maintained

View File

@ -28,7 +28,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -11899,9 +11899,11 @@ MEDIATEK SWITCH DRIVER
@@ -11892,9 +11892,11 @@ MEDIATEK SWITCH DRIVER
M: Sean Wang <sean.wang@mediatek.com>
M: Landen Chao <Landen.Chao@mediatek.com>
M: DENG Qingfang <dqfext@gmail.com>

View File

@ -21,7 +21,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -12700,6 +12700,7 @@ F: include/uapi/linux/meye.h
@@ -12693,6 +12693,7 @@ F: include/uapi/linux/meye.h
MOTORCOMM PHY DRIVER
M: Peter Geis <pgwipeout@gmail.com>

View File

@ -19,7 +19,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -17965,6 +17965,11 @@ L: netdev@vger.kernel.org
@@ -17958,6 +17958,11 @@ L: netdev@vger.kernel.org
S: Maintained
F: drivers/net/ethernet/dlink/sundance.c

View File

@ -57,7 +57,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -12364,6 +12364,14 @@ S: Supported
@@ -12357,6 +12357,14 @@ S: Supported
F: Documentation/devicetree/bindings/mtd/atmel-nand.txt
F: drivers/mtd/nand/raw/atmel/*

View File

@ -49,7 +49,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/usb/qmi_wwan.c
+++ b/drivers/net/usb/qmi_wwan.c
@@ -1314,6 +1314,7 @@ static const struct usb_device_id produc
@@ -1316,6 +1316,7 @@ static const struct usb_device_id produc
{QMI_FIXED_INTF(0x19d2, 0x1426, 2)}, /* ZTE MF91 */
{QMI_FIXED_INTF(0x19d2, 0x1428, 2)}, /* Telewell TW-LTE 4G v2 */
{QMI_FIXED_INTF(0x19d2, 0x1432, 3)}, /* ZTE ME3620 */

View File

@ -0,0 +1,242 @@
From d5e01266e7f5fa12400d4c8aa4e86fe89dcc61e9 Mon Sep 17 00:00:00 2001
From: Christian Marangi <ansuelsmth@gmail.com>
Date: Mon, 19 Jun 2023 22:46:58 +0200
Subject: [PATCH 1/3] leds: trigger: netdev: add additional specific link speed
mode
Add additional modes for specific link speed. Use ethtool APIs to get the
current link speed and enable the LED accordingly. Under netdev event
handler the rtnl lock is already held and is not needed to be set to
access ethtool APIs.
This is especially useful for PHY and Switch that supports LEDs hw
control for specific link speed. (example scenario a PHY that have 2 LED
connected one green and one orange where the green is turned on with
1000mbps speed and orange is turned on with 10mpbs speed)
On mode set from sysfs we check if we have enabled split link speed mode
and reject enabling generic link mode to prevent wrong and redundant
configuration.
Rework logic on the set baseline state to support these new modes to
select if we need to turn on or off the LED.
Add additional modes:
- link_10: Turn on LED when link speed is 10mbps
- link_100: Turn on LED when link speed is 100mbps
- link_1000: Turn on LED when link speed is 1000mbps
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Lee Jones <lee@kernel.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
drivers/leds/trigger/ledtrig-netdev.c | 80 +++++++++++++++++++++++----
include/linux/leds.h | 3 +
2 files changed, 73 insertions(+), 10 deletions(-)
--- a/drivers/leds/trigger/ledtrig-netdev.c
+++ b/drivers/leds/trigger/ledtrig-netdev.c
@@ -13,6 +13,7 @@
#include <linux/atomic.h>
#include <linux/ctype.h>
#include <linux/device.h>
+#include <linux/ethtool.h>
#include <linux/init.h>
#include <linux/jiffies.h>
#include <linux/kernel.h>
@@ -21,6 +22,7 @@
#include <linux/module.h>
#include <linux/netdevice.h>
#include <linux/mutex.h>
+#include <linux/rtnetlink.h>
#include <linux/timer.h>
#include "../leds.h"
@@ -52,6 +54,8 @@ struct led_netdev_data {
unsigned int last_activity;
unsigned long mode;
+ int link_speed;
+
bool carrier_link_up;
bool hw_control;
};
@@ -77,7 +81,24 @@ static void set_baseline_state(struct le
if (!trigger_data->carrier_link_up) {
led_set_brightness(led_cdev, LED_OFF);
} else {
+ bool blink_on = false;
+
if (test_bit(TRIGGER_NETDEV_LINK, &trigger_data->mode))
+ blink_on = true;
+
+ if (test_bit(TRIGGER_NETDEV_LINK_10, &trigger_data->mode) &&
+ trigger_data->link_speed == SPEED_10)
+ blink_on = true;
+
+ if (test_bit(TRIGGER_NETDEV_LINK_100, &trigger_data->mode) &&
+ trigger_data->link_speed == SPEED_100)
+ blink_on = true;
+
+ if (test_bit(TRIGGER_NETDEV_LINK_1000, &trigger_data->mode) &&
+ trigger_data->link_speed == SPEED_1000)
+ blink_on = true;
+
+ if (blink_on)
led_set_brightness(led_cdev,
led_cdev->blink_brightness);
else
@@ -161,6 +182,18 @@ static bool can_hw_control(struct led_ne
return true;
}
+static void get_device_state(struct led_netdev_data *trigger_data)
+{
+ struct ethtool_link_ksettings cmd;
+
+ trigger_data->carrier_link_up = netif_carrier_ok(trigger_data->net_dev);
+ if (!trigger_data->carrier_link_up)
+ return;
+
+ if (!__ethtool_get_link_ksettings(trigger_data->net_dev, &cmd))
+ trigger_data->link_speed = cmd.base.speed;
+}
+
static ssize_t device_name_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
@@ -196,8 +229,12 @@ static int set_device_name(struct led_ne
dev_get_by_name(&init_net, trigger_data->device_name);
trigger_data->carrier_link_up = false;
- if (trigger_data->net_dev != NULL)
- trigger_data->carrier_link_up = netif_carrier_ok(trigger_data->net_dev);
+ trigger_data->link_speed = SPEED_UNKNOWN;
+ if (trigger_data->net_dev != NULL) {
+ rtnl_lock();
+ get_device_state(trigger_data);
+ rtnl_unlock();
+ }
trigger_data->last_activity = 0;
@@ -234,6 +271,9 @@ static ssize_t netdev_led_attr_show(stru
switch (attr) {
case TRIGGER_NETDEV_LINK:
+ case TRIGGER_NETDEV_LINK_10:
+ case TRIGGER_NETDEV_LINK_100:
+ case TRIGGER_NETDEV_LINK_1000:
case TRIGGER_NETDEV_TX:
case TRIGGER_NETDEV_RX:
bit = attr;
@@ -249,7 +289,7 @@ static ssize_t netdev_led_attr_store(str
size_t size, enum led_trigger_netdev_modes attr)
{
struct led_netdev_data *trigger_data = led_trigger_get_drvdata(dev);
- unsigned long state;
+ unsigned long state, mode = trigger_data->mode;
int ret;
int bit;
@@ -259,6 +299,9 @@ static ssize_t netdev_led_attr_store(str
switch (attr) {
case TRIGGER_NETDEV_LINK:
+ case TRIGGER_NETDEV_LINK_10:
+ case TRIGGER_NETDEV_LINK_100:
+ case TRIGGER_NETDEV_LINK_1000:
case TRIGGER_NETDEV_TX:
case TRIGGER_NETDEV_RX:
bit = attr;
@@ -267,13 +310,20 @@ static ssize_t netdev_led_attr_store(str
return -EINVAL;
}
- cancel_delayed_work_sync(&trigger_data->work);
-
if (state)
- set_bit(bit, &trigger_data->mode);
+ set_bit(bit, &mode);
else
- clear_bit(bit, &trigger_data->mode);
+ clear_bit(bit, &mode);
+
+ if (test_bit(TRIGGER_NETDEV_LINK, &mode) &&
+ (test_bit(TRIGGER_NETDEV_LINK_10, &mode) ||
+ test_bit(TRIGGER_NETDEV_LINK_100, &mode) ||
+ test_bit(TRIGGER_NETDEV_LINK_1000, &mode)))
+ return -EINVAL;
+
+ cancel_delayed_work_sync(&trigger_data->work);
+ trigger_data->mode = mode;
trigger_data->hw_control = can_hw_control(trigger_data);
set_baseline_state(trigger_data);
@@ -295,6 +345,9 @@ static ssize_t netdev_led_attr_store(str
static DEVICE_ATTR_RW(trigger_name)
DEFINE_NETDEV_TRIGGER(link, TRIGGER_NETDEV_LINK);
+DEFINE_NETDEV_TRIGGER(link_10, TRIGGER_NETDEV_LINK_10);
+DEFINE_NETDEV_TRIGGER(link_100, TRIGGER_NETDEV_LINK_100);
+DEFINE_NETDEV_TRIGGER(link_1000, TRIGGER_NETDEV_LINK_1000);
DEFINE_NETDEV_TRIGGER(tx, TRIGGER_NETDEV_TX);
DEFINE_NETDEV_TRIGGER(rx, TRIGGER_NETDEV_RX);
@@ -338,6 +391,9 @@ static DEVICE_ATTR_RW(interval);
static struct attribute *netdev_trig_attrs[] = {
&dev_attr_device_name.attr,
&dev_attr_link.attr,
+ &dev_attr_link_10.attr,
+ &dev_attr_link_100.attr,
+ &dev_attr_link_1000.attr,
&dev_attr_rx.attr,
&dev_attr_tx.attr,
&dev_attr_interval.attr,
@@ -368,9 +424,10 @@ static int netdev_trig_notify(struct not
mutex_lock(&trigger_data->lock);
trigger_data->carrier_link_up = false;
+ trigger_data->link_speed = SPEED_UNKNOWN;
switch (evt) {
case NETDEV_CHANGENAME:
- trigger_data->carrier_link_up = netif_carrier_ok(dev);
+ get_device_state(trigger_data);
fallthrough;
case NETDEV_REGISTER:
if (trigger_data->net_dev)
@@ -384,7 +441,7 @@ static int netdev_trig_notify(struct not
break;
case NETDEV_UP:
case NETDEV_CHANGE:
- trigger_data->carrier_link_up = netif_carrier_ok(dev);
+ get_device_state(trigger_data);
break;
}
@@ -427,7 +484,10 @@ static void netdev_trig_work(struct work
if (trigger_data->last_activity != new_activity) {
led_stop_software_blink(trigger_data->led_cdev);
- invert = test_bit(TRIGGER_NETDEV_LINK, &trigger_data->mode);
+ invert = test_bit(TRIGGER_NETDEV_LINK, &trigger_data->mode) ||
+ test_bit(TRIGGER_NETDEV_LINK_10, &trigger_data->mode) ||
+ test_bit(TRIGGER_NETDEV_LINK_100, &trigger_data->mode) ||
+ test_bit(TRIGGER_NETDEV_LINK_1000, &trigger_data->mode);
interval = jiffies_to_msecs(
atomic_read(&trigger_data->interval));
/* base state is ON (link present) */
--- a/include/linux/leds.h
+++ b/include/linux/leds.h
@@ -530,6 +530,9 @@ static inline void *led_get_trigger_data
/* Trigger specific enum */
enum led_trigger_netdev_modes {
TRIGGER_NETDEV_LINK = 0,
+ TRIGGER_NETDEV_LINK_10,
+ TRIGGER_NETDEV_LINK_100,
+ TRIGGER_NETDEV_LINK_1000,
TRIGGER_NETDEV_TX,
TRIGGER_NETDEV_RX,

View File

@ -0,0 +1,138 @@
From f22f95b9ff1551c9bab13104131929f33d51f23f Mon Sep 17 00:00:00 2001
From: Christian Marangi <ansuelsmth@gmail.com>
Date: Mon, 19 Jun 2023 22:46:59 +0200
Subject: [PATCH 2/3] leds: trigger: netdev: add additional specific link
duplex mode
Add additional modes for specific link duplex. Use ethtool APIs to get the
current link duplex and enable the LED accordingly. Under netdev event
handler the rtnl lock is already held and is not needed to be set to
access ethtool APIs.
This is especially useful for PHY and Switch that supports LEDs hw
control for specific link duplex.
Add additional modes:
- half_duplex: Turn on LED when link is half duplex
- full_duplex: Turn on LED when link is full duplex
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Lee Jones <lee@kernel.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
drivers/leds/trigger/ledtrig-netdev.c | 27 +++++++++++++++++++++++++--
include/linux/leds.h | 2 ++
2 files changed, 27 insertions(+), 2 deletions(-)
--- a/drivers/leds/trigger/ledtrig-netdev.c
+++ b/drivers/leds/trigger/ledtrig-netdev.c
@@ -55,6 +55,7 @@ struct led_netdev_data {
unsigned long mode;
int link_speed;
+ u8 duplex;
bool carrier_link_up;
bool hw_control;
@@ -98,6 +99,14 @@ static void set_baseline_state(struct le
trigger_data->link_speed == SPEED_1000)
blink_on = true;
+ if (test_bit(TRIGGER_NETDEV_HALF_DUPLEX, &trigger_data->mode) &&
+ trigger_data->duplex == DUPLEX_HALF)
+ blink_on = true;
+
+ if (test_bit(TRIGGER_NETDEV_FULL_DUPLEX, &trigger_data->mode) &&
+ trigger_data->duplex == DUPLEX_FULL)
+ blink_on = true;
+
if (blink_on)
led_set_brightness(led_cdev,
led_cdev->blink_brightness);
@@ -190,8 +199,10 @@ static void get_device_state(struct led_
if (!trigger_data->carrier_link_up)
return;
- if (!__ethtool_get_link_ksettings(trigger_data->net_dev, &cmd))
+ if (!__ethtool_get_link_ksettings(trigger_data->net_dev, &cmd)) {
trigger_data->link_speed = cmd.base.speed;
+ trigger_data->duplex = cmd.base.duplex;
+ }
}
static ssize_t device_name_show(struct device *dev,
@@ -230,6 +241,7 @@ static int set_device_name(struct led_ne
trigger_data->carrier_link_up = false;
trigger_data->link_speed = SPEED_UNKNOWN;
+ trigger_data->duplex = DUPLEX_UNKNOWN;
if (trigger_data->net_dev != NULL) {
rtnl_lock();
get_device_state(trigger_data);
@@ -274,6 +286,8 @@ static ssize_t netdev_led_attr_show(stru
case TRIGGER_NETDEV_LINK_10:
case TRIGGER_NETDEV_LINK_100:
case TRIGGER_NETDEV_LINK_1000:
+ case TRIGGER_NETDEV_HALF_DUPLEX:
+ case TRIGGER_NETDEV_FULL_DUPLEX:
case TRIGGER_NETDEV_TX:
case TRIGGER_NETDEV_RX:
bit = attr;
@@ -302,6 +316,8 @@ static ssize_t netdev_led_attr_store(str
case TRIGGER_NETDEV_LINK_10:
case TRIGGER_NETDEV_LINK_100:
case TRIGGER_NETDEV_LINK_1000:
+ case TRIGGER_NETDEV_HALF_DUPLEX:
+ case TRIGGER_NETDEV_FULL_DUPLEX:
case TRIGGER_NETDEV_TX:
case TRIGGER_NETDEV_RX:
bit = attr;
@@ -348,6 +364,8 @@ DEFINE_NETDEV_TRIGGER(link, TRIGGER_NETD
DEFINE_NETDEV_TRIGGER(link_10, TRIGGER_NETDEV_LINK_10);
DEFINE_NETDEV_TRIGGER(link_100, TRIGGER_NETDEV_LINK_100);
DEFINE_NETDEV_TRIGGER(link_1000, TRIGGER_NETDEV_LINK_1000);
+DEFINE_NETDEV_TRIGGER(half_duplex, TRIGGER_NETDEV_HALF_DUPLEX);
+DEFINE_NETDEV_TRIGGER(full_duplex, TRIGGER_NETDEV_FULL_DUPLEX);
DEFINE_NETDEV_TRIGGER(tx, TRIGGER_NETDEV_TX);
DEFINE_NETDEV_TRIGGER(rx, TRIGGER_NETDEV_RX);
@@ -394,6 +412,8 @@ static struct attribute *netdev_trig_att
&dev_attr_link_10.attr,
&dev_attr_link_100.attr,
&dev_attr_link_1000.attr,
+ &dev_attr_full_duplex.attr,
+ &dev_attr_half_duplex.attr,
&dev_attr_rx.attr,
&dev_attr_tx.attr,
&dev_attr_interval.attr,
@@ -425,6 +445,7 @@ static int netdev_trig_notify(struct not
trigger_data->carrier_link_up = false;
trigger_data->link_speed = SPEED_UNKNOWN;
+ trigger_data->duplex = DUPLEX_UNKNOWN;
switch (evt) {
case NETDEV_CHANGENAME:
get_device_state(trigger_data);
@@ -487,7 +508,9 @@ static void netdev_trig_work(struct work
invert = test_bit(TRIGGER_NETDEV_LINK, &trigger_data->mode) ||
test_bit(TRIGGER_NETDEV_LINK_10, &trigger_data->mode) ||
test_bit(TRIGGER_NETDEV_LINK_100, &trigger_data->mode) ||
- test_bit(TRIGGER_NETDEV_LINK_1000, &trigger_data->mode);
+ test_bit(TRIGGER_NETDEV_LINK_1000, &trigger_data->mode) ||
+ test_bit(TRIGGER_NETDEV_HALF_DUPLEX, &trigger_data->mode) ||
+ test_bit(TRIGGER_NETDEV_FULL_DUPLEX, &trigger_data->mode);
interval = jiffies_to_msecs(
atomic_read(&trigger_data->interval));
/* base state is ON (link present) */
--- a/include/linux/leds.h
+++ b/include/linux/leds.h
@@ -533,6 +533,8 @@ enum led_trigger_netdev_modes {
TRIGGER_NETDEV_LINK_10,
TRIGGER_NETDEV_LINK_100,
TRIGGER_NETDEV_LINK_1000,
+ TRIGGER_NETDEV_HALF_DUPLEX,
+ TRIGGER_NETDEV_FULL_DUPLEX,
TRIGGER_NETDEV_TX,
TRIGGER_NETDEV_RX,

View File

@ -0,0 +1,45 @@
From b655892ffd6d89b0c7407e099c40dbde82ee3f03 Mon Sep 17 00:00:00 2001
From: Christian Marangi <ansuelsmth@gmail.com>
Date: Mon, 19 Jun 2023 22:47:00 +0200
Subject: [PATCH 3/3] leds: trigger: netdev: expose hw_control status via sysfs
Expose hw_control status via sysfs for the netdev trigger to give
userspace better understanding of the current state of the trigger and
the LED.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Acked-by: Lee Jones <lee@kernel.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
drivers/leds/trigger/ledtrig-netdev.c | 11 +++++++++++
1 file changed, 11 insertions(+)
--- a/drivers/leds/trigger/ledtrig-netdev.c
+++ b/drivers/leds/trigger/ledtrig-netdev.c
@@ -406,6 +406,16 @@ static ssize_t interval_store(struct dev
static DEVICE_ATTR_RW(interval);
+static ssize_t hw_control_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ struct led_netdev_data *trigger_data = led_trigger_get_drvdata(dev);
+
+ return sprintf(buf, "%d\n", trigger_data->hw_control);
+}
+
+static DEVICE_ATTR_RO(hw_control);
+
static struct attribute *netdev_trig_attrs[] = {
&dev_attr_device_name.attr,
&dev_attr_link.attr,
@@ -417,6 +427,7 @@ static struct attribute *netdev_trig_att
&dev_attr_rx.attr,
&dev_attr_tx.attr,
&dev_attr_interval.attr,
+ &dev_attr_hw_control.attr,
NULL
};
ATTRIBUTE_GROUPS(netdev_trig);

View File

@ -0,0 +1,64 @@
From 2555f35a4f428a9bfdf09aa0459dbfdf59a24a9a Mon Sep 17 00:00:00 2001
From: Christian Marangi <ansuelsmth@gmail.com>
Date: Wed, 21 Jun 2023 11:54:09 +0200
Subject: [PATCH] net: dsa: qca8k: add support for additional modes for netdev
trigger
The QCA8K switch supports additional modes that can be handled in
hardware for the LED netdev trigger.
Add these additional modes to further support the Switch LEDs and
offload more blink modes.
Add additional modes:
- link_10
- link_100
- link_1000
- half_duplex
- full_duplex
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Link: https://lore.kernel.org/r/20230621095409.25859-1-ansuelsmth@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
drivers/net/dsa/qca/qca8k-leds.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
--- a/drivers/net/dsa/qca/qca8k-leds.c
+++ b/drivers/net/dsa/qca/qca8k-leds.c
@@ -68,6 +68,16 @@ qca8k_parse_netdev(unsigned long rules,
*offload_trigger |= QCA8K_LED_TX_BLINK_MASK;
if (test_bit(TRIGGER_NETDEV_RX, &rules))
*offload_trigger |= QCA8K_LED_RX_BLINK_MASK;
+ if (test_bit(TRIGGER_NETDEV_LINK_10, &rules))
+ *offload_trigger |= QCA8K_LED_LINK_10M_EN_MASK;
+ if (test_bit(TRIGGER_NETDEV_LINK_100, &rules))
+ *offload_trigger |= QCA8K_LED_LINK_100M_EN_MASK;
+ if (test_bit(TRIGGER_NETDEV_LINK_1000, &rules))
+ *offload_trigger |= QCA8K_LED_LINK_1000M_EN_MASK;
+ if (test_bit(TRIGGER_NETDEV_HALF_DUPLEX, &rules))
+ *offload_trigger |= QCA8K_LED_HALF_DUPLEX_MASK;
+ if (test_bit(TRIGGER_NETDEV_FULL_DUPLEX, &rules))
+ *offload_trigger |= QCA8K_LED_FULL_DUPLEX_MASK;
if (rules && !*offload_trigger)
return -EOPNOTSUPP;
@@ -322,6 +332,16 @@ qca8k_cled_hw_control_get(struct led_cla
set_bit(TRIGGER_NETDEV_TX, rules);
if (val & QCA8K_LED_RX_BLINK_MASK)
set_bit(TRIGGER_NETDEV_RX, rules);
+ if (val & QCA8K_LED_LINK_10M_EN_MASK)
+ set_bit(TRIGGER_NETDEV_LINK_10, rules);
+ if (val & QCA8K_LED_LINK_100M_EN_MASK)
+ set_bit(TRIGGER_NETDEV_LINK_100, rules);
+ if (val & QCA8K_LED_LINK_1000M_EN_MASK)
+ set_bit(TRIGGER_NETDEV_LINK_1000, rules);
+ if (val & QCA8K_LED_HALF_DUPLEX_MASK)
+ set_bit(TRIGGER_NETDEV_HALF_DUPLEX, rules);
+ if (val & QCA8K_LED_FULL_DUPLEX_MASK)
+ set_bit(TRIGGER_NETDEV_FULL_DUPLEX, rules);
return 0;
}

View File

@ -199,7 +199,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
bool
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -432,7 +432,7 @@ config NET_DEVLINK
@@ -430,7 +430,7 @@ config NET_DEVLINK
default n
config PAGE_POOL

View File

@ -26,7 +26,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
* @name: name of the struct -- the string is not copied internally
--- a/net/Makefile
+++ b/net/Makefile
@@ -52,7 +52,7 @@ obj-$(CONFIG_TIPC) += tipc/
@@ -51,7 +51,7 @@ obj-$(CONFIG_TIPC) += tipc/
obj-$(CONFIG_NETLABEL) += netlabel/
obj-$(CONFIG_IUCV) += iucv/
obj-$(CONFIG_SMC) += smc/

View File

@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/* Specifies the type of the struct net_device::ml_priv pointer */
enum netdev_ml_priv_type {
@@ -2015,6 +2020,7 @@ struct net_device {
@@ -2014,6 +2019,7 @@ struct net_device {
/* Read-mostly cache-line for fast-path access */
unsigned int flags;
unsigned int priv_flags;
@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
const struct net_device_ops *netdev_ops;
int ifindex;
unsigned short gflags;
@@ -2075,6 +2081,11 @@ struct net_device {
@@ -2074,6 +2080,11 @@ struct net_device {
const struct tlsdev_ops *tlsdev_ops;
#endif
@ -58,7 +58,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
const struct header_ops *header_ops;
unsigned char operstate;
@@ -2149,6 +2160,10 @@ struct net_device {
@@ -2145,6 +2156,10 @@ struct net_device {
struct mctp_dev __rcu *mctp_ptr;
#endif

View File

@ -29,7 +29,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
#define QUECTEL_VENDOR_ID 0x2c7c
/* These Quectel products use Quectel's vendor ID */
@@ -1169,6 +1171,11 @@ static const struct usb_device_id option
@@ -1173,6 +1175,11 @@ static const struct usb_device_id option
.driver_info = ZLP },
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
.driver_info = RSVD(4) },

View File

@ -29,7 +29,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
#define QUECTEL_VENDOR_ID 0x2c7c
/* These Quectel products use Quectel's vendor ID */
@@ -1169,6 +1171,11 @@ static const struct usb_device_id option
@@ -1173,6 +1175,11 @@ static const struct usb_device_id option
.driver_info = ZLP },
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
.driver_info = RSVD(4) },

View File

@ -9,7 +9,7 @@ Acked-by: Rob Landley <rob@landley.net>
---
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1100,9 +1100,6 @@ config FW_ARC
@@ -1101,9 +1101,6 @@ config FW_ARC
config ARCH_MAY_HAVE_PC_FDC
bool
@ -19,7 +19,7 @@ Acked-by: Rob Landley <rob@landley.net>
config CEVT_BCM1480
bool
@@ -3182,6 +3179,18 @@ choice
@@ -3183,6 +3180,18 @@ choice
bool "Extend builtin kernel arguments with bootloader arguments"
endchoice

View File

@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -2101,6 +2101,8 @@ struct net_device {
@@ -2100,6 +2100,8 @@ struct net_device {
struct netdev_hw_addr_list mc;
struct netdev_hw_addr_list dev_addrs;

View File

@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/**
* napi_disable - prevent NAPI from scheduling
@@ -3368,6 +3369,7 @@ struct softnet_data {
@@ -3364,6 +3365,7 @@ struct softnet_data {
unsigned int processed;
unsigned int time_squeeze;
unsigned int received_rps;
@ -162,7 +162,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
void netif_napi_add(struct net_device *dev, struct napi_struct *napi,
int (*poll)(struct napi_struct *, int), int weight)
{
@@ -11371,6 +11446,9 @@ static int dev_cpu_dead(unsigned int old
@@ -11369,6 +11444,9 @@ static int dev_cpu_dead(unsigned int old
raise_softirq_irqoff(NET_TX_SOFTIRQ);
local_irq_enable();
@ -172,7 +172,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#ifdef CONFIG_RPS
remsd = oldsd->rps_ipi_list;
oldsd->rps_ipi_list = NULL;
@@ -11710,6 +11788,7 @@ static int __init net_dev_init(void)
@@ -11708,6 +11786,7 @@ static int __init net_dev_init(void)
sd->cpu = i;
#endif

View File

@ -9,7 +9,7 @@ Acked-by: Rob Landley <rob@landley.net>
---
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1032,9 +1032,6 @@ config FW_ARC
@@ -1033,9 +1033,6 @@ config FW_ARC
config ARCH_MAY_HAVE_PC_FDC
bool
@ -19,7 +19,7 @@ Acked-by: Rob Landley <rob@landley.net>
config CEVT_BCM1480
bool
@@ -3089,6 +3086,18 @@ choice
@@ -3090,6 +3087,18 @@ choice
bool "Extend builtin kernel arguments with bootloader arguments"
endchoice

View File

@ -15,7 +15,7 @@ Signed-off-by: Stefan Koch <stefan.koch10@gmail.com>
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -2429,6 +2429,12 @@ config MIPS_VPE_LOADER
@@ -2430,6 +2430,12 @@ config MIPS_VPE_LOADER
Includes a loader for loading an elf relocatable object
onto another VPE and running it.

View File

@ -854,7 +854,7 @@ Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
+};
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -7526,6 +7526,14 @@ F: drivers/ptp/ptp_qoriq.c
@@ -7519,6 +7519,14 @@ F: drivers/ptp/ptp_qoriq.c
F: drivers/ptp/ptp_qoriq_debugfs.c
F: include/linux/fsl/ptp_qoriq.h

View File

@ -0,0 +1,288 @@
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/dts-v1/;
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>
#include "mt7986b.dtsi"
/ {
#address-cells = <0x2>;
#size-cells = <0x2>;
model = "Netgear WAX220";
compatible = "netgear,wax220", "mediatek,mt7986b-spim-snand-rfb";
aliases {
serial0 = &uart0;
led-boot = &led_power_blue;
led-failsafe = &led_power_amber;
led-running = &led_power_green;
led-upgrade = &led_power_amber;
};
gpio-keys {
compatible = "gpio-keys";
reset {
gpios = <&pio 9 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
label = "reset";
};
};
chosen {
stdout-path = "serial0:115200n8";
};
leds {
compatible = "gpio-leds";
wlan5g_green {
gpios = <&pio 12 GPIO_ACTIVE_LOW>;
label = "green:wlan5g";
};
led_power_amber: power_amber {
gpios = <&pio 15 GPIO_ACTIVE_LOW>;
label = "amber:power";
};
wlan2g_green {
gpios = <&pio 19 GPIO_ACTIVE_HIGH>;
label = "green:wlan2g";
};
led_power_blue: power_blue {
gpios = <&pio 7 GPIO_ACTIVE_HIGH>;
label = "blue:power";
};
led_power_green: power_green {
gpios = <&pio 10 GPIO_ACTIVE_LOW>;
label = "green:power";
};
wlan2g_blue {
gpios = <&pio 1 GPIO_ACTIVE_LOW>;
label = "blue:wlan2g";
};
lan_green {
gpios = <&pio 22 GPIO_ACTIVE_HIGH>;
label = "green:lan";
};
lan_amber {
gpios = <&pio 13 GPIO_ACTIVE_LOW>;
label = "amber:lan";
};
wlan5g_blue {
gpios = <&pio 2 GPIO_ACTIVE_LOW>;
label = "blue:wlan5g";
};
};
};
&crypto {
status = "okay";
};
&eth {
status = "okay";
gmac1: mac@1 {
compatible = "mediatek,eth-mac";
reg = <1>;
phy-handle = <&phy6>;
phy-mode = "2500base-x";
};
mdio: mdio-bus {
#address-cells = <1>;
#size-cells = <0>;
};
};
&mdio {
#address-cells = <1>;
#size-cells = <0>;
phy6: ethernet-phy@6 {
reg = <6>;
reset-assert-us = <100000>;
reset-deassert-us = <100000>;
reset-gpios = <&pio 6 GPIO_ACTIVE_LOW>;
interrupt-controller;
#interrupt-cells = <1>;
interrupt-parent = <&pio>;
interrupts = <46 IRQ_TYPE_LEVEL_HIGH>;
};
};
&pio {
spi_flash_pins: spi-flash-pins-33-to-38 {
mux {
function = "spi";
groups = "spi0", "spi0_wp_hold";
};
conf-pu {
pins = "SPI2_CS", "SPI2_HOLD", "SPI2_WP";
drive-strength = <8>;
mediatek,pull-up-adv = <0>; /* bias-disable */
};
conf-pd {
pins = "SPI2_CLK", "SPI2_MOSI", "SPI2_MISO";
drive-strength = <8>;
mediatek,pull-down-adv = <0>; /* bias-disable */
};
};
wf_2g_5g_pins: wf_2g_5g-pins {
mux {
function = "wifi";
groups = "wf_2g", "wf_5g";
};
conf {
pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
"WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
"WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
"WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
"WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
"WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
"WF1_TOP_CLK", "WF1_TOP_DATA";
drive-strength = <4>;
};
};
wf_dbdc_pins: wf-dbdc-pins {
mux {
function = "wifi";
groups = "wf_dbdc";
};
conf {
pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
"WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
"WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
"WF0_TOP_CLK", "WF0_TOP_DATA";
drive-strength = <4>;
};
};
};
&spi0 {
pinctrl-names = "default";
pinctrl-0 = <&spi_flash_pins>;
status = "okay";
spi_nand_flash: flash@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "spi-nand";
reg = <0>;
spi-max-frequency = <20000000>;
spi-tx-buswidth = <4>;
spi-rx-buswidth = <4>;
partitions: partitions {
#address-cells = <0x1>;
#size-cells = <0x1>;
compatible = "fixed-partitions";
partition@5fc0000 {
label = "Traffic";
reg = <0x5fc0000 0x200000>;
};
partition@63c0000 {
label = "NTGRcryptD";
reg = <0x63c0000 0x500000>;
};
partition@580000 {
label = "ubi";
reg = <0x580000 0x5140000>;
};
factory: partition@180000 {
label = "Factory";
reg = <0x180000 0x200000>;
};
partition@69c0000 {
label = "User_data";
reg = <0x69c0000 0x640000>;
};
partition@100000 {
label = "u-boot-env";
reg = <0x100000 0x80000>;
};
partition@68c0000 {
label = "LOG";
reg = <0x68c0000 0x100000>;
};
partition@5ac0000 {
label = "POT";
reg = <0x5ac0000 0x100000>;
};
partition@0 {
label = "BL2";
read-only;
reg = <0x0 0x100000>;
};
partition@5bc0000 {
label = "Language";
reg = <0x5bc0000 0x400000>;
};
partition@61c0000 {
label = "Cert";
reg = <0x61c0000 0x100000>;
};
partition@380000 {
label = "FIP";
reg = <0x380000 0x200000>;
};
partition@56c0000 {
label = "RAE";
reg = <0x56c0000 0x400000>;
};
partition@62c0000 {
label = "NTGRcryptK";
reg = <0x62c0000 0x100000>;
};
};
};
};
&trng {
status = "okay";
};
&uart0 {
status = "okay";
};
&watchdog {
status = "okay";
};
&wifi {
status = "okay";
pinctrl-names = "default", "dbdc";
pinctrl-0 = <&wf_2g_5g_pins>;
pinctrl-1 = <&wf_dbdc_pins>;
mediatek,mtd-eeprom = <&factory 0x0>;
};

View File

@ -14,6 +14,11 @@ livinet,zr-3020)
ucidef_set_led_netdev "wlan2g" "WLAN2G" "blue:wlan2g" "phy0-ap0"
ucidef_set_led_netdev "wlan5g" "WLAN5G" "blue:wlan5g" "phy1-ap0"
;;
netgear,wax220)
ucidef_set_led_netdev "eth0" "LAN" "green:lan" "eth0"
ucidef_set_led_netdev "wlan2g" "WLAN2G" "blue:wlan2g" "phy0-ap0"
ucidef_set_led_netdev "wlan5g" "WLAN5G" "blue:wlan5g" "phy1-ap0"
;;
xiaomi,redmi-router-ax6000|\
xiaomi,redmi-router-ax6000-stock|\
xiaomi,redmi-router-ax6000-ubootmod)

View File

@ -11,6 +11,9 @@ mediatek_setup_interfaces()
asus,tuf-ax4200)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" eth1
;;
netgear,wax220)
ucidef_set_interface_lan "eth0"
;;
bananapi,bpi-r3)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 sfp2" "eth1 wan"
;;
@ -67,6 +70,10 @@ mediatek_setup_macs()
bananapi,bpi-r3)
wan_mac=$(macaddr_add $(cat /sys/class/net/eth0/address) 1)
;;
netgear,wax220)
lan_mac=$(mtd_get_mac_ascii u-boot-env mac)
label_mac=$lan_mac
;;
qihoo,360t7)
lan_mac=$(mtd_get_mac_ascii factory lanMac)
wan_mac=$(macaddr_add "$lan_mac" 1)

View File

@ -36,6 +36,11 @@ case "$board" in
addr=$(mtd_get_mac_ascii config2 wifi5gmac)
[ "$PHYNBR" = "1" ] && echo $macaddr > /sys${DEVPATH}/macaddress
;;
netgear,wax220)
hw_mac_addr=$(mtd_get_mac_ascii u-boot-env mac)
[ "$PHYNBR" = "0" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 3 > /sys${DEVPATH}/macaddress
;;
qihoo,360t7)
addr=$(mtd_get_mac_ascii factory lanMac)
[ "$PHYNBR" = "0" ] && macaddr_add $addr 2 > /sys${DEVPATH}/macaddress

View File

@ -197,6 +197,22 @@ define Device/livinet_zr-3020
endef
TARGET_DEVICES += livinet_zr-3020
define Device/netgear_wax220
DEVICE_VENDOR := Netgear
DEVICE_MODEL := WAX220
DEVICE_DTS := mt7986b-netgear-wax220
DEVICE_DTS_DIR := ../dts
DEVICE_PACKAGES := kmod-mt7986-firmware mt7986-wo-firmware
IMAGES := sysupgrade.bin
KERNEL_IN_UBI := 1
KERNEL := kernel-bin | lzma | \
fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb
KERNEL_INITRAMFS := kernel-bin | lzma | \
fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
endef
TARGET_DEVICES += netgear_wax220
define Device/mediatek_mt7986a-rfb-nand
DEVICE_VENDOR := MediaTek
DEVICE_MODEL := MT7986 rfba AP (NAND)

View File

@ -21,7 +21,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -11797,6 +11797,15 @@ S: Maintained
@@ -11790,6 +11790,15 @@ S: Maintained
F: drivers/net/pcs/pcs-mtk-lynxi.c
F: include/linux/pcs/pcs-mtk-lynxi.h

View File

@ -16,7 +16,7 @@ Cc: Robert Marko <robert.marko@sartura.hr>
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9063,6 +9063,22 @@ F: include/net/nl802154.h
@@ -9056,6 +9056,22 @@ F: include/net/nl802154.h
F: net/ieee802154/
F: net/mac802154/

View File

@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1180,6 +1180,10 @@ config MIPS_MSC
@@ -1181,6 +1181,10 @@ config MIPS_MSC
config SYNC_R4K
bool

View File

@ -0,0 +1,16 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "mt7621_zbtlink_zbt-wg1608.dtsi"
/ {
compatible = "zbtlink,zbt-wg1608-32m", "mediatek,mt7621-soc";
model = "Zbtlink ZBT-WG1608 (32M)";
};
&flash0 {
broken-flash-reset;
};
&firmware {
reg = <0x50000 0x1fb0000>;
};

View File

@ -61,7 +61,7 @@
&spi0 {
status = "okay";
flash@0 {
flash0: flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <50000000>;

View File

@ -601,6 +601,8 @@ define Device/sunvalley_filehub_common
IMAGES += kernel.bin rootfs.bin
IMAGE/kernel.bin := append-loader-okli $(1) | check-size 64k
IMAGE/rootfs.bin := $$(sysupgrade_bin) | check-size
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | \
check-size 7744k | append-metadata
endef
define Device/hootoo_ht-tm05

View File

@ -2725,6 +2725,18 @@ define Device/zbtlink_zbt-wg1608-16m
endef
TARGET_DEVICES += zbtlink_zbt-wg1608-16m
define Device/zbtlink_zbt-wg1608-32m
$(Device/dsa-migration)
$(Device/uimage-lzma-loader)
IMAGE_SIZE := 32448k
DEVICE_VENDOR := Zbtlink
DEVICE_MODEL := ZBT-WG1608
DEVICE_VARIANT := 32M
DEVICE_PACKAGES := kmod-sdhci-mt7620 kmod-mt7603 kmod-mt7615e \
kmod-mt7663-firmware-ap kmod-usb3 kmod-usb-ledtrig-usbport
endef
TARGET_DEVICES += zbtlink_zbt-wg1608-32m
define Device/zbtlink_zbt-wg2626
$(Device/dsa-migration)
$(Device/uimage-lzma-loader)

View File

@ -17,7 +17,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -544,8 +544,28 @@ static int __init bootcmdline_scan_chose
@@ -545,8 +545,28 @@ static int __init bootcmdline_scan_chose
#endif /* CONFIG_OF_EARLY_FLATTREE */
@ -46,7 +46,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
bool dt_bootargs = false;
/*
@@ -559,6 +579,14 @@ static void __init bootcmdline_init(void
@@ -560,6 +580,14 @@ static void __init bootcmdline_init(void
}
/*

View File

@ -10,7 +10,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -686,7 +686,6 @@ static void __init arch_mem_init(char **
@@ -687,7 +687,6 @@ static void __init arch_mem_init(char **
mips_reserve_vmcore();
mips_parse_crashkernel();
@ -18,7 +18,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
/*
* In order to reduce the possibility of kernel panic when failed to
@@ -803,6 +802,7 @@ void __init setup_arch(char **cmdline_p)
@@ -804,6 +803,7 @@ void __init setup_arch(char **cmdline_p)
cpu_cache_init();
paging_init();

View File

@ -32,7 +32,7 @@ Signed-off-by: Guenter Roeck <linux@roeck-us.net>
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -15902,6 +15902,13 @@ S: Maintained
@@ -15895,6 +15895,13 @@ S: Maintained
F: include/sound/rt*.h
F: sound/soc/codecs/rt*

View File

@ -25,7 +25,7 @@ Submitted-by: Birger Koblitz <git@birger-koblitz.de>
platform-$(CONFIG_SGI_IP28) += sgi-ip22/
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1053,8 +1053,58 @@ config NLM_XLP_BOARD
@@ -1054,8 +1054,58 @@ config NLM_XLP_BOARD
This board is based on Netlogic XLP Processor.
Say Y here if you have a XLP based board.