Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
commit
3394ebf301
@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=drv_tapi
|
||||
PKG_VERSION:=3.13.0
|
||||
PKG_RELEASE:=4
|
||||
PKG_RELEASE:=5
|
||||
|
||||
PKG_SOURCE:=drv_tapi-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL:=@OPENWRT
|
||||
|
||||
@ -0,0 +1,52 @@
|
||||
--- a/src/drv_tapi.h
|
||||
+++ b/src/drv_tapi.h
|
||||
@@ -25,6 +25,7 @@
|
||||
#include <lib_bufferpool.h>
|
||||
#include "drv_tapi_io.h"
|
||||
#include "drv_tapi_event.h"
|
||||
+#include <linux/module.h>
|
||||
|
||||
|
||||
/* ============================= */
|
||||
--- a/src/drv_tapi_dial.c
|
||||
+++ b/src/drv_tapi_dial.c
|
||||
@@ -20,6 +20,19 @@
|
||||
#include "drv_tapi.h"
|
||||
#include "drv_tapi_errno.h"
|
||||
|
||||
+
|
||||
+
|
||||
+static unsigned int min_digit_low = TAPI_MIN_DIGIT_LOW;
|
||||
+static unsigned int max_digit_low = TAPI_MAX_DIGIT_LOW;
|
||||
+static unsigned int min_digit_high = TAPI_MIN_DIGIT_HIGH;
|
||||
+static unsigned int max_digit_high = TAPI_MAX_DIGIT_HIGH;
|
||||
+static unsigned int min_interdigit = TAPI_MIN_INTERDIGIT;
|
||||
+module_param(min_digit_low, uint, 0);
|
||||
+module_param(max_digit_low, uint, 0);
|
||||
+module_param(min_digit_high, uint, 0);
|
||||
+module_param(max_digit_high, uint, 0);
|
||||
+module_param(min_interdigit, uint, 0);
|
||||
+
|
||||
/*lint -save -esym(749, TAPI_HOOK_STATE_PULSE_H_FLASH_VAL) */
|
||||
/* ============================= */
|
||||
/* Local macros and definitions */
|
||||
@@ -408,14 +421,14 @@ IFX_int32_t IFX_TAPI_Dial_Initialise(TAP
|
||||
}
|
||||
}
|
||||
/* set default values for the validation timers */
|
||||
- pTapiDialData->TapiDigitLowTime.nMinTime = TAPI_MIN_DIGIT_LOW;
|
||||
- pTapiDialData->TapiDigitLowTime.nMaxTime = TAPI_MAX_DIGIT_LOW;
|
||||
- pTapiDialData->TapiDigitHighTime.nMinTime = TAPI_MIN_DIGIT_HIGH;
|
||||
- pTapiDialData->TapiDigitHighTime.nMaxTime = TAPI_MAX_DIGIT_HIGH;
|
||||
+ pTapiDialData->TapiDigitLowTime.nMinTime = min_digit_low;
|
||||
+ pTapiDialData->TapiDigitLowTime.nMaxTime = max_digit_low;
|
||||
+ pTapiDialData->TapiDigitHighTime.nMinTime = min_digit_high;
|
||||
+ pTapiDialData->TapiDigitHighTime.nMaxTime = max_digit_high;
|
||||
pTapiDialData->TapiHookFlashTime.nMinTime = TAPI_MIN_FLASH;
|
||||
pTapiDialData->TapiHookFlashTime.nMaxTime = TAPI_MAX_FLASH;
|
||||
pTapiDialData->TapiHookFlashMakeTime.nMinTime = TAPI_MIN_FLASH_MAKE;
|
||||
- pTapiDialData->TapiInterDigitTime.nMinTime = TAPI_MIN_INTERDIGIT;
|
||||
+ pTapiDialData->TapiInterDigitTime.nMinTime = min_interdigit;
|
||||
pTapiDialData->TapiHookOffTime.nMinTime = TAPI_MIN_OFF_HOOK;
|
||||
pTapiDialData->TapiHookOnTime.nMinTime = TAPI_MIN_ON_HOOK;
|
||||
/* start hook state FSM in onhook state */
|
||||
@ -1,12 +1,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=libtracefs
|
||||
PKG_VERSION:=1.5.0
|
||||
PKG_VERSION:=1.6.1
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/libs/libtrace/libtracefs.git/snapshot/
|
||||
PKG_HASH:=b796af4b6a0a6e6cd17ae150ed69adccc0b6401804e009b363fe7d982b04a58e
|
||||
PKG_HASH:=215a5182ee7d5a813ff84d290bb8988aa4c04cc16bb837780f61b0f5bf7494ab
|
||||
|
||||
PKG_MAINTAINER:=Nick Hainke <vincent@systemli.org>
|
||||
|
||||
|
||||
@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=lldpd
|
||||
PKG_VERSION:=1.0.15
|
||||
PKG_VERSION:=1.0.16
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/lldpd/lldpd/tar.gz/$(PKG_VERSION)?
|
||||
PKG_HASH:=bdb1f9e29f61c3be99e421e88a431536c53e62f1ab7189a6d5b8e1d2d55d8899
|
||||
PKG_HASH:=9bc6154377b97187d96d5e22aa5c4946c6cbc85f1416149853cc0940639a77e5
|
||||
|
||||
PKG_MAINTAINER:=Stijn Tintel <stijn@linux-ipv6.be>
|
||||
PKG_LICENSE:=ISC
|
||||
|
||||
@ -118,7 +118,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
ð0 {
|
||||
ð0 { /* WAN interface, initialized last as eth1 */
|
||||
status = "okay";
|
||||
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
@ -133,12 +133,11 @@
|
||||
};
|
||||
};
|
||||
|
||||
ð1 {
|
||||
ð1 { /* LAN interface, initialized first as eth0 */
|
||||
status = "okay";
|
||||
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <(-1)>;
|
||||
};
|
||||
|
||||
&wmac {
|
||||
|
||||
@ -243,9 +243,8 @@
|
||||
&wmac {
|
||||
status = "okay";
|
||||
|
||||
nvmem-cells = <&macaddr_caldata_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
qca,no-eeprom;
|
||||
nvmem-cells = <&macaddr_caldata_0>, <&cal_art_1000>;
|
||||
nvmem-cell-names = "mac-address", "calibration";
|
||||
};
|
||||
|
||||
&pcie {
|
||||
@ -254,9 +253,8 @@
|
||||
ath9k: wifi@0,0 {
|
||||
compatible = "pci168c,0033";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
nvmem-cells = <&macaddr_caldata_c>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
qca,no-eeprom;
|
||||
nvmem-cells = <&macaddr_caldata_c>, <&cal_art_5000>;
|
||||
nvmem-cell-names = "mac-address", "calibration";
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
};
|
||||
@ -274,4 +272,12 @@
|
||||
macaddr_caldata_c: macaddr@c {
|
||||
reg = <0xc 0x6>;
|
||||
};
|
||||
|
||||
cal_art_1000: cal@1000 {
|
||||
reg = <0x1000 0x440>;
|
||||
};
|
||||
|
||||
cal_art_5000: cal@5000 {
|
||||
reg = <0x5000 0x440>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -50,16 +50,9 @@
|
||||
};
|
||||
|
||||
&ath9k {
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <1>;
|
||||
};
|
||||
|
||||
&wmac {
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
ð1 {
|
||||
status = "okay";
|
||||
|
||||
@ -83,13 +76,3 @@
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <2>;
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_1fc00: macaddr@1fc00 {
|
||||
reg = <0x1fc00 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -75,14 +75,7 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ath9k {
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&wmac {
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
mac-address-increment = <(-1)>;
|
||||
};
|
||||
|
||||
@ -117,13 +110,3 @@
|
||||
phy-mode = "rgmii";
|
||||
phy-handle = <&phy0>;
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_1fc00: macaddr@1fc00 {
|
||||
reg = <0x1fc00 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -106,14 +106,39 @@
|
||||
ath9k: wifi@0,0 {
|
||||
compatible = "pci168c,0033";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
qca,no-eeprom;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>, <&cal_art_5000>;
|
||||
nvmem-cell-names = "mac-address", "calibration";
|
||||
};
|
||||
};
|
||||
|
||||
&wmac {
|
||||
status = "okay";
|
||||
|
||||
mtd-cal-data = <&art 0x1000>;
|
||||
nvmem-cells = <&macaddr_uboot_1fc00>, <&cal_art_1000>;
|
||||
nvmem-cell-names = "mac-address", "calibration";
|
||||
};
|
||||
|
||||
&uboot {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_uboot_1fc00: macaddr@1fc00 {
|
||||
reg = <0x1fc00 0x6>;
|
||||
};
|
||||
};
|
||||
|
||||
&art {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
cal_art_1000: cal@1000 {
|
||||
reg = <0x1000 0x440>;
|
||||
};
|
||||
|
||||
cal_art_5000: cal@5000 {
|
||||
reg = <0x5000 0x440>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -209,9 +209,8 @@
|
||||
&wmac {
|
||||
status = "okay";
|
||||
|
||||
nvmem-cells = <&macaddr_caldata_0>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
qca,no-eeprom;
|
||||
nvmem-cells = <&macaddr_caldata_0>, <&cal_art_1000>;
|
||||
nvmem-cell-names = "mac-address", "calibration";
|
||||
};
|
||||
|
||||
&pcie {
|
||||
@ -221,9 +220,8 @@
|
||||
/* chip is AR9580, override bogus PCI ID 168c:abcd */
|
||||
compatible = "pci168c,0033";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
nvmem-cells = <&macaddr_caldata_c>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
qca,no-eeprom;
|
||||
nvmem-cells = <&macaddr_caldata_c>, <&cal_art_5000>;
|
||||
nvmem-cell-names = "mac-address", "calibration";
|
||||
qca,gpio-mask=<0xf6ff>; /* unmask pin 9 for RFKILL button */
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
@ -250,4 +248,12 @@
|
||||
macaddr_caldata_c: macaddr@c {
|
||||
reg = <0xc 0x6>;
|
||||
};
|
||||
|
||||
cal_art_1000: cal@1000 {
|
||||
reg = <0x1000 0x440>;
|
||||
};
|
||||
|
||||
cal_art_5000: cal@5000 {
|
||||
reg = <0x5000 0x440>;
|
||||
};
|
||||
};
|
||||
|
||||
@ -89,11 +89,6 @@ case "$FIRMWARE" in
|
||||
engenius,ecb600|\
|
||||
mercury,mw4530r-v1|\
|
||||
ocedo,raccoon|\
|
||||
tplink,tl-wdr3500-v1|\
|
||||
tplink,tl-wdr3600-v1|\
|
||||
tplink,tl-wdr4300-v1|\
|
||||
tplink,tl-wdr4300-v1-il|\
|
||||
tplink,tl-wdr4310-v1|\
|
||||
ubnt,unifi-ap-pro|\
|
||||
watchguard,ap100|\
|
||||
watchguard,ap200|\
|
||||
|
||||
@ -43,6 +43,7 @@ define Device/ubnt_edgeswitch-8xp
|
||||
$(Device/ubnt-sw)
|
||||
DEVICE_MODEL := EdgeSwitch 8XP
|
||||
DEVICE_PACKAGES += kmod-switch-bcm53xx-mdio
|
||||
DEFAULT := n
|
||||
endef
|
||||
TARGET_DEVICES += ubnt_edgeswitch-8xp
|
||||
|
||||
|
||||
@ -807,7 +807,7 @@ TARGET_DEVICES += compex_wpj563
|
||||
|
||||
define Device/devolo_dlan-pro-1200plus-ac
|
||||
SOC := ar9344
|
||||
DEVICE_VENDOR := Devolo
|
||||
DEVICE_VENDOR := devolo
|
||||
DEVICE_MODEL := dLAN pro 1200+ WiFi ac
|
||||
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
|
||||
IMAGE_SIZE := 15872k
|
||||
@ -870,7 +870,7 @@ TARGET_DEVICES += devolo_dvl1750x
|
||||
|
||||
define Device/devolo_magic-2-wifi
|
||||
SOC := ar9344
|
||||
DEVICE_VENDOR := Devolo
|
||||
DEVICE_VENDOR := devolo
|
||||
DEVICE_MODEL := Magic 2 WiFi
|
||||
DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca988x-ct
|
||||
IMAGE_SIZE := 15872k
|
||||
|
||||
@ -12,29 +12,6 @@ case "$FIRMWARE" in
|
||||
8dev,rambutan)
|
||||
caldata_extract "caldata" 0x1000 0x800
|
||||
;;
|
||||
netgear,wndr3700-v4|\
|
||||
netgear,wndr4300|\
|
||||
netgear,wndr4300sw|\
|
||||
netgear,wndr4300tn|\
|
||||
netgear,wndr4300-v2|\
|
||||
netgear,wndr4500-v3)
|
||||
caldata_extract "caldata" 0x1000 0x440
|
||||
;;
|
||||
*)
|
||||
caldata_die "board $board is not supported yet"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
"ath9k-eeprom-pci-0000:00:00.0.bin")
|
||||
case $board in
|
||||
netgear,wndr3700-v4|\
|
||||
netgear,wndr4300|\
|
||||
netgear,wndr4300sw|\
|
||||
netgear,wndr4300tn|\
|
||||
netgear,wndr4300-v2|\
|
||||
netgear,wndr4500-v3)
|
||||
caldata_extract "caldata" 0x5000 0x440
|
||||
;;
|
||||
*)
|
||||
caldata_die "board $board is not supported yet"
|
||||
;;
|
||||
|
||||
@ -0,0 +1,68 @@
|
||||
From 16b1c4e01c89ba07367461e0bc4cb84993c2d027 Mon Sep 17 00:00:00 2001
|
||||
From: Jacky Chou <jackychou@asix.com.tw>
|
||||
Date: Mon, 15 Nov 2021 11:49:41 +0800
|
||||
Subject: [PATCH] net: usb: ax88179_178a: add TSO feature
|
||||
|
||||
On low-effciency embedded platforms, transmission performance is poor
|
||||
due to on Bulk-out with single packet.
|
||||
Adding TSO feature improves the transmission performance and reduces
|
||||
the number of interrupt caused by Bulk-out complete.
|
||||
|
||||
Reference to module, net: usb: aqc111.
|
||||
|
||||
Signed-off-by: Jacky Chou <jackychou@asix.com.tw>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/usb/ax88179_178a.c | 17 +++++++++++------
|
||||
1 file changed, 11 insertions(+), 6 deletions(-)
|
||||
|
||||
--- a/drivers/net/usb/ax88179_178a.c
|
||||
+++ b/drivers/net/usb/ax88179_178a.c
|
||||
@@ -1377,11 +1377,12 @@ static int ax88179_bind(struct usbnet *d
|
||||
dev->mii.phy_id = 0x03;
|
||||
dev->mii.supports_gmii = 1;
|
||||
|
||||
- dev->net->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
|
||||
- NETIF_F_RXCSUM;
|
||||
+ dev->net->features |= NETIF_F_SG | NETIF_F_IP_CSUM |
|
||||
+ NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM | NETIF_F_TSO;
|
||||
|
||||
- dev->net->hw_features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
|
||||
- NETIF_F_RXCSUM;
|
||||
+ dev->net->hw_features |= dev->net->features;
|
||||
+
|
||||
+ netif_set_gso_max_size(dev->net, 16384);
|
||||
|
||||
/* Enable checksum offload */
|
||||
*tmp = AX_RXCOE_IP | AX_RXCOE_TCP | AX_RXCOE_UDP |
|
||||
@@ -1587,17 +1588,19 @@ ax88179_tx_fixup(struct usbnet *dev, str
|
||||
{
|
||||
u32 tx_hdr1, tx_hdr2;
|
||||
int frame_size = dev->maxpacket;
|
||||
- int mss = skb_shinfo(skb)->gso_size;
|
||||
int headroom;
|
||||
void *ptr;
|
||||
|
||||
tx_hdr1 = skb->len;
|
||||
- tx_hdr2 = mss;
|
||||
+ tx_hdr2 = skb_shinfo(skb)->gso_size; /* Set TSO mss */
|
||||
if (((skb->len + 8) % frame_size) == 0)
|
||||
tx_hdr2 |= 0x80008000; /* Enable padding */
|
||||
|
||||
headroom = skb_headroom(skb) - 8;
|
||||
|
||||
+ if ((dev->net->features & NETIF_F_SG) && skb_linearize(skb))
|
||||
+ return NULL;
|
||||
+
|
||||
if ((skb_header_cloned(skb) || headroom < 0) &&
|
||||
pskb_expand_head(skb, headroom < 0 ? 8 : 0, 0, GFP_ATOMIC)) {
|
||||
dev_kfree_skb_any(skb);
|
||||
@@ -1608,6 +1611,8 @@ ax88179_tx_fixup(struct usbnet *dev, str
|
||||
put_unaligned_le32(tx_hdr1, ptr);
|
||||
put_unaligned_le32(tx_hdr2, ptr + 4);
|
||||
|
||||
+ usbnet_set_skb_tx_stats(skb, (skb_shinfo(skb)->gso_segs ?: 1), 0);
|
||||
+
|
||||
return skb;
|
||||
}
|
||||
|
||||
@ -0,0 +1,68 @@
|
||||
From 16b1c4e01c89ba07367461e0bc4cb84993c2d027 Mon Sep 17 00:00:00 2001
|
||||
From: Jacky Chou <jackychou@asix.com.tw>
|
||||
Date: Mon, 15 Nov 2021 11:49:41 +0800
|
||||
Subject: [PATCH] net: usb: ax88179_178a: add TSO feature
|
||||
|
||||
On low-effciency embedded platforms, transmission performance is poor
|
||||
due to on Bulk-out with single packet.
|
||||
Adding TSO feature improves the transmission performance and reduces
|
||||
the number of interrupt caused by Bulk-out complete.
|
||||
|
||||
Reference to module, net: usb: aqc111.
|
||||
|
||||
Signed-off-by: Jacky Chou <jackychou@asix.com.tw>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/usb/ax88179_178a.c | 17 +++++++++++------
|
||||
1 file changed, 11 insertions(+), 6 deletions(-)
|
||||
|
||||
--- a/drivers/net/usb/ax88179_178a.c
|
||||
+++ b/drivers/net/usb/ax88179_178a.c
|
||||
@@ -1377,11 +1377,12 @@ static int ax88179_bind(struct usbnet *d
|
||||
dev->mii.phy_id = 0x03;
|
||||
dev->mii.supports_gmii = 1;
|
||||
|
||||
- dev->net->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
|
||||
- NETIF_F_RXCSUM;
|
||||
+ dev->net->features |= NETIF_F_SG | NETIF_F_IP_CSUM |
|
||||
+ NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM | NETIF_F_TSO;
|
||||
|
||||
- dev->net->hw_features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
|
||||
- NETIF_F_RXCSUM;
|
||||
+ dev->net->hw_features |= dev->net->features;
|
||||
+
|
||||
+ netif_set_gso_max_size(dev->net, 16384);
|
||||
|
||||
/* Enable checksum offload */
|
||||
*tmp = AX_RXCOE_IP | AX_RXCOE_TCP | AX_RXCOE_UDP |
|
||||
@@ -1587,17 +1588,19 @@ ax88179_tx_fixup(struct usbnet *dev, str
|
||||
{
|
||||
u32 tx_hdr1, tx_hdr2;
|
||||
int frame_size = dev->maxpacket;
|
||||
- int mss = skb_shinfo(skb)->gso_size;
|
||||
int headroom;
|
||||
void *ptr;
|
||||
|
||||
tx_hdr1 = skb->len;
|
||||
- tx_hdr2 = mss;
|
||||
+ tx_hdr2 = skb_shinfo(skb)->gso_size; /* Set TSO mss */
|
||||
if (((skb->len + 8) % frame_size) == 0)
|
||||
tx_hdr2 |= 0x80008000; /* Enable padding */
|
||||
|
||||
headroom = skb_headroom(skb) - 8;
|
||||
|
||||
+ if ((dev->net->features & NETIF_F_SG) && skb_linearize(skb))
|
||||
+ return NULL;
|
||||
+
|
||||
if ((skb_header_cloned(skb) || headroom < 0) &&
|
||||
pskb_expand_head(skb, headroom < 0 ? 8 : 0, 0, GFP_ATOMIC)) {
|
||||
dev_kfree_skb_any(skb);
|
||||
@@ -1608,6 +1611,8 @@ ax88179_tx_fixup(struct usbnet *dev, str
|
||||
put_unaligned_le32(tx_hdr1, ptr);
|
||||
put_unaligned_le32(tx_hdr2, ptr + 4);
|
||||
|
||||
+ usbnet_set_skb_tx_stats(skb, (skb_shinfo(skb)->gso_segs ?: 1), 0);
|
||||
+
|
||||
return skb;
|
||||
}
|
||||
|
||||
@ -0,0 +1,39 @@
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Sat, 19 Nov 2022 18:48:42 +0100
|
||||
Subject: [PATCH] netfilter: nf_flow_table: add missing locking
|
||||
|
||||
nf_flow_table_block_setup and the driver TC_SETUP_FT call can modify the flow
|
||||
block cb list while they are being traversed elsewhere, causing a crash.
|
||||
Add a write lock around the calls to protect readers
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/net/netfilter/nf_flow_table_offload.c
|
||||
+++ b/net/netfilter/nf_flow_table_offload.c
|
||||
@@ -1015,6 +1015,7 @@ static int nf_flow_table_block_setup(str
|
||||
struct flow_block_cb *block_cb, *next;
|
||||
int err = 0;
|
||||
|
||||
+ down_write(&flowtable->flow_block_lock);
|
||||
switch (cmd) {
|
||||
case FLOW_BLOCK_BIND:
|
||||
list_splice(&bo->cb_list, &flowtable->flow_block.cb_list);
|
||||
@@ -1029,6 +1030,7 @@ static int nf_flow_table_block_setup(str
|
||||
WARN_ON_ONCE(1);
|
||||
err = -EOPNOTSUPP;
|
||||
}
|
||||
+ up_write(&flowtable->flow_block_lock);
|
||||
|
||||
return err;
|
||||
}
|
||||
@@ -1085,7 +1087,9 @@ static int nf_flow_table_offload_cmd(str
|
||||
|
||||
nf_flow_table_block_offload_init(bo, dev_net(dev), cmd, flowtable,
|
||||
extack);
|
||||
+ down_write(&flowtable->flow_block_lock);
|
||||
err = dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_FT, bo);
|
||||
+ up_write(&flowtable->flow_block_lock);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
@ -0,0 +1,39 @@
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Sat, 19 Nov 2022 18:48:42 +0100
|
||||
Subject: [PATCH] netfilter: nf_flow_table: add missing locking
|
||||
|
||||
nf_flow_table_block_setup and the driver TC_SETUP_FT call can modify the flow
|
||||
block cb list while they are being traversed elsewhere, causing a crash.
|
||||
Add a write lock around the calls to protect readers
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/net/netfilter/nf_flow_table_offload.c
|
||||
+++ b/net/netfilter/nf_flow_table_offload.c
|
||||
@@ -1074,6 +1074,7 @@ static int nf_flow_table_block_setup(str
|
||||
struct flow_block_cb *block_cb, *next;
|
||||
int err = 0;
|
||||
|
||||
+ down_write(&flowtable->flow_block_lock);
|
||||
switch (cmd) {
|
||||
case FLOW_BLOCK_BIND:
|
||||
list_splice(&bo->cb_list, &flowtable->flow_block.cb_list);
|
||||
@@ -1088,6 +1089,7 @@ static int nf_flow_table_block_setup(str
|
||||
WARN_ON_ONCE(1);
|
||||
err = -EOPNOTSUPP;
|
||||
}
|
||||
+ up_write(&flowtable->flow_block_lock);
|
||||
|
||||
return err;
|
||||
}
|
||||
@@ -1144,7 +1146,9 @@ static int nf_flow_table_offload_cmd(str
|
||||
|
||||
nf_flow_table_block_offload_init(bo, dev_net(dev), cmd, flowtable,
|
||||
extack);
|
||||
+ down_write(&flowtable->flow_block_lock);
|
||||
err = dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_FT, bo);
|
||||
+ up_write(&flowtable->flow_block_lock);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
@ -12,11 +12,12 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/core/flow_dissector.c
|
||||
+++ b/net/core/flow_dissector.c
|
||||
@@ -941,11 +941,13 @@ bool __skb_flow_dissect(const struct net
|
||||
@@ -940,12 +940,14 @@ bool __skb_flow_dissect(const struct net
|
||||
#if IS_ENABLED(CONFIG_NET_DSA)
|
||||
if (unlikely(skb->dev && netdev_uses_dsa(skb->dev) &&
|
||||
proto == htons(ETH_P_XDSA))) {
|
||||
const struct dsa_device_ops *ops;
|
||||
+ struct metadata_dst *md_dst = skb_metadata_dst(skb);
|
||||
const struct dsa_device_ops *ops;
|
||||
int offset = 0;
|
||||
|
||||
ops = skb->dev->dsa_ptr->tag_ops;
|
||||
@ -53,7 +54,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
+ if (md_dst && md_dst->type == METADATA_HW_PORT_MUX) {
|
||||
+ unsigned int port = md_dst->u.port_info.port_id;
|
||||
+
|
||||
+ skb_dst_set(skb, NULL);
|
||||
+ skb_dst_drop(skb);
|
||||
+ if (!skb_has_extensions(skb))
|
||||
+ skb->slow_gro = 0;
|
||||
+
|
||||
|
||||
@ -109,7 +109,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
- int err;
|
||||
+ int i, err;
|
||||
+
|
||||
+ if (mtk_uses_dsa(dev)) {
|
||||
+ if (mtk_uses_dsa(dev) && !eth->prog) {
|
||||
+ for (i = 0; i < ARRAY_SIZE(eth->dsa_meta); i++) {
|
||||
+ struct metadata_dst *md_dst = eth->dsa_meta[i];
|
||||
+
|
||||
|
||||
@ -0,0 +1,52 @@
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Thu, 17 Nov 2022 11:58:21 +0100
|
||||
Subject: [PATCH] net: ethernet: mtk_eth_soc: fix flow_offload related refcount
|
||||
bug
|
||||
|
||||
Since we call flow_block_cb_decref on FLOW_BLOCK_UNBIND, we need to call
|
||||
flow_block_cb_incref unconditionally, even for a newly allocated cb.
|
||||
Fixes a use-after-free bug
|
||||
|
||||
Fixes: 502e84e2382d ("net: ethernet: mtk_eth_soc: add flow offloading support")
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
|
||||
@@ -561,6 +561,7 @@ mtk_eth_setup_tc_block(struct net_device
|
||||
struct mtk_eth *eth = mac->hw;
|
||||
static LIST_HEAD(block_cb_list);
|
||||
struct flow_block_cb *block_cb;
|
||||
+ bool register_block = false;
|
||||
flow_setup_cb_t *cb;
|
||||
|
||||
if (!eth->soc->offload_version)
|
||||
@@ -575,16 +576,20 @@ mtk_eth_setup_tc_block(struct net_device
|
||||
switch (f->command) {
|
||||
case FLOW_BLOCK_BIND:
|
||||
block_cb = flow_block_cb_lookup(f->block, cb, dev);
|
||||
- if (block_cb) {
|
||||
- flow_block_cb_incref(block_cb);
|
||||
- return 0;
|
||||
+ if (!block_cb) {
|
||||
+ block_cb = flow_block_cb_alloc(cb, dev, dev, NULL);
|
||||
+ if (IS_ERR(block_cb))
|
||||
+ return PTR_ERR(block_cb);
|
||||
+
|
||||
+ register_block = true;
|
||||
}
|
||||
- block_cb = flow_block_cb_alloc(cb, dev, dev, NULL);
|
||||
- if (IS_ERR(block_cb))
|
||||
- return PTR_ERR(block_cb);
|
||||
|
||||
- flow_block_cb_add(block_cb, f);
|
||||
- list_add_tail(&block_cb->driver_list, &block_cb_list);
|
||||
+ flow_block_cb_incref(block_cb);
|
||||
+
|
||||
+ if (register_block) {
|
||||
+ flow_block_cb_add(block_cb, f);
|
||||
+ list_add_tail(&block_cb->driver_list, &block_cb_list);
|
||||
+ }
|
||||
return 0;
|
||||
case FLOW_BLOCK_UNBIND:
|
||||
block_cb = flow_block_cb_lookup(f->block, cb, dev);
|
||||
@ -0,0 +1,193 @@
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Sun, 20 Nov 2022 23:01:00 +0100
|
||||
Subject: [PATCH] net: ethernet: mtk_eth_soc: drop generic vlan rx offload,
|
||||
only use DSA untagging
|
||||
|
||||
Through testing I found out that hardware vlan rx offload support seems to
|
||||
have some hardware issues. At least when using multiple MACs and when receiving
|
||||
tagged packets on the secondary MAC, the hardware can sometimes start to emit
|
||||
wrong tags on the first MAC as well.
|
||||
|
||||
In order to avoid such issues, drop the feature configuration and use the
|
||||
offload feature only for DSA hardware untagging on MT7621/MT7622 devices which
|
||||
only use one MAC.
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||
@@ -1993,29 +1993,16 @@ static int mtk_poll_rx(struct napi_struc
|
||||
if (reason == MTK_PPE_CPU_REASON_HIT_UNBIND_RATE_REACHED)
|
||||
mtk_ppe_check_skb(eth->ppe[0], skb, hash);
|
||||
|
||||
- if (netdev->features & NETIF_F_HW_VLAN_CTAG_RX) {
|
||||
- if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
|
||||
- if (trxd.rxd3 & RX_DMA_VTAG_V2)
|
||||
- __vlan_hwaccel_put_tag(skb,
|
||||
- htons(RX_DMA_VPID(trxd.rxd4)),
|
||||
- RX_DMA_VID(trxd.rxd4));
|
||||
- } else if (trxd.rxd2 & RX_DMA_VTAG) {
|
||||
- __vlan_hwaccel_put_tag(skb, htons(RX_DMA_VPID(trxd.rxd3)),
|
||||
- RX_DMA_VID(trxd.rxd3));
|
||||
- }
|
||||
- }
|
||||
-
|
||||
/* When using VLAN untagging in combination with DSA, the
|
||||
* hardware treats the MTK special tag as a VLAN and untags it.
|
||||
*/
|
||||
- if (skb_vlan_tag_present(skb) && netdev_uses_dsa(netdev)) {
|
||||
- unsigned int port = ntohs(skb->vlan_proto) & GENMASK(2, 0);
|
||||
+ if (!MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2) &&
|
||||
+ (trxd.rxd2 & RX_DMA_VTAG) && netdev_uses_dsa(netdev)) {
|
||||
+ unsigned int port = RX_DMA_VPID(trxd.rxd3) & GENMASK(2, 0);
|
||||
|
||||
if (port < ARRAY_SIZE(eth->dsa_meta) &&
|
||||
eth->dsa_meta[port])
|
||||
skb_dst_set_noref(skb, ð->dsa_meta[port]->dst);
|
||||
-
|
||||
- __vlan_hwaccel_clear_tag(skb);
|
||||
}
|
||||
|
||||
skb_record_rx_queue(skb, 0);
|
||||
@@ -2832,29 +2819,11 @@ static netdev_features_t mtk_fix_feature
|
||||
|
||||
static int mtk_set_features(struct net_device *dev, netdev_features_t features)
|
||||
{
|
||||
- struct mtk_mac *mac = netdev_priv(dev);
|
||||
- struct mtk_eth *eth = mac->hw;
|
||||
netdev_features_t diff = dev->features ^ features;
|
||||
- int i;
|
||||
|
||||
if ((diff & NETIF_F_LRO) && !(features & NETIF_F_LRO))
|
||||
mtk_hwlro_netdev_disable(dev);
|
||||
|
||||
- /* Set RX VLAN offloading */
|
||||
- if (!(diff & NETIF_F_HW_VLAN_CTAG_RX))
|
||||
- return 0;
|
||||
-
|
||||
- mtk_w32(eth, !!(features & NETIF_F_HW_VLAN_CTAG_RX),
|
||||
- MTK_CDMP_EG_CTRL);
|
||||
-
|
||||
- /* sync features with other MAC */
|
||||
- for (i = 0; i < MTK_MAC_COUNT; i++) {
|
||||
- if (!eth->netdev[i] || eth->netdev[i] == dev)
|
||||
- continue;
|
||||
- eth->netdev[i]->features &= ~NETIF_F_HW_VLAN_CTAG_RX;
|
||||
- eth->netdev[i]->features |= features & NETIF_F_HW_VLAN_CTAG_RX;
|
||||
- }
|
||||
-
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -3153,30 +3122,6 @@ static int mtk_open(struct net_device *d
|
||||
struct mtk_eth *eth = mac->hw;
|
||||
int i, err;
|
||||
|
||||
- if (mtk_uses_dsa(dev) && !eth->prog) {
|
||||
- for (i = 0; i < ARRAY_SIZE(eth->dsa_meta); i++) {
|
||||
- struct metadata_dst *md_dst = eth->dsa_meta[i];
|
||||
-
|
||||
- if (md_dst)
|
||||
- continue;
|
||||
-
|
||||
- md_dst = metadata_dst_alloc(0, METADATA_HW_PORT_MUX,
|
||||
- GFP_KERNEL);
|
||||
- if (!md_dst)
|
||||
- return -ENOMEM;
|
||||
-
|
||||
- md_dst->u.port_info.port_id = i;
|
||||
- eth->dsa_meta[i] = md_dst;
|
||||
- }
|
||||
- } else {
|
||||
- /* Hardware special tag parsing needs to be disabled if at least
|
||||
- * one MAC does not use DSA.
|
||||
- */
|
||||
- u32 val = mtk_r32(eth, MTK_CDMP_IG_CTRL);
|
||||
- val &= ~MTK_CDMP_STAG_EN;
|
||||
- mtk_w32(eth, val, MTK_CDMP_IG_CTRL);
|
||||
- }
|
||||
-
|
||||
err = phylink_of_phy_connect(mac->phylink, mac->of_node, 0);
|
||||
if (err) {
|
||||
netdev_err(dev, "%s: could not attach PHY: %d\n", __func__,
|
||||
@@ -3215,6 +3160,39 @@ static int mtk_open(struct net_device *d
|
||||
phylink_start(mac->phylink);
|
||||
netif_tx_start_all_queues(dev);
|
||||
|
||||
+ if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2))
|
||||
+ return 0;
|
||||
+
|
||||
+ if (mtk_uses_dsa(dev) && !eth->prog) {
|
||||
+ for (i = 0; i < ARRAY_SIZE(eth->dsa_meta); i++) {
|
||||
+ struct metadata_dst *md_dst = eth->dsa_meta[i];
|
||||
+
|
||||
+ if (md_dst)
|
||||
+ continue;
|
||||
+
|
||||
+ md_dst = metadata_dst_alloc(0, METADATA_HW_PORT_MUX,
|
||||
+ GFP_KERNEL);
|
||||
+ if (!md_dst)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
+ md_dst->u.port_info.port_id = i;
|
||||
+ eth->dsa_meta[i] = md_dst;
|
||||
+ }
|
||||
+ } else {
|
||||
+ /* Hardware special tag parsing needs to be disabled if at least
|
||||
+ * one MAC does not use DSA.
|
||||
+ */
|
||||
+ u32 val = mtk_r32(eth, MTK_CDMP_IG_CTRL);
|
||||
+ val &= ~MTK_CDMP_STAG_EN;
|
||||
+ mtk_w32(eth, val, MTK_CDMP_IG_CTRL);
|
||||
+
|
||||
+ val = mtk_r32(eth, MTK_CDMQ_IG_CTRL);
|
||||
+ val &= ~MTK_CDMQ_STAG_EN;
|
||||
+ mtk_w32(eth, val, MTK_CDMQ_IG_CTRL);
|
||||
+
|
||||
+ mtk_w32(eth, 0, MTK_CDMP_EG_CTRL);
|
||||
+ }
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -3503,15 +3481,15 @@ static int mtk_hw_init(struct mtk_eth *e
|
||||
/* Indicates CDM to parse the MTK special tag from CPU
|
||||
* which also is working out for untag packets.
|
||||
*/
|
||||
- val = mtk_r32(eth, MTK_CDMQ_IG_CTRL);
|
||||
- mtk_w32(eth, val | MTK_CDMQ_STAG_EN, MTK_CDMQ_IG_CTRL);
|
||||
if (!MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) {
|
||||
+ val = mtk_r32(eth, MTK_CDMQ_IG_CTRL);
|
||||
+ mtk_w32(eth, val | MTK_CDMQ_STAG_EN, MTK_CDMQ_IG_CTRL);
|
||||
+
|
||||
val = mtk_r32(eth, MTK_CDMP_IG_CTRL);
|
||||
mtk_w32(eth, val | MTK_CDMP_STAG_EN, MTK_CDMP_IG_CTRL);
|
||||
- }
|
||||
|
||||
- /* Enable RX VLan Offloading */
|
||||
- mtk_w32(eth, 1, MTK_CDMP_EG_CTRL);
|
||||
+ mtk_w32(eth, 1, MTK_CDMP_EG_CTRL);
|
||||
+ }
|
||||
|
||||
/* set interrupt delays based on current Net DIM sample */
|
||||
mtk_dim_rx(ð->rx_dim.work);
|
||||
@@ -4132,7 +4110,7 @@ static int mtk_add_mac(struct mtk_eth *e
|
||||
eth->netdev[id]->hw_features |= NETIF_F_LRO;
|
||||
|
||||
eth->netdev[id]->vlan_features = eth->soc->hw_features &
|
||||
- ~(NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX);
|
||||
+ ~NETIF_F_HW_VLAN_CTAG_TX;
|
||||
eth->netdev[id]->features |= eth->soc->hw_features;
|
||||
eth->netdev[id]->ethtool_ops = &mtk_ethtool_ops;
|
||||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||
@@ -48,7 +48,6 @@
|
||||
#define MTK_HW_FEATURES (NETIF_F_IP_CSUM | \
|
||||
NETIF_F_RXCSUM | \
|
||||
NETIF_F_HW_VLAN_CTAG_TX | \
|
||||
- NETIF_F_HW_VLAN_CTAG_RX | \
|
||||
NETIF_F_SG | NETIF_F_ALL_TSO | \
|
||||
NETIF_F_IPV6_CSUM |\
|
||||
NETIF_F_HW_TC)
|
||||
@ -44,8 +44,8 @@
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-controller;
|
||||
compatible = "lantiq,icu";
|
||||
/* TODO: AR9 should have ICU1 (like VR9) too */
|
||||
reg = <0x80200 0xc8>;
|
||||
reg = <0x80200 0xc8 /* icu0 */
|
||||
0x80300 0xc8>; /* icu1 */
|
||||
};
|
||||
|
||||
watchdog@803f0 {
|
||||
|
||||
@ -3,10 +3,14 @@ CONFIG_AR8216_PHY=y
|
||||
CONFIG_AT803X_PHY=y
|
||||
CONFIG_BLK_MQ_PCI=y
|
||||
CONFIG_CPU_HAS_DIEI=y
|
||||
CONFIG_CPU_MIPSR2_IRQ_EI=y
|
||||
CONFIG_CPU_MIPSR2_IRQ_VI=y
|
||||
CONFIG_CPU_RMAP=y
|
||||
CONFIG_CRC16=y
|
||||
CONFIG_CRYPTO_ACOMP2=y
|
||||
CONFIG_CRYPTO_DEFLATE=y
|
||||
CONFIG_CRYPTO_HASH_INFO=y
|
||||
CONFIG_CRYPTO_LZO=y
|
||||
CONFIG_CRYPTO_ZSTD=y
|
||||
CONFIG_ETHERNET_PACKET_MANGLE=y
|
||||
CONFIG_GENERIC_ALLOCATOR=y
|
||||
CONFIG_HW_RANDOM=y
|
||||
@ -17,6 +21,12 @@ CONFIG_INPUT_POLLDEV=y
|
||||
CONFIG_LANTIQ_ETOP=y
|
||||
CONFIG_LZO_COMPRESS=y
|
||||
CONFIG_LZO_DECOMPRESS=y
|
||||
CONFIG_MIPS_EBPF_JIT=y
|
||||
CONFIG_MIPS_MT=y
|
||||
CONFIG_MIPS_MT_FPAFF=y
|
||||
CONFIG_MIPS_MT_SMP=y
|
||||
CONFIG_MIPS_NR_CPU_NR_MAP=2
|
||||
CONFIG_MIPS_PERF_SHARED_TC_COUNTERS=y
|
||||
CONFIG_MTD_NAND_CORE=y
|
||||
CONFIG_MTD_NAND_ECC=y
|
||||
CONFIG_MTD_NAND_ECC_SW_HAMMING=y
|
||||
@ -26,21 +36,42 @@ CONFIG_MTD_UBI=y
|
||||
CONFIG_MTD_UBI_BEB_LIMIT=20
|
||||
CONFIG_MTD_UBI_BLOCK=y
|
||||
CONFIG_MTD_UBI_WL_THRESHOLD=4096
|
||||
CONFIG_NET_FLOW_LIMIT=y
|
||||
CONFIG_NLS=y
|
||||
CONFIG_NR_CPUS=2
|
||||
CONFIG_PADATA=y
|
||||
CONFIG_PCI=y
|
||||
CONFIG_PCI_DOMAINS=y
|
||||
CONFIG_PCI_LANTIQ=y
|
||||
CONFIG_PSB6970_PHY=y
|
||||
CONFIG_QUEUED_RWLOCKS=y
|
||||
CONFIG_QUEUED_SPINLOCKS=y
|
||||
CONFIG_REGULATOR=y
|
||||
CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
||||
CONFIG_RFS_ACCEL=y
|
||||
CONFIG_RPS=y
|
||||
CONFIG_RTL8306_PHY=y
|
||||
CONFIG_RTL8366RB_PHY=y
|
||||
CONFIG_RTL8366_SMI=y
|
||||
CONFIG_SCHED_SMT=y
|
||||
CONFIG_SGL_ALLOC=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_SMP_UP=y
|
||||
CONFIG_SOC_TYPE_XWAY=y
|
||||
CONFIG_SOC_XWAY=y
|
||||
CONFIG_SWCONFIG=y
|
||||
CONFIG_SYNC_R4K=y
|
||||
CONFIG_SYS_SUPPORTS_SCHED_SMT=y
|
||||
CONFIG_SYS_SUPPORTS_SMP=y
|
||||
CONFIG_TREE_RCU=y
|
||||
CONFIG_TREE_SRCU=y
|
||||
CONFIG_UBIFS_FS=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_COMMON=y
|
||||
CONFIG_USB_SUPPORT=y
|
||||
CONFIG_XPS=y
|
||||
CONFIG_XXHASH=y
|
||||
CONFIG_ZLIB_DEFLATE=y
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZSTD_COMPRESS=y
|
||||
CONFIG_ZSTD_DECOMPRESS=y
|
||||
|
||||
@ -1,22 +1,35 @@
|
||||
CONFIG_ADM6996_PHY=y
|
||||
CONFIG_AR8216_PHY=y
|
||||
CONFIG_ARCH_KEEP_MEMBLOCK=y
|
||||
CONFIG_AT803X_PHY=y
|
||||
CONFIG_BLK_MQ_PCI=y
|
||||
CONFIG_CPU_HAS_DIEI=y
|
||||
CONFIG_CPU_MIPSR2_IRQ_EI=y
|
||||
CONFIG_CPU_MIPSR2_IRQ_VI=y
|
||||
CONFIG_CPU_RMAP=y
|
||||
CONFIG_CRC16=y
|
||||
CONFIG_CRYPTO_ACOMP2=y
|
||||
CONFIG_CRYPTO_DEFLATE=y
|
||||
CONFIG_CRYPTO_HASH_INFO=y
|
||||
CONFIG_CRYPTO_LZO=y
|
||||
CONFIG_CRYPTO_ZSTD=y
|
||||
CONFIG_ETHERNET_PACKET_MANGLE=y
|
||||
CONFIG_FWNODE_MDIO=y
|
||||
CONFIG_GENERIC_ALLOCATOR=y
|
||||
CONFIG_GENERIC_FIND_FIRST_BIT=y
|
||||
CONFIG_GPIO_CDEV=y
|
||||
CONFIG_HW_RANDOM=y
|
||||
CONFIG_INPUT=y
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
CONFIG_INPUT_POLLDEV=y
|
||||
# CONFIG_ISDN is not set
|
||||
CONFIG_LANTIQ_ETOP=y
|
||||
CONFIG_LZO_COMPRESS=y
|
||||
CONFIG_LZO_DECOMPRESS=y
|
||||
CONFIG_MIPS_EBPF_JIT=y
|
||||
CONFIG_MIPS_MT=y
|
||||
CONFIG_MIPS_MT_FPAFF=y
|
||||
CONFIG_MIPS_MT_SMP=y
|
||||
CONFIG_MIPS_NR_CPU_NR_MAP=2
|
||||
CONFIG_MIPS_PERF_SHARED_TC_COUNTERS=y
|
||||
CONFIG_MTD_NAND_CORE=y
|
||||
CONFIG_MTD_NAND_ECC=y
|
||||
CONFIG_MTD_NAND_ECC_SW_HAMMING=y
|
||||
@ -26,21 +39,46 @@ CONFIG_MTD_UBI=y
|
||||
CONFIG_MTD_UBI_BEB_LIMIT=20
|
||||
CONFIG_MTD_UBI_BLOCK=y
|
||||
CONFIG_MTD_UBI_WL_THRESHOLD=4096
|
||||
CONFIG_NET_FLOW_LIMIT=y
|
||||
CONFIG_NET_SELFTESTS=y
|
||||
CONFIG_NLS=y
|
||||
CONFIG_NR_CPUS=2
|
||||
CONFIG_PADATA=y
|
||||
CONFIG_PCI=y
|
||||
CONFIG_PCI_DOMAINS=y
|
||||
CONFIG_PCI_LANTIQ=y
|
||||
CONFIG_PSB6970_PHY=y
|
||||
CONFIG_PTP_1588_CLOCK_OPTIONAL=y
|
||||
CONFIG_QUEUED_RWLOCKS=y
|
||||
CONFIG_QUEUED_SPINLOCKS=y
|
||||
CONFIG_REGULATOR=y
|
||||
CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
||||
CONFIG_RFS_ACCEL=y
|
||||
CONFIG_RPS=y
|
||||
CONFIG_RTL8306_PHY=y
|
||||
CONFIG_RTL8366RB_PHY=y
|
||||
CONFIG_RTL8366_SMI=y
|
||||
# CONFIG_SCHED_CORE is not set
|
||||
CONFIG_SCHED_SMT=y
|
||||
CONFIG_SGL_ALLOC=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_SMP_UP=y
|
||||
CONFIG_SOCK_RX_QUEUE_MAPPING=y
|
||||
CONFIG_SOC_TYPE_XWAY=y
|
||||
CONFIG_SOC_XWAY=y
|
||||
CONFIG_SWCONFIG=y
|
||||
CONFIG_SYNC_R4K=y
|
||||
CONFIG_SYS_SUPPORTS_SCHED_SMT=y
|
||||
CONFIG_SYS_SUPPORTS_SMP=y
|
||||
CONFIG_TREE_RCU=y
|
||||
CONFIG_TREE_SRCU=y
|
||||
CONFIG_UBIFS_FS=y
|
||||
CONFIG_USB=y
|
||||
CONFIG_USB_COMMON=y
|
||||
CONFIG_USB_SUPPORT=y
|
||||
CONFIG_XPS=y
|
||||
CONFIG_XXHASH=y
|
||||
CONFIG_ZLIB_DEFLATE=y
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZSTD_COMPRESS=y
|
||||
CONFIG_ZSTD_DECOMPRESS=y
|
||||
|
||||
@ -53,8 +53,8 @@ CONFIG_CLKSRC_MMIO=y
|
||||
CONFIG_CLONE_BACKWARDS=y
|
||||
CONFIG_CMDLINE="earlyprintk console=ttyS0,115200 rootfstype=squashfs,jffs2"
|
||||
CONFIG_CMDLINE_FROM_BOOTLOADER=y
|
||||
CONFIG_CMDLINE_PARTITION=y
|
||||
# CONFIG_CMDLINE_OVERRIDE is not set
|
||||
CONFIG_CMDLINE_PARTITION=y
|
||||
CONFIG_COMMON_CLK=y
|
||||
CONFIG_COMMON_CLK_MEDIATEK=y
|
||||
CONFIG_COMMON_CLK_MT2701=y
|
||||
@ -108,7 +108,6 @@ CONFIG_CRC16=y
|
||||
# CONFIG_CRC32_SARWATE is not set
|
||||
CONFIG_CRC32_SLICEBY8=y
|
||||
CONFIG_CROSS_MEMORY_ATTACH=y
|
||||
CONFIG_CRYPTO_BLAKE2S=y
|
||||
CONFIG_CRYPTO_CRC32=y
|
||||
CONFIG_CRYPTO_CRC32C=y
|
||||
CONFIG_CRYPTO_DEFLATE=y
|
||||
@ -404,7 +403,8 @@ CONFIG_OLD_SIGACTION=y
|
||||
CONFIG_OLD_SIGSUSPEND3=y
|
||||
CONFIG_PADATA=y
|
||||
CONFIG_PAGE_OFFSET=0xC0000000
|
||||
CONFIG_PAHOLE_HAS_SPLIT_BTF=y
|
||||
CONFIG_PAGE_POOL=y
|
||||
CONFIG_PAGE_POOL_STATS=y
|
||||
CONFIG_PCI=y
|
||||
CONFIG_PCIEAER=y
|
||||
CONFIG_PCIEPORTBUS=y
|
||||
@ -427,7 +427,6 @@ CONFIG_PINCTRL=y
|
||||
CONFIG_PINCTRL_MT2701=y
|
||||
CONFIG_PINCTRL_MT6397=y
|
||||
CONFIG_PINCTRL_MT7623=y
|
||||
# CONFIG_PINCTRL_MT7986 is not set
|
||||
CONFIG_PINCTRL_MTK=y
|
||||
CONFIG_PINCTRL_MTK_MOORE=y
|
||||
CONFIG_PINCTRL_MTK_V2=y
|
||||
@ -504,7 +503,6 @@ CONFIG_SRCU=y
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
CONFIG_SUSPEND=y
|
||||
CONFIG_SUSPEND_FREEZER=y
|
||||
CONFIG_SWCONFIG=y
|
||||
CONFIG_SWPHY=y
|
||||
CONFIG_SWP_EMULATE=y
|
||||
CONFIG_SYNC_FILE=y
|
||||
|
||||
@ -113,7 +113,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
|
||||
@@ -356,9 +356,12 @@
|
||||
@@ -355,9 +355,12 @@
|
||||
#define PHY_IAC_ADDR_MASK GENMASK(24, 20)
|
||||
#define PHY_IAC_ADDR(x) FIELD_PREP(PHY_IAC_ADDR_MASK, (x))
|
||||
#define PHY_IAC_CMD_MASK GENMASK(19, 18)
|
||||
|
||||
258
target/linux/ramips/dts/mt7621_keenetic_kn-3010.dts
Normal file
258
target/linux/ramips/dts/mt7621_keenetic_kn-3010.dts
Normal file
@ -0,0 +1,258 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
#include "mt7621.dtsi"
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/input/input.h>
|
||||
|
||||
/ {
|
||||
compatible = "keenetic,kn-3010", "mediatek,mt7621-soc";
|
||||
model = "Keenetic KN-3010";
|
||||
|
||||
aliases {
|
||||
led-boot = &led_power;
|
||||
led-failsafe = &led_power;
|
||||
led-running = &led_power;
|
||||
led-upgrade = &led_power;
|
||||
label-mac-device = &gmac0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200";
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led_power: power {
|
||||
label = "green:power";
|
||||
gpios = <&gpio 45 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
internet {
|
||||
label = "green:internet";
|
||||
gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
wifi2 {
|
||||
label = "green:wifi2";
|
||||
gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "phy0tpt";
|
||||
};
|
||||
|
||||
wifi5 {
|
||||
label = "green:wifi5";
|
||||
gpios = <&gpio 48 GPIO_ACTIVE_LOW>;
|
||||
linux,default-trigger = "phy1tpt";
|
||||
};
|
||||
};
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
fn {
|
||||
label = "fn";
|
||||
gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <BTN_0>;
|
||||
};
|
||||
|
||||
reset {
|
||||
label = "reset";
|
||||
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_RESTART>;
|
||||
};
|
||||
|
||||
wps {
|
||||
label = "wps";
|
||||
gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
|
||||
linux,code = <KEY_WPS_BUTTON>;
|
||||
};
|
||||
};
|
||||
|
||||
virtual_flash {
|
||||
compatible = "mtd-concat";
|
||||
devices = <&firmware1 &firmware2>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
compatible = "denx,uimage";
|
||||
label = "firmware";
|
||||
reg = <0x0 0x1ec0000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&state_default {
|
||||
gpio {
|
||||
groups = "uart3", "sdhci";
|
||||
function = "gpio";
|
||||
};
|
||||
};
|
||||
|
||||
&xhci {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
status = "okay";
|
||||
|
||||
flash@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <31000000>;
|
||||
|
||||
partitions: partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "u-boot";
|
||||
reg = <0x0 0x30000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@30000 {
|
||||
label = "u-config";
|
||||
reg = <0x30000 0x10000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
factory: partition@40000 {
|
||||
label = "rf-eeprom";
|
||||
reg = <0x40000 0x10000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
firmware1: partition@50000 {
|
||||
label = "firmware_1";
|
||||
reg = <0x50000 0xf60000>;
|
||||
};
|
||||
|
||||
partition@fb0000 {
|
||||
label = "config_1";
|
||||
reg = <0xfb0000 0x40000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@ff0000 {
|
||||
label = "dump";
|
||||
reg = <0xff0000 0x10000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@1000000 {
|
||||
label = "u-state";
|
||||
reg = <0x1000000 0x30000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@1030000 {
|
||||
label = "u-config_res";
|
||||
reg = <0x1030000 0x10000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@1040000 {
|
||||
label = "rf-eeprom_res";
|
||||
reg = <0x1040000 0x10000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
firmware2: partition@1050000 {
|
||||
label = "firmware_2";
|
||||
reg = <0x1050000 0xf60000>;
|
||||
};
|
||||
|
||||
partition@1fb0000 {
|
||||
label = "config_2";
|
||||
reg = <0x1fb0000 0x40000>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mdio {
|
||||
ethphy0: ethernet-phy@0 {
|
||||
reg = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
&gmac0 {
|
||||
nvmem-cells = <&macaddr_factory_4>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&gmac1 {
|
||||
status = "okay";
|
||||
label = "wan";
|
||||
phy-handle = <ðphy0>;
|
||||
|
||||
nvmem-cells = <&macaddr_factory_28>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
|
||||
&switch0 {
|
||||
ports {
|
||||
port@1 {
|
||||
status = "okay";
|
||||
label = "lan1";
|
||||
};
|
||||
|
||||
port@2 {
|
||||
status = "okay";
|
||||
label = "lan2";
|
||||
};
|
||||
|
||||
port@3 {
|
||||
status = "okay";
|
||||
label = "lan3";
|
||||
};
|
||||
|
||||
port@4 {
|
||||
status = "okay";
|
||||
label = "lan4";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pcie {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pcie0 {
|
||||
wifi@0,0 {
|
||||
compatible = "mediatek,mt76";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
mediatek,mtd-eeprom = <&factory 0x0000>;
|
||||
ieee80211-freq-limit = <2400000 2500000>;
|
||||
};
|
||||
};
|
||||
|
||||
&pcie1 {
|
||||
wifi@0,0 {
|
||||
compatible = "mediatek,mt76";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
mediatek,mtd-eeprom = <&factory 0x0400>;
|
||||
ieee80211-freq-limit = <5000000 6000000>;
|
||||
};
|
||||
};
|
||||
|
||||
&factory {
|
||||
compatible = "nvmem-cells";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
macaddr_factory_4: macaddr@4 {
|
||||
reg = <0x4 0x6>;
|
||||
};
|
||||
|
||||
macaddr_factory_28: macaddr@28 {
|
||||
reg = <0x28 0x6>;
|
||||
};
|
||||
};
|
||||
@ -1217,6 +1217,20 @@ define Device/jcg_y2
|
||||
endef
|
||||
TARGET_DEVICES += jcg_y2
|
||||
|
||||
define Device/keenetic_kn-3010
|
||||
$(Device/dsa-migration)
|
||||
$(Device/uimage-lzma-loader)
|
||||
BLOCKSIZE := 64k
|
||||
IMAGE_SIZE := 31488k
|
||||
DEVICE_VENDOR := Keenetic
|
||||
DEVICE_MODEL := KN-3010
|
||||
DEVICE_PACKAGES := kmod-mt7603 kmod-mt7615e kmod-mt7663-firmware-ap
|
||||
IMAGES += factory.bin
|
||||
IMAGE/factory.bin := $$(sysupgrade_bin) | pad-to $$$$(BLOCKSIZE) | \
|
||||
check-size | zyimage -d 8400912 -v "KN-3010"
|
||||
endef
|
||||
TARGET_DEVICES += keenetic_kn-3010
|
||||
|
||||
define Device/lenovo_newifi-d1
|
||||
$(Device/dsa-migration)
|
||||
$(Device/uimage-lzma-loader)
|
||||
|
||||
@ -75,6 +75,9 @@ dlink,dir-882-r1)
|
||||
gnubee,gb-pc2)
|
||||
ucidef_set_led_netdev "ethyellow" "ethyellow" "orange:ethyellow" "ethyellow" "link tx rx"
|
||||
;;
|
||||
keenetic,kn-3010)
|
||||
ucidef_set_led_netdev "internet" "internet" "green:internet" "wan"
|
||||
;;
|
||||
linksys,e5600)
|
||||
ucidef_set_led_netdev "wan" "wan link" "blue:wan" "wan" "link"
|
||||
;;
|
||||
|
||||
@ -350,18 +350,19 @@ CONFIG_PGTABLE_LEVELS=4
|
||||
CONFIG_PHYSICAL_ALIGN=0x1000000
|
||||
CONFIG_PHYS_ADDR_T_64BIT=y
|
||||
CONFIG_PINCTRL=y
|
||||
# CONFIG_PINCTRL_BAYTRAIL is not set
|
||||
# CONFIG_PINCTRL_BROXTON is not set
|
||||
# CONFIG_PINCTRL_CANNONLAKE is not set
|
||||
# CONFIG_PINCTRL_CHERRYVIEW is not set
|
||||
# CONFIG_PINCTRL_DENVERTON is not set
|
||||
# CONFIG_PINCTRL_EMMITSBURG is not set
|
||||
# CONFIG_PINCTRL_GEMINILAKE is not set
|
||||
# CONFIG_PINCTRL_JASPERLAKE is not set
|
||||
# CONFIG_PINCTRL_LEWISBURG is not set
|
||||
# CONFIG_PINCTRL_LYNXPOINT is not set
|
||||
# CONFIG_PINCTRL_SUNRISEPOINT is not set
|
||||
# CONFIG_PINCTRL_TIGERLAKE is not set
|
||||
CONFIG_PINCTRL_BAYTRAIL=y
|
||||
CONFIG_PINCTRL_BROXTON=y
|
||||
CONFIG_PINCTRL_CANNONLAKE=y
|
||||
CONFIG_PINCTRL_CHERRYVIEW=y
|
||||
CONFIG_PINCTRL_DENVERTON=y
|
||||
CONFIG_PINCTRL_EMMITSBURG=y
|
||||
CONFIG_PINCTRL_GEMINILAKE=y
|
||||
CONFIG_PINCTRL_INTEL=y
|
||||
CONFIG_PINCTRL_JASPERLAKE=y
|
||||
CONFIG_PINCTRL_LEWISBURG=y
|
||||
CONFIG_PINCTRL_LYNXPOINT=y
|
||||
CONFIG_PINCTRL_SUNRISEPOINT=y
|
||||
CONFIG_PINCTRL_TIGERLAKE=y
|
||||
CONFIG_PM=y
|
||||
# CONFIG_PMIC_OPREGION is not set
|
||||
CONFIG_PM_CLK=y
|
||||
|
||||
@ -367,21 +367,22 @@ CONFIG_PGTABLE_LEVELS=4
|
||||
CONFIG_PHYSICAL_ALIGN=0x1000000
|
||||
CONFIG_PHYS_ADDR_T_64BIT=y
|
||||
CONFIG_PINCTRL=y
|
||||
# CONFIG_PINCTRL_ALDERLAKE is not set
|
||||
# CONFIG_PINCTRL_BAYTRAIL is not set
|
||||
# CONFIG_PINCTRL_BROXTON is not set
|
||||
# CONFIG_PINCTRL_CANNONLAKE is not set
|
||||
# CONFIG_PINCTRL_CHERRYVIEW is not set
|
||||
# CONFIG_PINCTRL_DENVERTON is not set
|
||||
# CONFIG_PINCTRL_ELKHARTLAKE is not set
|
||||
# CONFIG_PINCTRL_EMMITSBURG is not set
|
||||
# CONFIG_PINCTRL_GEMINILAKE is not set
|
||||
# CONFIG_PINCTRL_JASPERLAKE is not set
|
||||
# CONFIG_PINCTRL_LAKEFIELD is not set
|
||||
# CONFIG_PINCTRL_LEWISBURG is not set
|
||||
# CONFIG_PINCTRL_LYNXPOINT is not set
|
||||
# CONFIG_PINCTRL_SUNRISEPOINT is not set
|
||||
# CONFIG_PINCTRL_TIGERLAKE is not set
|
||||
CONFIG_PINCTRL_ALDERLAKE=y
|
||||
CONFIG_PINCTRL_BAYTRAIL=y
|
||||
CONFIG_PINCTRL_BROXTON=y
|
||||
CONFIG_PINCTRL_CANNONLAKE=y
|
||||
CONFIG_PINCTRL_CHERRYVIEW=y
|
||||
CONFIG_PINCTRL_DENVERTON=y
|
||||
CONFIG_PINCTRL_ELKHARTLAKE=y
|
||||
CONFIG_PINCTRL_EMMITSBURG=y
|
||||
CONFIG_PINCTRL_GEMINILAKE=y
|
||||
CONFIG_PINCTRL_INTEL=y
|
||||
CONFIG_PINCTRL_JASPERLAKE=y
|
||||
CONFIG_PINCTRL_LAKEFIELD=y
|
||||
CONFIG_PINCTRL_LEWISBURG=y
|
||||
CONFIG_PINCTRL_LYNXPOINT=y
|
||||
CONFIG_PINCTRL_SUNRISEPOINT=y
|
||||
CONFIG_PINCTRL_TIGERLAKE=y
|
||||
CONFIG_PM=y
|
||||
# CONFIG_PMIC_OPREGION is not set
|
||||
CONFIG_PM_CLK=y
|
||||
|
||||
@ -315,14 +315,14 @@ CONFIG_PINCTRL_BROXTON=y
|
||||
CONFIG_PINCTRL_CANNONLAKE=y
|
||||
CONFIG_PINCTRL_CHERRYVIEW=y
|
||||
CONFIG_PINCTRL_DENVERTON=y
|
||||
# CONFIG_PINCTRL_EMMITSBURG is not set
|
||||
CONFIG_PINCTRL_EMMITSBURG=y
|
||||
CONFIG_PINCTRL_GEMINILAKE=y
|
||||
CONFIG_PINCTRL_INTEL=y
|
||||
# CONFIG_PINCTRL_JASPERLAKE is not set
|
||||
# CONFIG_PINCTRL_LEWISBURG is not set
|
||||
# CONFIG_PINCTRL_LYNXPOINT is not set
|
||||
CONFIG_PINCTRL_JASPERLAKE=y
|
||||
CONFIG_PINCTRL_LEWISBURG=y
|
||||
CONFIG_PINCTRL_LYNXPOINT=y
|
||||
CONFIG_PINCTRL_SUNRISEPOINT=y
|
||||
# CONFIG_PINCTRL_TIGERLAKE is not set
|
||||
CONFIG_PINCTRL_TIGERLAKE=y
|
||||
CONFIG_PM=y
|
||||
# CONFIG_PMIC_OPREGION is not set
|
||||
CONFIG_PM_CLK=y
|
||||
|
||||
@ -318,22 +318,22 @@ CONFIG_PCI_XEN=y
|
||||
CONFIG_PGTABLE_LEVELS=3
|
||||
CONFIG_PHYS_ADDR_T_64BIT=y
|
||||
CONFIG_PINCTRL=y
|
||||
# CONFIG_PINCTRL_ALDERLAKE is not set
|
||||
CONFIG_PINCTRL_ALDERLAKE=y
|
||||
CONFIG_PINCTRL_BAYTRAIL=y
|
||||
CONFIG_PINCTRL_BROXTON=y
|
||||
CONFIG_PINCTRL_CANNONLAKE=y
|
||||
CONFIG_PINCTRL_CHERRYVIEW=y
|
||||
CONFIG_PINCTRL_DENVERTON=y
|
||||
# CONFIG_PINCTRL_ELKHARTLAKE is not set
|
||||
# CONFIG_PINCTRL_EMMITSBURG is not set
|
||||
CONFIG_PINCTRL_ELKHARTLAKE=y
|
||||
CONFIG_PINCTRL_EMMITSBURG=y
|
||||
CONFIG_PINCTRL_GEMINILAKE=y
|
||||
CONFIG_PINCTRL_INTEL=y
|
||||
# CONFIG_PINCTRL_JASPERLAKE is not set
|
||||
# CONFIG_PINCTRL_LAKEFIELD is not set
|
||||
# CONFIG_PINCTRL_LEWISBURG is not set
|
||||
# CONFIG_PINCTRL_LYNXPOINT is not set
|
||||
CONFIG_PINCTRL_JASPERLAKE=y
|
||||
CONFIG_PINCTRL_LAKEFIELD=y
|
||||
CONFIG_PINCTRL_LEWISBURG=y
|
||||
CONFIG_PINCTRL_LYNXPOINT=y
|
||||
CONFIG_PINCTRL_SUNRISEPOINT=y
|
||||
# CONFIG_PINCTRL_TIGERLAKE is not set
|
||||
CONFIG_PINCTRL_TIGERLAKE=y
|
||||
CONFIG_PM=y
|
||||
# CONFIG_PMIC_OPREGION is not set
|
||||
CONFIG_PM_CLK=y
|
||||
|
||||
@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=patch
|
||||
PKG_VERSION:=2.7.6
|
||||
PKG_RELEASE:=6
|
||||
PKG_RELEASE:=7
|
||||
PKG_CPE_ID:=cpe:/a:gnu:patch
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
From f42cbe1a91a3a6f79d1eec594ce7c72aec79179b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <thomas@t-8ch.de>
|
||||
Date: Wed, 9 Nov 2022 05:08:22 +0100
|
||||
Subject: [PATCH] don't fail hard on EACCES when copying xattrs
|
||||
|
||||
On btrfs the xattr "btrfs.compressed" requires privileges to set,
|
||||
otherwise EACCES is returned.
|
||||
When patch tries to do copy this attribute it receives the error and
|
||||
aborts.
|
||||
---
|
||||
src/util.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/src/util.c
|
||||
+++ b/src/util.c
|
||||
@@ -182,7 +182,7 @@ copy_attr_error (struct error_context *c
|
||||
int err = errno;
|
||||
va_list ap;
|
||||
|
||||
- if (err != ENOSYS && err != ENOTSUP && err != EPERM)
|
||||
+ if (err != ENOSYS && err != ENOTSUP && err != EPERM && err != EACCES)
|
||||
{
|
||||
/* use verror module to print error message */
|
||||
va_start (ap, fmt);
|
||||
@@ -284,7 +284,7 @@ set_file_attributes (char const *to, enu
|
||||
}
|
||||
if (attr & FA_XATTRS)
|
||||
if (copy_attr (from, to) != 0
|
||||
- && errno != ENOSYS && errno != ENOTSUP && errno != EPERM)
|
||||
+ && errno != ENOSYS && errno != ENOTSUP && errno != EPERM && errno != EACCES)
|
||||
fatal_exit (0);
|
||||
if (attr & FA_MODE)
|
||||
{
|
||||
@ -7,11 +7,11 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=sed
|
||||
PKG_VERSION:=4.8
|
||||
PKG_VERSION:=4.9
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
|
||||
PKG_HASH:=f79b0cfea71b37a8eeec8490db6c5f7ae7719c35587f21edb0617f370eeff633
|
||||
PKG_HASH:=6e226b732e1cd739464ad6862bd1a1aba42d7982922da7a53519631d24975181
|
||||
export SED:=
|
||||
|
||||
HOST_BUILD_PARALLEL:=1
|
||||
|
||||
Loading…
Reference in New Issue
Block a user