Merge Official Source

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
Tianling Shen 2023-01-16 17:35:05 +08:00
commit b6062654c2
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
92 changed files with 2386 additions and 378 deletions

View File

@ -1,2 +1,2 @@
LINUX_VERSION-5.10 = .162
LINUX_KERNEL_HASH-5.10.162 = 2ec400fc50ffdfe4c836a3c02bf6e7aebcd7963dd2ac1425e6d41545c37dd217
LINUX_VERSION-5.10 = .163
LINUX_KERNEL_HASH-5.10.163 = 96e226e2d388abc0600434e0f4f365a8829ef901f4d8e761e7ffe2799dc09b20

View File

@ -1,2 +1,2 @@
LINUX_VERSION-5.15 = .87
LINUX_KERNEL_HASH-5.15.87 = e7359bd2935b54fe8bb821cf748591c36a95bed019e752d3e4d5803d9da1ccb4
LINUX_VERSION-5.15 = .88
LINUX_KERNEL_HASH-5.15.88 = 417539fdd96a3af97ef9ad2b51ca13967cb922f53970563b60290b935a81a181

View File

@ -60,7 +60,8 @@ linksys,ea6350v3)
ubootenv_add_uci_config "/dev/mtd7" "0x0" "0x20000" "0x20000"
;;
linksys,ea8300|\
linksys,mr8300)
linksys,mr8300|\
linksys,whw03v2)
ubootenv_add_uci_config "/dev/mtd7" "0x0" "0x40000" "0x20000"
;;
linksys,whw01)

View File

@ -21,6 +21,9 @@ engenius,esr600h|\
sitecom,wlr-4100-v1-002)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x1000"
;;
arcadyan,we420223-99)
ubootenv_add_uci_config "/dev/mtd2" "0x0" "0x1000" "0x1000"
;;
allnet,all0256n-4m|\
allnet,all0256n-8m|\
allnet,all5002|\
@ -85,6 +88,11 @@ snr,cpe-w4n-mt)
[ -n "$idx" ] && \
ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x1000" "0x1000"
;;
tplink,ec330-g5u-v1)
idx="$(find_mtd_index u-boot-env)"
[ -n "$idx" ] && \
ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x1000" "0x20000"
;;
xiaomi,mi-router-3g-v2|\
xiaomi,mi-router-4a-gigabit|\
xiaomi,miwifi-3c)

View File

@ -34,12 +34,14 @@ ALLWIFIBOARDS:= \
glinet_gl-ap1300 \
glinet_gl-s1300 \
linksys_ea8300 \
linksys_whw03v2 \
p2w_r619ac \
pakedge_wr-1 \
qxwlan_e2600ac-c1 \
qxwlan_e2600ac-c2 \
sony_ncp-hg100-cellular \
teltonika_rutx \
zte_mf18a \
zte_mf289f
ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD))
@ -64,8 +66,10 @@ define ipq-wifi-install-one
$(call ipq-wifi-install-one-to,$(1),$(2),QCA9888/hw2.0),\
$(if $(filter $(suffix $(1)),.QCA9984 .qca9984),\
$(call ipq-wifi-install-one-to,$(1),$(2),QCA9984/hw1.0),\
$(if $(filter $(suffix $(1)),.QCA99X0 .qca99x0),\
$(call ipq-wifi-install-one-to,$(1),$(2),QCA99X0/hw2.0),\
$(error Unrecognized board-file suffix '$(suffix $(1))' for '$(1)')\
)))
))))
endef
# Blank line required at end of above define due to foreach context
@ -98,7 +102,7 @@ Do not install it for any other device!
endef
# Add board name to ALLWIFIBOARDS
# Place files in this directory as board-<devicename>.<qca4019|qca9888|qca9984>
# Place files in this directory as board-<devicename>.<qca4019|qca9888|qca9984|qca99x0>
# Add $(eval $(call generate-ipq-wifi-package,<devicename>,<display name>))
$(eval $(call generate-ipq-wifi-package,aruba_ap-365,Aruba AP-365))
@ -110,12 +114,14 @@ $(eval $(call generate-ipq-wifi-package,glinet_gl-a1300,GL.iNet GL-A1300))
$(eval $(call generate-ipq-wifi-package,glinet_gl-ap1300,GL.iNet GL-AP1300))
$(eval $(call generate-ipq-wifi-package,glinet_gl-s1300,GL.iNet GL-S1300))
$(eval $(call generate-ipq-wifi-package,linksys_ea8300,Linksys EA8300))
$(eval $(call generate-ipq-wifi-package,linksys_whw03v2,Linksys WHW03 V2))
$(eval $(call generate-ipq-wifi-package,p2w_r619ac,P&W R619AC))
$(eval $(call generate-ipq-wifi-package,pakedge_wr-1,Pakedge WR-1))
$(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac-c1,Qxwlan E2600AC C1))
$(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac-c2,Qxwlan E2600AC C2))
$(eval $(call generate-ipq-wifi-package,sony_ncp-hg100-cellular,Sony NCP-HG100/Cellular))
$(eval $(call generate-ipq-wifi-package,teltonika_rutx,Teltonika RUTX))
$(eval $(call generate-ipq-wifi-package,zte_mf18a,ZTE MF18A))
$(eval $(call generate-ipq-wifi-package,zte_mf289f,ZTE MF289F))
$(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE))))

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,60 @@
From 630df9786fdaeb78c21f1e28c9b70ac83a1b482c Mon Sep 17 00:00:00 2001
From: Vincent Tremblay <vincent@vtremblay.dev>
Date: Sat, 31 Dec 2022 09:24:00 -0500
Subject: [PATCH] ath10k: read qcom,coexist-support as a u32
Read qcom,coexist-support as a u32 instead of a u8
When we set the property to <1> in the DT (as specified in the doc),
"of_property_read_u8" read 0 instead of 1. This is because of the data format.
By default <1> is written with 32 bits.
The problem is that the driver is trying to read a u8.
The difference can be visualized using hexdump in a running device:
Default 32 bits output:
=======================
0000000 0000 0100
0000004
8 bits output:
==============
0000000 0001
0000001
By changing "of_property_read_u8" by "of_property_read_u32", the driver
is aligned with the documentation and is able to read the value without
modifying the DT.
The other solution would be to force the value in the DT to be saved as
an 8 bits value (qcom,coexist-support = /bits/ 8 <1>),
which is against the doc and less intuitive.
Validation:
===========
The patch was tested on a real device and we can see in the debug logs
that the feature is properly initialized:
[ 109.102097] ath10k_ahb a000000.wifi: boot coex_support 1 coex_gpio_pin 52
Signed-off-by: Vincent Tremblay <vincent@vtremblay.dev>
--- a/ath10k-5.15/core.c
+++ b/ath10k-5.15/core.c
@@ -2798,14 +2798,14 @@ done:
static void ath10k_core_fetch_btcoex_dt(struct ath10k *ar)
{
struct device_node *node;
- u8 coex_support = 0;
+ u32 coex_support = 0;
int ret;
node = ar->dev->of_node;
if (!node)
goto out;
- ret = of_property_read_u8(node, "qcom,coexist-support", &coex_support);
+ ret = of_property_read_u32(node, "qcom,coexist-support", &coex_support);
if (ret) {
ar->coex_support = true;
goto out;

View File

@ -20,7 +20,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -2992,7 +2992,8 @@ static int _regulator_list_voltage(struc
@@ -3000,7 +3000,8 @@ static int _regulator_list_voltage(struc
return rdev->desc->fixed_uV;
if (ops->list_voltage) {
@ -30,7 +30,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
return -EINVAL;
if (lock)
regulator_lock(rdev);
@@ -3143,7 +3144,8 @@ int regulator_list_hardware_vsel(struct
@@ -3151,7 +3152,8 @@ int regulator_list_hardware_vsel(struct
struct regulator_dev *rdev = regulator->rdev;
const struct regulator_ops *ops = rdev->desc->ops;
@ -40,7 +40,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
return -EINVAL;
if (ops->set_voltage_sel != regulator_set_voltage_sel_regmap)
return -EOPNOTSUPP;
@@ -4066,6 +4068,9 @@ int regulator_set_voltage_time(struct re
@@ -4074,6 +4076,9 @@ int regulator_set_voltage_time(struct re
for (i = 0; i < rdev->desc->n_voltages; i++) {
/* We only look for exact voltage matches here */

View File

@ -14,7 +14,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -4071,6 +4071,9 @@ int regulator_set_voltage_time(struct re
@@ -4079,6 +4079,9 @@ int regulator_set_voltage_time(struct re
if (i < rdev->desc->linear_min_sel)
continue;

View File

@ -21,7 +21,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -2992,9 +2992,10 @@ static int _regulator_list_voltage(struc
@@ -3000,9 +3000,10 @@ static int _regulator_list_voltage(struc
return rdev->desc->fixed_uV;
if (ops->list_voltage) {
@ -34,7 +34,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
if (lock)
regulator_lock(rdev);
ret = ops->list_voltage(rdev, selector);
@@ -3144,9 +3145,10 @@ int regulator_list_hardware_vsel(struct
@@ -3152,9 +3153,10 @@ int regulator_list_hardware_vsel(struct
struct regulator_dev *rdev = regulator->rdev;
const struct regulator_ops *ops = rdev->desc->ops;

View File

@ -7,7 +7,6 @@
model = "GL.iNet GL-AR300M-Lite";
};
/delete-node/ &reg_usb_vbus;
/delete-node/ &nand_flash;
@ -30,6 +29,3 @@
label = "green:wlan";
};
&usb0 {
/delete-property/ vbus-supply;
};

View File

@ -37,14 +37,14 @@
};
};
reg_usb_vbus: reg_usb_vbus {
compatible = "regulator-fixed";
gpio-export {
compatible = "gpio-export";
regulator-name = "usb_vbus";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio 2 GPIO_ACTIVE_HIGH>;
enable-active-high;
gpio_usb_power {
gpio-export,name = "usb_power";
gpio-export,output = <1>;
gpios = <&gpio 2 GPIO_ACTIVE_HIGH>;
};
};
leds {
@ -142,7 +142,6 @@
};
&usb0 {
vbus-supply = <&reg_usb_vbus>;
status = "okay";
};

View File

@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
@@ -3141,6 +3141,7 @@ int spi_nor_scan(struct spi_nor *nor, co
@@ -3143,6 +3143,7 @@ int spi_nor_scan(struct spi_nor *nor, co
struct device *dev = nor->dev;
struct mtd_info *mtd = &nor->mtd;
struct device_node *np = spi_nor_get_flash_node(nor);
@ -18,7 +18,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
int ret;
int i;
@@ -3195,7 +3196,12 @@ int spi_nor_scan(struct spi_nor *nor, co
@@ -3197,7 +3198,12 @@ int spi_nor_scan(struct spi_nor *nor, co
if (ret)
return ret;
@ -34,7 +34,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
mtd->type = MTD_NORFLASH;
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
@@ -848,6 +848,17 @@ out_error:
@@ -850,6 +850,17 @@ out_error:
*/
static void mtd_set_dev_defaults(struct mtd_info *mtd)
{

View File

@ -116,7 +116,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
}
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -1912,7 +1912,8 @@ int gpiochip_add_pingroup_range(struct g
@@ -1911,7 +1911,8 @@ int gpiochip_add_pingroup_range(struct g
list_add_tail(&pin_range->node, &gdev->pin_ranges);
@ -126,7 +126,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
}
EXPORT_SYMBOL_GPL(gpiochip_add_pingroup_range);
@@ -1969,7 +1970,7 @@ int gpiochip_add_pin_range(struct gpio_c
@@ -1968,7 +1969,7 @@ int gpiochip_add_pin_range(struct gpio_c
list_add_tail(&pin_range->node, &gdev->pin_ranges);

View File

@ -107,7 +107,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
}
static struct clk clk_pcie = {
@@ -548,6 +562,21 @@ static struct clk_lookup bcm6368_clks[]
@@ -550,6 +564,21 @@ static struct clk_lookup bcm6368_clks[]
CLKDEV_INIT(NULL, "ipsec", &clk_ipsec),
};
@ -129,7 +129,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
#define HSSPI_PLL_HZ_6328 133333333
#define HSSPI_PLL_HZ_6362 400000000
@@ -580,6 +609,10 @@ static int __init bcm63xx_clk_init(void)
@@ -582,6 +611,10 @@ static int __init bcm63xx_clk_init(void)
case BCM6368_CPU_ID:
clkdev_add_table(bcm6368_clks, ARRAY_SIZE(bcm6368_clks));
break;

View File

@ -57,7 +57,7 @@ Subject: [PATCH 51/53] MIPS: BCM63XX: add support for BCM6318
mask = CKCTL_6328_HSSPI_EN;
else if (BCMCPU_IS_6362())
mask = CKCTL_6362_HSSPI_EN;
@@ -456,6 +458,19 @@ static struct clk_lookup bcm3368_clks[]
@@ -458,6 +460,19 @@ static struct clk_lookup bcm3368_clks[]
CLKDEV_INIT("bcm63xx_enet.1", "enet", &clk_enet1),
};
@ -77,7 +77,7 @@ Subject: [PATCH 51/53] MIPS: BCM63XX: add support for BCM6318
static struct clk_lookup bcm6328_clks[] = {
/* fixed rate clocks */
CLKDEV_INIT(NULL, "periph", &clk_periph),
@@ -577,6 +592,7 @@ static struct clk_lookup bcm63268_clks[]
@@ -579,6 +594,7 @@ static struct clk_lookup bcm63268_clks[]
CLKDEV_INIT(NULL, "pcie", &clk_pcie),
};
@ -85,7 +85,7 @@ Subject: [PATCH 51/53] MIPS: BCM63XX: add support for BCM6318
#define HSSPI_PLL_HZ_6328 133333333
#define HSSPI_PLL_HZ_6362 400000000
@@ -586,6 +602,10 @@ static int __init bcm63xx_clk_init(void)
@@ -588,6 +604,10 @@ static int __init bcm63xx_clk_init(void)
case BCM3368_CPU_ID:
clkdev_add_table(bcm3368_clks, ARRAY_SIZE(bcm3368_clks));
break;

View File

@ -9,7 +9,7 @@ Subject: [PATCH] MIPS: BCM63XX: add clkdev lookups for device tree
--- a/arch/mips/bcm63xx/clk.c
+++ b/arch/mips/bcm63xx/clk.c
@@ -501,6 +501,8 @@ static struct clk_lookup bcm3368_clks[]
@@ -503,6 +503,8 @@ static struct clk_lookup bcm3368_clks[]
CLKDEV_INIT(NULL, "periph", &clk_periph),
CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
CLKDEV_INIT("bcm63xx_uart.1", "refclk", &clk_periph),
@ -18,7 +18,7 @@ Subject: [PATCH] MIPS: BCM63XX: add clkdev lookups for device tree
/* gated clocks */
CLKDEV_INIT(NULL, "enet0", &clk_enet0),
CLKDEV_INIT(NULL, "enet1", &clk_enet1),
@@ -517,7 +519,9 @@ static struct clk_lookup bcm6318_clks[]
@@ -519,7 +521,9 @@ static struct clk_lookup bcm6318_clks[]
/* fixed rate clocks */
CLKDEV_INIT(NULL, "periph", &clk_periph),
CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
@ -28,7 +28,7 @@ Subject: [PATCH] MIPS: BCM63XX: add clkdev lookups for device tree
/* gated clocks */
CLKDEV_INIT(NULL, "enetsw", &clk_enetsw),
CLKDEV_INIT(NULL, "usbh", &clk_usbh),
@@ -531,7 +535,10 @@ static struct clk_lookup bcm6328_clks[]
@@ -533,7 +537,10 @@ static struct clk_lookup bcm6328_clks[]
CLKDEV_INIT(NULL, "periph", &clk_periph),
CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
CLKDEV_INIT("bcm63xx_uart.1", "refclk", &clk_periph),
@ -39,7 +39,7 @@ Subject: [PATCH] MIPS: BCM63XX: add clkdev lookups for device tree
/* gated clocks */
CLKDEV_INIT(NULL, "enetsw", &clk_enetsw),
CLKDEV_INIT(NULL, "usbh", &clk_usbh),
@@ -544,6 +551,7 @@ static struct clk_lookup bcm6338_clks[]
@@ -546,6 +553,7 @@ static struct clk_lookup bcm6338_clks[]
/* fixed rate clocks */
CLKDEV_INIT(NULL, "periph", &clk_periph),
CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
@ -47,7 +47,7 @@ Subject: [PATCH] MIPS: BCM63XX: add clkdev lookups for device tree
/* gated clocks */
CLKDEV_INIT(NULL, "enet0", &clk_enet0),
CLKDEV_INIT(NULL, "enet1", &clk_enet1),
@@ -558,6 +566,7 @@ static struct clk_lookup bcm6345_clks[]
@@ -560,6 +568,7 @@ static struct clk_lookup bcm6345_clks[]
/* fixed rate clocks */
CLKDEV_INIT(NULL, "periph", &clk_periph),
CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
@ -55,7 +55,7 @@ Subject: [PATCH] MIPS: BCM63XX: add clkdev lookups for device tree
/* gated clocks */
CLKDEV_INIT(NULL, "enet0", &clk_enet0),
CLKDEV_INIT(NULL, "enet1", &clk_enet1),
@@ -572,6 +581,7 @@ static struct clk_lookup bcm6348_clks[]
@@ -574,6 +583,7 @@ static struct clk_lookup bcm6348_clks[]
/* fixed rate clocks */
CLKDEV_INIT(NULL, "periph", &clk_periph),
CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
@ -63,7 +63,7 @@ Subject: [PATCH] MIPS: BCM63XX: add clkdev lookups for device tree
/* gated clocks */
CLKDEV_INIT(NULL, "enet0", &clk_enet0),
CLKDEV_INIT(NULL, "enet1", &clk_enet1),
@@ -588,6 +598,8 @@ static struct clk_lookup bcm6358_clks[]
@@ -590,6 +600,8 @@ static struct clk_lookup bcm6358_clks[]
CLKDEV_INIT(NULL, "periph", &clk_periph),
CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
CLKDEV_INIT("bcm63xx_uart.1", "refclk", &clk_periph),
@ -72,7 +72,7 @@ Subject: [PATCH] MIPS: BCM63XX: add clkdev lookups for device tree
/* gated clocks */
CLKDEV_INIT(NULL, "enet0", &clk_enet0),
CLKDEV_INIT(NULL, "enet1", &clk_enet1),
@@ -607,7 +619,10 @@ static struct clk_lookup bcm6362_clks[]
@@ -609,7 +621,10 @@ static struct clk_lookup bcm6362_clks[]
CLKDEV_INIT(NULL, "periph", &clk_periph),
CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
CLKDEV_INIT("bcm63xx_uart.1", "refclk", &clk_periph),
@ -83,7 +83,7 @@ Subject: [PATCH] MIPS: BCM63XX: add clkdev lookups for device tree
/* gated clocks */
CLKDEV_INIT(NULL, "enetsw", &clk_enetsw),
CLKDEV_INIT(NULL, "usbh", &clk_usbh),
@@ -623,6 +638,8 @@ static struct clk_lookup bcm6368_clks[]
@@ -625,6 +640,8 @@ static struct clk_lookup bcm6368_clks[]
CLKDEV_INIT(NULL, "periph", &clk_periph),
CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
CLKDEV_INIT("bcm63xx_uart.1", "refclk", &clk_periph),
@ -92,7 +92,7 @@ Subject: [PATCH] MIPS: BCM63XX: add clkdev lookups for device tree
/* gated clocks */
CLKDEV_INIT(NULL, "enetsw", &clk_enetsw),
CLKDEV_INIT(NULL, "usbh", &clk_usbh),
@@ -637,7 +654,10 @@ static struct clk_lookup bcm63268_clks[]
@@ -639,7 +656,10 @@ static struct clk_lookup bcm63268_clks[]
CLKDEV_INIT(NULL, "periph", &clk_periph),
CLKDEV_INIT("bcm63xx_uart.0", "refclk", &clk_periph),
CLKDEV_INIT("bcm63xx_uart.1", "refclk", &clk_periph),

View File

@ -24,7 +24,7 @@
* Internal peripheral clock
*/
static struct clk clk_periph = {
@@ -624,6 +641,7 @@ static struct clk_lookup bcm6362_clks[]
@@ -626,6 +643,7 @@ static struct clk_lookup bcm6362_clks[]
CLKDEV_INIT("bcm63xx-hsspi.0", "pll", &clk_hsspi_pll),
CLKDEV_INIT("10001000.spi", "pll", &clk_hsspi_pll),
/* gated clocks */
@ -32,7 +32,7 @@
CLKDEV_INIT(NULL, "enetsw", &clk_enetsw),
CLKDEV_INIT(NULL, "usbh", &clk_usbh),
CLKDEV_INIT(NULL, "usbd", &clk_usbd),
@@ -641,6 +659,7 @@ static struct clk_lookup bcm6368_clks[]
@@ -643,6 +661,7 @@ static struct clk_lookup bcm6368_clks[]
CLKDEV_INIT("10000100.serial", "refclk", &clk_periph),
CLKDEV_INIT("10000120.serial", "refclk", &clk_periph),
/* gated clocks */
@ -40,7 +40,7 @@
CLKDEV_INIT(NULL, "enetsw", &clk_enetsw),
CLKDEV_INIT(NULL, "usbh", &clk_usbh),
CLKDEV_INIT(NULL, "usbd", &clk_usbd),
@@ -659,6 +678,7 @@ static struct clk_lookup bcm63268_clks[]
@@ -661,6 +680,7 @@ static struct clk_lookup bcm63268_clks[]
CLKDEV_INIT("bcm63xx-hsspi.0", "pll", &clk_hsspi_pll),
CLKDEV_INIT("10001000.spi", "pll", &clk_hsspi_pll),
/* gated clocks */

View File

@ -103,4 +103,4 @@ Link: https://lore.kernel.org/linux-mtd/20220622010628.30414-4-ansuelsmth@gmail.
+ mtd_check_of_node(mtd);
of_node_get(mtd_get_of_node(mtd));
error = device_register(&mtd->dev);
if (error)
if (error) {

View File

@ -25,7 +25,7 @@ Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
@@ -1070,6 +1070,34 @@ int __get_mtd_device(struct mtd_info *mt
@@ -1072,6 +1072,34 @@ int __get_mtd_device(struct mtd_info *mt
EXPORT_SYMBOL_GPL(__get_mtd_device);
/**

View File

@ -27,7 +27,7 @@ Link: https://lore.kernel.org/linux-mtd/20221022211318.32009-2-zajec5@gmail.com
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
@@ -743,6 +744,17 @@ int add_mtd_device(struct mtd_info *mtd)
@@ -745,6 +746,17 @@ int add_mtd_device(struct mtd_info *mtd)
not->add(mtd);
mutex_unlock(&mtd_table_mutex);

View File

@ -30,7 +30,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -347,6 +347,7 @@ struct napi_struct {
@@ -354,6 +354,7 @@ struct napi_struct {
struct list_head dev_list;
struct hlist_node napi_hash_node;
unsigned int napi_id;
@ -38,7 +38,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
};
enum {
@@ -357,6 +358,7 @@ enum {
@@ -364,6 +365,7 @@ enum {
NAPI_STATE_LISTED, /* NAPI added to system lists */
NAPI_STATE_NO_BUSY_POLL,/* Do not add in napi_hash, no busy polling */
NAPI_STATE_IN_BUSY_POLL,/* sk_busy_loop() owns this NAPI */
@ -46,7 +46,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
};
enum {
@@ -367,6 +369,7 @@ enum {
@@ -374,6 +376,7 @@ enum {
NAPIF_STATE_LISTED = BIT(NAPI_STATE_LISTED),
NAPIF_STATE_NO_BUSY_POLL = BIT(NAPI_STATE_NO_BUSY_POLL),
NAPIF_STATE_IN_BUSY_POLL = BIT(NAPI_STATE_IN_BUSY_POLL),
@ -54,7 +54,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
};
enum gro_result {
@@ -497,20 +500,7 @@ static inline bool napi_complete(struct
@@ -504,20 +507,7 @@ static inline bool napi_complete(struct
*/
void napi_disable(struct napi_struct *n);
@ -76,7 +76,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
/**
* napi_synchronize - wait until NAPI is not running
@@ -1856,6 +1846,8 @@ enum netdev_ml_priv_type {
@@ -1863,6 +1853,8 @@ enum netdev_ml_priv_type {
*
* @wol_enabled: Wake-on-LAN is enabled
*
@ -85,7 +85,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
* @net_notifier_list: List of per-net netdev notifier block
* that follow this device when it is moved
* to another network namespace.
@@ -2175,6 +2167,7 @@ struct net_device {
@@ -2182,6 +2174,7 @@ struct net_device {
struct lock_class_key *qdisc_running_key;
bool proto_down;
unsigned wol_enabled:1;

View File

@ -46,7 +46,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
+ == ==================================
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -491,6 +491,8 @@ static inline bool napi_complete(struct
@@ -498,6 +498,8 @@ static inline bool napi_complete(struct
return napi_complete_done(n, 0);
}

View File

@ -27,7 +27,7 @@ Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -359,6 +359,7 @@ enum {
@@ -366,6 +366,7 @@ enum {
NAPI_STATE_NO_BUSY_POLL,/* Do not add in napi_hash, no busy polling */
NAPI_STATE_IN_BUSY_POLL,/* sk_busy_loop() owns this NAPI */
NAPI_STATE_THREADED, /* The poll is performed inside its own thread*/
@ -35,7 +35,7 @@ Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
};
enum {
@@ -370,6 +371,7 @@ enum {
@@ -377,6 +378,7 @@ enum {
NAPIF_STATE_NO_BUSY_POLL = BIT(NAPI_STATE_NO_BUSY_POLL),
NAPIF_STATE_IN_BUSY_POLL = BIT(NAPI_STATE_IN_BUSY_POLL),
NAPIF_STATE_THREADED = BIT(NAPI_STATE_THREADED),

View File

@ -58,7 +58,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -841,6 +841,27 @@ typedef u16 (*select_queue_fallback_t)(s
@@ -848,6 +848,27 @@ typedef u16 (*select_queue_fallback_t)(s
struct sk_buff *skb,
struct net_device *sb_dev);
@ -86,7 +86,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
enum tc_setup_type {
TC_SETUP_QDISC_MQPRIO,
TC_SETUP_CLSU32,
@@ -1287,6 +1308,8 @@ struct netdev_net_notifier {
@@ -1294,6 +1315,8 @@ struct netdev_net_notifier {
* struct net_device *(*ndo_get_peer_dev)(struct net_device *dev);
* If a device is paired with a peer device, return the peer instance.
* The caller must be under RCU read context.
@ -95,7 +95,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
*/
struct net_device_ops {
int (*ndo_init)(struct net_device *dev);
@@ -1495,6 +1518,8 @@ struct net_device_ops {
@@ -1502,6 +1525,8 @@ struct net_device_ops {
int (*ndo_tunnel_ctl)(struct net_device *dev,
struct ip_tunnel_parm *p, int cmd);
struct net_device * (*ndo_get_peer_dev)(struct net_device *dev);
@ -104,7 +104,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
};
/**
@@ -2842,6 +2867,8 @@ void dev_remove_offload(struct packet_of
@@ -2849,6 +2874,8 @@ void dev_remove_offload(struct packet_of
int dev_get_iflink(const struct net_device *dev);
int dev_fill_metadata_dst(struct net_device *dev, struct sk_buff *skb);

View File

@ -28,7 +28,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -843,11 +843,18 @@ typedef u16 (*select_queue_fallback_t)(s
@@ -850,11 +850,18 @@ typedef u16 (*select_queue_fallback_t)(s
enum net_device_path_type {
DEV_PATH_ETHERNET = 0,

View File

@ -9,7 +9,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -844,6 +844,7 @@ typedef u16 (*select_queue_fallback_t)(s
@@ -851,6 +851,7 @@ typedef u16 (*select_queue_fallback_t)(s
enum net_device_path_type {
DEV_PATH_ETHERNET = 0,
DEV_PATH_VLAN,

View File

@ -15,7 +15,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -855,10 +855,20 @@ struct net_device_path {
@@ -862,10 +862,20 @@ struct net_device_path {
u16 id;
__be16 proto;
} encap;
@ -36,7 +36,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
struct net_device_path_stack {
int num_paths;
@@ -868,6 +878,12 @@ struct net_device_path_stack {
@@ -875,6 +885,12 @@ struct net_device_path_stack {
struct net_device_path_ctx {
const struct net_device *dev;
const u8 *daddr;

View File

@ -83,7 +83,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
static int pppoe_recvmsg(struct socket *sock, struct msghdr *m,
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -845,6 +845,7 @@ enum net_device_path_type {
@@ -852,6 +852,7 @@ enum net_device_path_type {
DEV_PATH_ETHERNET = 0,
DEV_PATH_VLAN,
DEV_PATH_BRIDGE,
@ -91,7 +91,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
};
struct net_device_path {
@@ -854,6 +855,7 @@ struct net_device_path {
@@ -861,6 +862,7 @@ struct net_device_path {
struct {
u16 id;
__be16 proto;

View File

@ -10,7 +10,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -846,6 +846,7 @@ enum net_device_path_type {
@@ -853,6 +853,7 @@ enum net_device_path_type {
DEV_PATH_VLAN,
DEV_PATH_BRIDGE,
DEV_PATH_PPPOE,
@ -18,7 +18,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
};
struct net_device_path {
@@ -866,6 +867,10 @@ struct net_device_path {
@@ -873,6 +874,10 @@ struct net_device_path {
u16 vlan_id;
__be16 vlan_proto;
} bridge;

View File

@ -12,7 +12,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -863,6 +863,7 @@ struct net_device_path {
@@ -870,6 +870,7 @@ struct net_device_path {
DEV_PATH_BR_VLAN_KEEP,
DEV_PATH_BR_VLAN_TAG,
DEV_PATH_BR_VLAN_UNTAG,

View File

@ -77,7 +77,7 @@ Signed-off-by: Guenter Roeck <linux@roeck-us.net>
+======================= =====================================================================
--- a/drivers/hwmon/Kconfig
+++ b/drivers/hwmon/Kconfig
@@ -1102,6 +1102,17 @@ config SENSORS_TC654
@@ -1103,6 +1103,17 @@ config SENSORS_TC654
This driver can also be built as a module. If so, the module
will be called tc654.

View File

@ -38,7 +38,7 @@ Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
--- a/drivers/net/usb/rndis_host.c
+++ b/drivers/net/usb/rndis_host.c
@@ -485,10 +485,14 @@ EXPORT_SYMBOL_GPL(rndis_unbind);
@@ -486,10 +486,14 @@ EXPORT_SYMBOL_GPL(rndis_unbind);
*/
int rndis_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
{
@ -53,7 +53,7 @@ Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
/* peripheral may have batched packets to us... */
while (likely(skb->len)) {
struct rndis_data_hdr *hdr = (void *)skb->data;
@@ -523,10 +527,17 @@ int rndis_rx_fixup(struct usbnet *dev, s
@@ -524,10 +528,17 @@ int rndis_rx_fixup(struct usbnet *dev, s
break;
skb_pull(skb, msg_len - sizeof *hdr);
skb_trim(skb2, data_len);
@ -71,7 +71,7 @@ Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
return 1;
}
EXPORT_SYMBOL_GPL(rndis_rx_fixup);
@@ -600,6 +611,17 @@ static const struct driver_info rndis_po
@@ -601,6 +612,17 @@ static const struct driver_info rndis_po
.tx_fixup = rndis_tx_fixup,
};
@ -89,7 +89,7 @@ Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
/*-------------------------------------------------------------------------*/
static const struct usb_device_id products [] = {
@@ -609,6 +631,16 @@ static const struct usb_device_id produc
@@ -610,6 +632,16 @@ static const struct usb_device_id produc
USB_CLASS_COMM, 2 /* ACM */, 0x0ff),
.driver_info = (unsigned long) &rndis_poll_status_info,
}, {

View File

@ -23,7 +23,7 @@ Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
--- a/drivers/net/usb/rndis_host.c
+++ b/drivers/net/usb/rndis_host.c
@@ -418,10 +418,7 @@ generic_rndis_bind(struct usbnet *dev, s
@@ -419,10 +419,7 @@ generic_rndis_bind(struct usbnet *dev, s
goto halt_fail_and_release;
}
@ -35,7 +35,7 @@ Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
/* set a nonzero filter to enable data transfers */
memset(u.set, 0, sizeof *u.set);
@@ -463,6 +460,16 @@ static int rndis_bind(struct usbnet *dev
@@ -464,6 +461,16 @@ static int rndis_bind(struct usbnet *dev
return generic_rndis_bind(dev, intf, FLAG_RNDIS_PHYM_NOT_WIRELESS);
}
@ -52,7 +52,7 @@ Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
void rndis_unbind(struct usbnet *dev, struct usb_interface *intf)
{
struct rndis_halt *halt;
@@ -615,7 +622,7 @@ static const struct driver_info zte_rndi
@@ -616,7 +623,7 @@ static const struct driver_info zte_rndi
.description = "ZTE RNDIS device",
.flags = FLAG_ETHER | FLAG_POINTTOPOINT | FLAG_FRAMING_RN | FLAG_NO_SETINT,
.data = RNDIS_DRIVER_DATA_DST_MAC_FIXUP,

View File

@ -77,7 +77,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
#include "mtdcore.h"
@@ -928,6 +929,8 @@ int mtd_device_parse_register(struct mtd
@@ -930,6 +931,8 @@ int mtd_device_parse_register(struct mtd
register_reboot_notifier(&mtd->reboot_notifier);
}

View File

@ -12,7 +12,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
@@ -756,7 +756,8 @@ int add_mtd_device(struct mtd_info *mtd)
@@ -758,7 +758,8 @@ int add_mtd_device(struct mtd_info *mtd)
mutex_unlock(&mtd_table_mutex);

View File

@ -7,7 +7,7 @@ Fix assumption about the block device index
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
@@ -758,12 +758,18 @@ int add_mtd_device(struct mtd_info *mtd)
@@ -760,12 +760,18 @@ int add_mtd_device(struct mtd_info *mtd)
if (of_find_property(mtd_get_of_node(mtd), "linux,rootfs", NULL) ||
(IS_ENABLED(CONFIG_MTD_ROOTFS_ROOT_DEV) && !strcmp(mtd->name, "rootfs") && ROOT_DEV == 0)) {

View File

@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1639,6 +1639,7 @@ enum netdev_priv_flags {
@@ -1646,6 +1646,7 @@ enum netdev_priv_flags {
IFF_FAILOVER_SLAVE = 1<<28,
IFF_L3MDEV_RX_HANDLER = 1<<29,
IFF_LIVE_RENAME_OK = 1<<30,
@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
};
#define IFF_802_1Q_VLAN IFF_802_1Q_VLAN
@@ -1671,6 +1672,7 @@ enum netdev_priv_flags {
@@ -1678,6 +1679,7 @@ enum netdev_priv_flags {
#define IFF_FAILOVER_SLAVE IFF_FAILOVER_SLAVE
#define IFF_L3MDEV_RX_HANDLER IFF_L3MDEV_RX_HANDLER
#define IFF_LIVE_RENAME_OK IFF_LIVE_RENAME_OK
@ -35,7 +35,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 {
@@ -2011,6 +2013,11 @@ struct net_device {
@@ -2018,6 +2020,11 @@ struct net_device {
const struct tlsdev_ops *tlsdev_ops;
#endif
@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
const struct header_ops *header_ops;
unsigned int flags;
@@ -2101,6 +2108,10 @@ struct net_device {
@@ -2108,6 +2115,10 @@ struct net_device {
struct mpls_dev __rcu *mpls_ptr;
#endif
@ -60,7 +60,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
*/
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -2720,6 +2720,10 @@ static inline int pskb_trim(struct sk_bu
@@ -2725,6 +2725,10 @@ static inline int pskb_trim(struct sk_bu
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
}
@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/**
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
* @skb: buffer to alter
@@ -2851,16 +2855,6 @@ static inline struct sk_buff *dev_alloc_
@@ -2856,16 +2860,6 @@ static inline struct sk_buff *dev_alloc_
}

View File

@ -29,7 +29,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/fs/locks.c
+++ b/fs/locks.c
@@ -2993,6 +2993,8 @@ static const struct seq_operations locks
@@ -3016,6 +3016,8 @@ static const struct seq_operations locks
static int __init proc_locks_init(void)
{

View File

@ -1,19 +0,0 @@
From: Felix Fietkau <nbd@nbd.name>
Subject: uapi: Fix an issue with kernel headers that broke perf
Submitted-by: Felix Fietkau <nbd@nbd.name>
---
include/uapi/linux/swab.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/include/uapi/linux/swab.h
+++ b/include/uapi/linux/swab.h
@@ -3,7 +3,7 @@
#define _UAPI_LINUX_SWAB_H
#include <linux/types.h>
-#include <linux/compiler.h>
+#include <linux/stddef.h>
#include <asm/bitsperlong.h>
#include <asm/swab.h>

View File

@ -11,7 +11,7 @@ Signed-off-by: Vincent Tremblay <vincent@vtremblay.dev>
--- a/drivers/spi/spidev.c
+++ b/drivers/spi/spidev.c
@@ -682,6 +682,7 @@ static const struct of_device_id spidev_
@@ -693,6 +693,7 @@ static const struct of_device_id spidev_
{ .compatible = "lwn,bk4" },
{ .compatible = "dh,dhcom-board" },
{ .compatible = "menlo,m53cpld" },

View File

@ -12,7 +12,7 @@ Signed-off-by: Vincent Tremblay <vincent@vtremblay.dev>
--- a/drivers/spi/spidev.c
+++ b/drivers/spi/spidev.c
@@ -683,6 +683,7 @@ static const struct of_device_id spidev_
@@ -694,6 +694,7 @@ static const struct of_device_id spidev_
{ .compatible = "dh,dhcom-board" },
{ .compatible = "menlo,m53cpld" },
{ .compatible = "silabs,em3581" },

View File

@ -202,7 +202,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
return !!nor->params->erase_map.uniform_erase_type;
}
@@ -2569,6 +2571,7 @@ static int spi_nor_select_erase(struct s
@@ -2571,6 +2573,7 @@ static int spi_nor_select_erase(struct s
{
struct spi_nor_erase_map *map = &nor->params->erase_map;
const struct spi_nor_erase_type *erase = NULL;
@ -210,7 +210,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
struct mtd_info *mtd = &nor->mtd;
u32 wanted_size = nor->info->sector_size;
int i;
@@ -2601,8 +2604,9 @@ static int spi_nor_select_erase(struct s
@@ -2603,8 +2606,9 @@ static int spi_nor_select_erase(struct s
*/
for (i = SNOR_ERASE_TYPE_MAX - 1; i >= 0; i--) {
if (map->erase_type[i].size) {
@ -222,7 +222,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
}
}
@@ -2610,6 +2614,9 @@ static int spi_nor_select_erase(struct s
@@ -2612,6 +2616,9 @@ static int spi_nor_select_erase(struct s
return -EINVAL;
mtd->erasesize = erase->size;

View File

@ -59,7 +59,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+};
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
@@ -2037,6 +2037,7 @@ static const struct spi_nor_manufacturer
@@ -2039,6 +2039,7 @@ static const struct spi_nor_manufacturer
&spi_nor_winbond,
&spi_nor_xilinx,
&spi_nor_xmc,

View File

@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
goto out;
if (!net_eq(dev_net(dev), sock_net(sk)))
@@ -2079,12 +2081,12 @@ static int packet_rcv(struct sk_buff *sk
@@ -2089,12 +2091,12 @@ static int packet_rcv(struct sk_buff *sk
unsigned int snaplen, res;
bool is_drop_n_account = false;
@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
@@ -2210,12 +2212,12 @@ static int tpacket_rcv(struct sk_buff *s
@@ -2220,12 +2222,12 @@ static int tpacket_rcv(struct sk_buff *s
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
@@ -3329,6 +3331,7 @@ static int packet_create(struct net *net
@@ -3339,6 +3341,7 @@ static int packet_create(struct net *net
mutex_init(&po->pg_vec_lock);
po->rollover = NULL;
po->prot_hook.func = packet_rcv;
@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
@@ -3972,6 +3975,16 @@ packet_setsockopt(struct socket *sock, i
@@ -3982,6 +3985,16 @@ packet_setsockopt(struct socket *sock, i
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
return 0;
}
@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
default:
return -ENOPROTOOPT;
}
@@ -4028,6 +4041,13 @@ static int packet_getsockopt(struct sock
@@ -4038,6 +4051,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR:
val = po->has_vnet_hdr;
break;

View File

@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -2686,7 +2686,7 @@ static inline int pskb_network_may_pull(
@@ -2691,7 +2691,7 @@ static inline int pskb_network_may_pull(
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
*/
#ifndef NET_SKB_PAD

View File

@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -2050,6 +2050,8 @@ struct net_device {
@@ -2057,6 +2057,8 @@ struct net_device {
struct netdev_hw_addr_list mc;
struct netdev_hw_addr_list dev_addrs;
@ -22,7 +22,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
#endif
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -860,6 +860,7 @@ struct sk_buff {
@@ -861,6 +861,7 @@ struct sk_buff {
__u8 decrypted:1;
#endif
__u8 scm_io_uring:1;

View File

@ -233,7 +233,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
static inline void
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -847,6 +847,7 @@ enum net_device_path_type {
@@ -854,6 +854,7 @@ enum net_device_path_type {
DEV_PATH_BRIDGE,
DEV_PATH_PPPOE,
DEV_PATH_DSA,
@ -241,7 +241,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
};
struct net_device_path {
@@ -872,6 +873,12 @@ struct net_device_path {
@@ -879,6 +880,12 @@ struct net_device_path {
int port;
u16 proto;
} dsa;

View File

@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -892,7 +892,7 @@ struct net_device_path_stack {
@@ -899,7 +899,7 @@ struct net_device_path_stack {
struct net_device_path_ctx {
const struct net_device *dev;

View File

@ -34,10 +34,12 @@ ipq40xx_setup_interfaces()
edgecore,ecw5211|\
glinet,gl-b2200|\
google,wifi|\
linksys,whw03v2|\
luma,wrtq-329acn|\
mikrotik,cap-ac|\
netgear,wac510|\
sony,ncp-hg100-cellular|\
zte,mf18a|\
zte,mf289f)
ucidef_set_interfaces_lan_wan "lan" "wan"
;;

View File

@ -11,7 +11,8 @@ boot() {
linksys,ea6350v3|\
linksys,ea8300|\
linksys,mr8300|\
linksys,whw01)
linksys,whw01|\
linksys,whw03v2)
mtd resetbc s_env || true
;;
netgear,wac510)

View File

@ -25,6 +25,7 @@ Once this is done. Retry.
EOF
return 1
;;
zte,mf18a |\
zte,mf286d |\
zte,mf289f)
CI_UBIPART="rootfs"
@ -164,7 +165,8 @@ platform_do_upgrade() {
linksys,ea6350v3 |\
linksys,ea8300 |\
linksys,mr8300 |\
linksys,whw01)
linksys,whw01 |\
linksys,whw03v2)
platform_do_upgrade_linksys "$1"
;;
meraki,mr33 |\
@ -203,6 +205,7 @@ platform_do_upgrade() {
sony_emmc_do_upgrade "$1"
;;
teltonika,rutx10 |\
zte,mf18a |\
zte,mf286d |\
zte,mf289f)
CI_UBIPART="rootfs"

View File

@ -0,0 +1,482 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
// Copyright (c) 2022, Pawel Dembicki <paweldembicki@gmail.com>.
// Copyright (c) 2022, Marcin Gajda <mgajda@o2.pl>.
#include "qcom-ipq4019.dtsi"
#include <dt-bindings/soc/qcom,tcsr.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
/ {
model = "ZTE MF18A";
compatible = "zte,mf18a";
aliases {
led-boot = &led_power;
led-failsafe = &led_power;
led-running = &led_power;
led-upgrade = &led_power;
};
chosen {
/*
* bootargs forced by u-boot bootipq command:
* 'ubi.mtd=rootfs root=mtd:ubi_rootfs rootfstype=squashfs rootwait'
*/
bootargs-append = " root=/dev/ubiblock0_1";
};
gpio-restart {
compatible = "gpio-restart";
gpios = <&tlmm 8 GPIO_ACTIVE_HIGH>;
};
leds {
compatible = "gpio-leds";
led_internal: led-0 {
label = "blue:internal";
gpios = <&tlmm 10 GPIO_ACTIVE_LOW>;
default-state = "keep";
};
led_power: led-1 {
label = "blue:power";
gpios = <&tlmm 48 GPIO_ACTIVE_HIGH>;
default-state = "keep";
};
led-2 {
function = LED_FUNCTION_WLAN;
label = "blue:wlan";
gpios = <&tlmm 23 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy0tpt";
};
led-3 {
label = "red:wlan";
gpios = <&tlmm 26 GPIO_ACTIVE_HIGH>;
};
led-4 {
function = LED_FUNCTION_WLAN;
label = "blue:smart";
gpios = <&tlmm 22 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy1tpt";
};
led-5 {
label = "red:smart";
gpios = <&tlmm 25 GPIO_ACTIVE_HIGH>;
};
resetzwave {
label = "resetzwave";
gpios = <&tlmm 11 GPIO_ACTIVE_HIGH>;
};
};
keys {
compatible = "gpio-keys";
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
};
wps {
label = "wps";
linux,code = <KEY_WPS_BUTTON>;
gpios = <&tlmm 68 GPIO_ACTIVE_LOW>;
};
};
soc {
rng@22000 {
status = "okay";
};
mdio@90000 {
status = "okay";
pinctrl-0 = <&mdio_pins>;
pinctrl-names = "default";
reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>;
reset-delay-us = <2000>;
};
tcsr@1949000 {
compatible = "qcom,tcsr";
reg = <0x1949000 0x100>;
qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
};
tcsr@194b000 {
/* select hostmode */
compatible = "qcom,tcsr";
reg = <0x194b000 0x100>;
qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
status = "okay";
};
ess_tcsr@1953000 {
compatible = "qcom,tcsr";
reg = <0x1953000 0x1000>;
qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
};
tcsr@1957000 {
compatible = "qcom,tcsr";
reg = <0x1957000 0x100>;
qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
};
usb2@60f8800 {
status = "okay";
};
usb3@8af8800 {
status = "okay";
};
crypto@8e3a000 {
status = "okay";
};
watchdog@b017000 {
status = "okay";
};
};
};
&blsp_dma {
status = "okay";
};
&blsp1_spi1 {
pinctrl-0 = <&spi_0_pins>;
pinctrl-names = "default";
status = "okay";
cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
flash@0 {
/* u-boot is looking for "n25q128a11" property */
compatible = "jedec,spi-nor", "n25q128a11";
#address-cells = <1>;
#size-cells = <1>;
reg = <0>;
spi-max-frequency = <24000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "0:SBL1";
reg = <0x0 0x40000>;
read-only;
};
partition@40000 {
label = "0:MIBIB";
reg = <0x40000 0x20000>;
read-only;
};
partition@60000 {
label = "0:QSEE";
reg = <0x60000 0x60000>;
read-only;
};
partition@c0000 {
label = "0:CDT";
reg = <0xc0000 0x10000>;
read-only;
};
partition@d0000 {
label = "0:DDRPARAMS";
reg = <0xd0000 0x10000>;
read-only;
};
partition@e0000 {
label = "0:APPSBLENV";
reg = <0xe0000 0x10000>;
read-only;
};
partition@f0000 {
label = "0:APPSBL";
reg = <0xf0000 0xc0000>;
read-only;
};
partition@1b0000 {
label = "0:reserved1";
reg = <0x1b0000 0x50000>;
read-only;
};
};
};
};
&blsp1_uart1 {
pinctrl-0 = <&serial_pins>;
pinctrl-names = "default";
status = "okay";
};
&cryptobam {
status = "okay";
};
&gmac {
status = "okay";
nvmem-cell-names = "mac-address";
nvmem-cells = <&macaddr_config_0>;
};
&switch {
status = "okay";
};
&swport2 {
status = "okay";
label = "wan";
nvmem-cell-names = "mac-address";
nvmem-cells = <&macaddr_config_0>;
mac-address-increment = <1>;
};
&swport3 {
status = "okay";
label = "lan";
};
&nand {
pinctrl-0 = <&nand_pins>;
pinctrl-names = "default";
status = "okay";
nand@0 {
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "fota-flag";
reg = <0x0 0xa0000>;
read-only;
};
partition@a0000 {
label = "ART";
reg = <0xa0000 0x80000>;
read-only;
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;
precal_art_1000: precal@1000 {
reg = <0x1000 0x2f20>;
};
precal_art_9000: precal@9000 {
reg = <0x9000 0x2f20>;
};
};
partition@120000 {
label = "mac";
reg = <0x120000 0x80000>;
read-only;
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;
macaddr_config_0: macaddr@0 {
reg = <0x0 0x6>;
};
};
partition@1a0000 {
label = "reserved2";
reg = <0x1a0000 0xc0000>;
read-only;
};
partition@260000 {
label = "cfg-param";
reg = <0x260000 0x400000>;
read-only;
};
partition@660000 {
label = "log";
reg = <0x660000 0x400000>;
};
partition@a60000 {
label = "oops";
reg = <0xa60000 0xa0000>;
};
partition@b00000 {
label = "reserved3";
reg = <0xb00000 0x500000>;
read-only;
};
partition@1000000 {
label = "web";
reg = <0x1000000 0x800000>;
};
partition@1800000 {
label = "rootfs";
reg = <0x1800000 0x1d00000>;
};
partition@3500000 {
label = "data";
reg = <0x3500000 0x1900000>;
};
partition@4e00000 {
label = "fota";
reg = <0x4e00000 0x2800000>;
};
partition@7600000 {
label = "iot-db";
reg = <0x7600000 0xa00000>;
};
};
};
};
&qpic_bam {
status = "okay";
};
&tlmm {
i2c_0_pins: i2c_0_pinmux {
mux {
pins = "gpio20", "gpio21";
function = "blsp_i2c0";
bias-disable;
};
};
mdio_pins: mdio_pinmux {
mux_1 {
pins = "gpio6";
function = "mdio";
bias-pull-up;
};
mux_2 {
pins = "gpio7";
function = "mdc";
bias-pull-up;
};
};
nand_pins: nand_pins {
pullups {
pins = "gpio52", "gpio53", "gpio58",
"gpio59";
function = "qpic";
bias-pull-up;
};
pulldowns {
pins = "gpio54", "gpio55", "gpio56",
"gpio57", "gpio60",
"gpio62", "gpio63", "gpio64",
"gpio65", "gpio66", "gpio67",
"gpio69";
function = "qpic";
bias-pull-down;
};
};
serial_pins: serial_pinmux {
mux {
pins = "gpio16", "gpio17";
function = "blsp_uart0";
bias-disable;
};
};
spi_0_pins: spi_0_pinmux {
pinmux {
function = "blsp_spi0";
pins = "gpio13", "gpio14", "gpio15";
drive-strength = <12>;
bias-disable;
};
pinmux_cs {
function = "gpio";
pins = "gpio12";
drive-strength = <2>;
bias-disable;
output-high;
};
};
};
&usb2_hs_phy {
status = "okay";
};
&usb3_ss_phy {
status = "okay";
};
&usb3_hs_phy {
status = "okay";
};
&wifi0 {
status = "okay";
nvmem-cell-names = "pre-calibration", "mac-address";
nvmem-cells = <&precal_art_1000>, <&macaddr_config_0>;
mac-address-increment = <2>;
qcom,ath10k-calibration-variant = "zte,mf18a";
};
//* This node is used for 5Ghz on QCA9982 */
&pcie0 {
status = "okay";
perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>;
wake-gpio = <&tlmm 40 GPIO_ACTIVE_LOW>;
clkreq-gpio = <&tlmm 39 GPIO_ACTIVE_LOW>;
bridge@0,0 {
reg = <0x00000000 0 0 0 0>;
#address-cells = <3>;
#size-cells = <2>;
ranges;
wifi2: wifi@1,0 {
compatible = "pci168c,0040";
nvmem-cell-names = "pre-calibration", "mac-address";
nvmem-cells = <&precal_art_9000>, <&macaddr_config_0>;
mac-address-increment = <3>;
reg = <0x00010000 0 0 0 0>;
};
};
};

View File

@ -0,0 +1,519 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "qcom-ipq4019.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/soc/qcom,tcsr.h>
#include <dt-bindings/leds/common.h>
/ {
model = "Linksys WHW03 V2 (Velop)";
compatible = "linksys,whw03v2", "qcom,ipq4019";
aliases {
led-boot = &led_blue;
led-failsafe = &led_red;
led-running = &led_green;
led-upgrade = &led_red;
};
// The arguments rootfstype and ro are needed
// to override the default bootargs
chosen {
bootargs-append = " root=/dev/ubiblock0_0 rootfstype=squashfs ro";
stdout-path = &blsp1_uart1;
};
soc {
ess-tcsr@1953000 {
compatible = "qcom,tcsr";
reg = <0x1953000 0x1000>;
qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
};
tcsr@1949000 {
compatible = "qcom,tcsr";
reg = <0x1949000 0x100>;
qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
};
tcsr@194b000 {
compatible = "qcom,tcsr";
reg = <0x194b000 0x100>;
qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
};
tcsr@1957000 {
compatible = "qcom,tcsr";
reg = <0x1957000 0x100>;
qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
};
};
keys {
compatible = "gpio-keys";
reset {
label = "reset";
gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
};
};
&tlmm {
mdio_pins: mdio-pinmux {
mux-1 {
pins = "gpio6";
function = "mdio";
bias-pull-up;
};
mux-2 {
pins = "gpio7";
function = "mdc";
bias-pull-up;
};
};
i2c_0_pins: i2c-0-pinmux {
mux {
function = "blsp_i2c0";
pins = "gpio20", "gpio21";
bias-disable;
};
};
serial_0_pins: serial0-pinmux {
mux {
pins = "gpio16", "gpio17";
function = "blsp_uart0";
bias-disable;
};
};
serial_1_pins: serial1-pinmux {
mux {
pins = "gpio8", "gpio9", "gpio10", "gpio11";
function = "blsp_uart1";
bias-disable;
};
};
spi_0_pins: spi-0-pinmux {
mux {
function = "blsp_spi0";
pins = "gpio13", "gpio14", "gpio15";
drive-strength = <12>;
bias-disable;
};
mux-cs {
pins = "gpio12";
drive-strength = <2>;
bias-disable;
output-high;
};
};
spi_1_pins: spi-1-pinmux {
mux-1 {
function = "blsp_spi1";
pins = "gpio44", "gpio46","gpio47";
bias-disable;
};
mux-2 {
pins = "gpio31", "gpio45", "gpio49";
function = "gpio";
bias-pull-up;
output-high;
};
host-interrupt {
pins = "gpio42";
function = "gpio";
input;
};
};
wifi_0_pins: wifi0-pinmux {
btcoexist {
bias-pull-up;
drive-strength = <6>;
function = "gpio";
output-high;
pins = "gpio52";
};
};
zigbee-0 {
gpio-hog;
gpios = <29 GPIO_ACTIVE_HIGH>;
bias-disable;
output-low;
};
zigbee-1 {
gpio-hog;
gpios = <50 GPIO_ACTIVE_HIGH>;
bias-disable;
input;
};
bluetooth-enable {
gpio-hog;
gpios = <32 GPIO_ACTIVE_HIGH>;
output-high;
};
};
&mdio {
status = "okay";
pinctrl-0 = <&mdio_pins>;
pinctrl-names = "default";
phy-reset-gpios = <&tlmm 19 GPIO_ACTIVE_LOW>;
};
&ethphy0 {
status = "disabled";
};
&ethphy1 {
status = "disabled";
};
&ethphy2 {
status = "disabled";
};
&ethphy3 {
reg = <0x1b>;
};
&ethphy4 {
reg = <0x1c>;
};
&psgmiiphy {
reg = <0x1d>;
};
&watchdog {
status = "okay";
};
&prng {
status = "okay";
};
&blsp_dma {
status = "okay";
};
&cryptobam {
num-channels = <4>;
qcom,num-ees = <2>;
status = "okay";
};
&crypto {
status = "okay";
};
&blsp1_uart1 {
status = "okay";
pinctrl-0 = <&serial_0_pins>;
pinctrl-names = "default";
};
&blsp1_uart2 {
status = "okay";
pinctrl-0 = <&serial_1_pins>;
pinctrl-names = "default";
bluetooth {
compatible = "csr,8811";
enable-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>;
};
};
&blsp1_spi2 {
pinctrl-0 = <&spi_1_pins>;
pinctrl-names = "default";
status = "okay";
cs-gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>;
zigbee@0 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "silabs,em3581";
reg = <0>;
spi-max-frequency = <12000000>;
};
};
&blsp1_i2c3 {
pinctrl-0 = <&i2c_0_pins>;
pinctrl-names = "default";
status = "okay";
// RGB LEDs
pca9633: led-controller {
compatible = "nxp,pca9633";
nxp,hw-blink;
reg = <0x62>;
#address-cells = <1>;
#size-cells = <0>;
led_red: red@0 {
label = "red";
color = <LED_COLOR_ID_RED>;
function = LED_FUNCTION_INDICATOR;
linux,default-trigger = "none";
reg = <0>;
};
led_green: green@1 {
label = "green";
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_INDICATOR;
linux,default-trigger = "none";
reg = <1>;
};
led_blue: blue@2 {
label = "blue";
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_INDICATOR;
linux,default-trigger = "default-on";
reg = <2>;
};
};
};
&usb3_ss_phy {
status = "okay";
};
&usb3_hs_phy {
status = "okay";
};
&usb2_hs_phy {
status = "okay";
};
&nand {
status = "okay";
nand@0 {
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "SBL1";
reg = <0x0 0x100000>;
read-only;
};
partition@100000 {
label = "MIBIB";
reg = <0x100000 0x100000>;
read-only;
};
partition@200000 {
label = "QSEE";
reg = <0x200000 0x100000>;
read-only;
};
partition@300000 {
label = "CDT";
reg = <0x300000 0x80000>;
read-only;
};
partition@380000 {
label = "APPSBL";
reg = <0x380000 0x200000>;
read-only;
};
partition@580000 {
label = "ART";
reg = <0x580000 0x80000>;
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;
read-only;
precal_art_1000: precal@1000 {
reg = <0x1000 0x2f20>;
};
precal_art_5000: precal@5000 {
reg = <0x5000 0x2f20>;
};
precal_art_9000: precal@9000 {
reg = <0x9000 0x2f20>;
};
macaddr_gmac0: macaddr@0 {
reg = <0x0 0x6>;
};
macaddr_gmac1: macaddr@6 {
reg = <0x6 0x6>;
};
};
partition@600000 {
label = "u_env";
reg = <0x600000 0x80000>;
};
partition@680000 {
label = "s_env";
reg = <0x680000 0x40000>;
};
partition@6c0000 {
label = "devinfo";
reg = <0x6c0000 0x40000>;
read-only;
};
partition@700000 {
label = "kernel";
reg = <0x700000 0xa100000>;
};
partition@d00000 {
label = "rootfs";
reg = <0xd00000 0x9b00000>;
};
partition@a800000 {
label = "alt_kernel";
reg = <0xa800000 0xa100000>;
};
partition@ae00000 {
label = "alt_rootfs";
reg = <0xae00000 0x9b00000>;
};
partition@14900000 {
label = "sysdiag";
reg = <0x14900000 0x200000>;
read-only;
};
partition@14b00000 {
label = "syscfg";
reg = <0x14b00000 0xb500000>;
read-only;
};
};
};
};
&pcie0 {
status = "okay";
perst-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 40 GPIO_ACTIVE_LOW>;
clkreq-gpios = <&tlmm 39 GPIO_ACTIVE_LOW>;
bridge@0,0 {
reg = <0x00000000 0 0 0 0>;
#address-cells = <3>;
#size-cells = <2>;
ranges;
wifi2: wifi@1,0 {
compatible = "qcom,ath10k";
reg = <0x00010000 0 0 0 0>;
};
};
};
&qpic_bam {
status = "okay";
};
&gmac {
status = "okay";
};
&switch {
status = "okay";
};
&swport4 {
status = "okay";
label = "lan";
nvmem-cell-names = "mac-address";
nvmem-cells = <&macaddr_gmac1>;
};
&swport5 {
status = "okay";
label = "wan";
nvmem-cell-names = "mac-address";
nvmem-cells = <&macaddr_gmac0>;
};
&wifi0 {
pinctrl-0 = <&wifi_0_pins>;
pinctrl-names = "default";
status = "okay";
qcom,coexist-support = <1>;
qcom,coexist-gpio-pin = <0x34>;
ieee80211-freq-limit = <2401000 2473000>;
qcom,ath10k-calibration-variant = "linksys-whw03v2";
nvmem-cell-names = "pre-calibration", "mac-address";
nvmem-cells = <&precal_art_1000>, <&macaddr_gmac0>;
mac-address-increment = <1>;
};
&wifi1 {
status = "okay";
ieee80211-freq-limit = <5170000 5250000>;
qcom,ath10k-calibration-variant = "linksys-whw03v2";
nvmem-cell-names = "pre-calibration", "mac-address";
nvmem-cells = <&precal_art_5000>, <&macaddr_gmac0>;
mac-address-increment = <2>;
};
&wifi2 {
status = "okay";
ieee80211-freq-limit = <5735000 5835000>;
qcom,ath10k-calibration-variant = "linksys-whw03v2";
nvmem-cell-names = "pre-calibration", "mac-address";
nvmem-cells = <&precal_art_9000>, <&macaddr_gmac0>;
mac-address-increment = <3>;
};

View File

@ -720,6 +720,23 @@ define Device/linksys_mr8300
endef
TARGET_DEVICES += linksys_mr8300
define Device/linksys_whw03v2
$(call Device/FitzImage)
DEVICE_VENDOR := Linksys
DEVICE_MODEL := WHW03
DEVICE_VARIANT := V2
SOC := qcom-ipq4019
KERNEL_SIZE := 6144k
IMAGE_SIZE := 158720k
BLOCKSIZE := 128k
PAGESIZE := 2048
UBINIZE_OPTS := -E 5 # EOD marks to "hide" factory sig at EOF
IMAGES += factory.bin
IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | linksys-image type=WHW03v2
DEVICE_PACKAGES := ath10k-firmware-qca9888-ct ipq-wifi-linksys_whw03v2 kmod-leds-pca963x kmod-spi-dev kmod-bluetooth
endef
TARGET_DEVICES += linksys_whw03v2
define Device/linksys_whw01
$(call Device/FitzImage)
DEVICE_VENDOR := Linksys
@ -1106,6 +1123,19 @@ endef
# Missing DSA Setup
#TARGET_DEVICES += unielec_u4019-32m
define Device/zte_mf18a
$(call Device/FitImage)
DEVICE_VENDOR := ZTE
DEVICE_MODEL := MF18A
SOC := qcom-ipq4019
DEVICE_DTS_CONFIG := config@ap.dk04.1-c1
BLOCKSIZE := 128k
PAGESIZE := 2048
KERNEL_IN_UBI := 1
DEVICE_PACKAGES := ath10k-firmware-qca99x0-ct ipq-wifi-zte_mf18a
endef
TARGET_DEVICES += zte_mf18a
define Device/zte_mf28x_common
$(call Device/FitzImage)
DEVICE_VENDOR := ZTE

View File

@ -12,7 +12,7 @@ Subject: SoC: add qualcomm syscon
obj-$(CONFIG_QCOM_RPMHPD) += rpmhpd.o
--- a/drivers/soc/qcom/Kconfig
+++ b/drivers/soc/qcom/Kconfig
@@ -190,6 +190,13 @@ config QCOM_SOCINFO
@@ -191,6 +191,13 @@ config QCOM_SOCINFO
Say yes here to support the Qualcomm socinfo driver, providing
information about the SoC to user space.

View File

@ -39,7 +39,7 @@
/* check we are the Master VPE */
local_irq_save(flags);
@@ -417,6 +418,8 @@ int __init vpe_module_init(void)
@@ -416,6 +417,8 @@ int __init vpe_module_init(void)
}
v->ntcs = hw_tcs - aprp_cpu_index();

View File

@ -28,7 +28,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
--- a/arch/arm/boot/dts/armada-385-turris-omnia.dts
+++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts
@@ -84,12 +84,23 @@
@@ -90,12 +90,23 @@
};
};
@ -52,7 +52,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
fixed-link {
speed = <1000>;
@@ -103,6 +114,9 @@
@@ -109,6 +120,9 @@
pinctrl-0 = <&ge1_rgmii_pins>;
status = "okay";
phy-mode = "rgmii";
@ -62,7 +62,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
fixed-link {
speed = <1000>;
@@ -115,6 +129,9 @@
@@ -121,6 +135,9 @@
status = "okay";
phy-mode = "sgmii";
phy = <&phy1>;

View File

@ -27,7 +27,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
--- a/arch/arm/boot/dts/armada-385-turris-omnia.dts
+++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts
@@ -129,6 +129,7 @@
@@ -135,6 +135,7 @@
status = "okay";
phy-mode = "sgmii";
phy = <&phy1>;

View File

@ -27,7 +27,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
--- a/arch/arm/boot/dts/armada-385-turris-omnia.dts
+++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts
@@ -261,13 +261,18 @@
@@ -267,13 +267,18 @@
/* Switch MV88E6176 at address 0x10 */
switch@10 {
@ -47,7 +47,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
ports {
#address-cells = <1>;
#size-cells = <0>;
@@ -320,6 +325,11 @@
@@ -336,6 +341,11 @@
marvell,function = "gpio";
};

View File

@ -33,7 +33,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
--- a/arch/arm/boot/dts/armada-385-turris-omnia.dts
+++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts
@@ -82,6 +82,24 @@
@@ -88,6 +88,24 @@
};
};
};
@ -58,7 +58,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
};
&bm {
@@ -126,10 +144,20 @@
@@ -132,10 +150,20 @@
/* WAN port */
&eth2 {
@ -79,7 +79,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
buffer-manager = <&bm>;
bm,pool-long = <2>;
bm,pool-short = <3>;
@@ -195,7 +223,7 @@
@@ -201,7 +229,7 @@
/* routed to PCIe2 connector (CN62A) */
};

View File

@ -41,7 +41,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
#include "armada-385.dtsi"
/ {
@@ -181,7 +182,115 @@
@@ -187,7 +188,115 @@
reg = <0>;
/* STM32F0 command interface at address 0x2a */

View File

@ -29,7 +29,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
--- a/arch/arm/boot/dts/armada-385-turris-omnia.dts
+++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts
@@ -156,7 +156,7 @@
@@ -162,7 +162,7 @@
*/
status = "okay";
phy-mode = "sgmii";
@ -38,7 +38,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
phys = <&comphy5 2>;
sfp = <&sfp>;
buffer-manager = <&bm>;
@@ -387,9 +387,9 @@
@@ -393,9 +393,9 @@
pinctrl-0 = <&mdio_pins>;
status = "okay";

View File

@ -21,7 +21,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
--- a/arch/arm/boot/dts/armada-385-turris-omnia.dts
+++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts
@@ -32,7 +32,8 @@
@@ -38,7 +38,8 @@
ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000

View File

@ -26,7 +26,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
--- a/arch/arm/boot/dts/armada-385-turris-omnia.dts
+++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts
@@ -392,7 +392,8 @@
@@ -398,7 +398,8 @@
status = "okay";
compatible = "ethernet-phy-ieee802.3-c22";
reg = <1>;

View File

@ -20,7 +20,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
--- a/arch/arm/boot/dts/armada-385-turris-omnia.dts
+++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts
@@ -189,15 +189,13 @@
@@ -195,15 +195,13 @@
reg = <0x2b>;
#address-cells = <1>;
#size-cells = <0>;
@ -38,7 +38,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
* - there are 3 LEDs connected via MCU to PCIe
* ports. One of these ports supports mSATA.
* There is no mSATA nor PCIe function.
@@ -208,7 +206,6 @@
@@ -214,7 +212,6 @@
* B. Again there is no such function defined.
* For now we use LED_FUNCTION_INDICATOR
*/

View File

@ -10,7 +10,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
@@ -3141,6 +3141,7 @@ int spi_nor_scan(struct spi_nor *nor, co
@@ -3143,6 +3143,7 @@ int spi_nor_scan(struct spi_nor *nor, co
struct device *dev = nor->dev;
struct mtd_info *mtd = &nor->mtd;
struct device_node *np = spi_nor_get_flash_node(nor);
@ -18,7 +18,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
int ret;
int i;
@@ -3195,7 +3196,12 @@ int spi_nor_scan(struct spi_nor *nor, co
@@ -3197,7 +3198,12 @@ int spi_nor_scan(struct spi_nor *nor, co
if (ret)
return ret;
@ -34,7 +34,7 @@ Signed-off-by: Abhimanyu Vishwakarma <Abhimanyu.Vishwakarma@imgtec.com>
mtd->type = MTD_NORFLASH;
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
@@ -848,6 +848,17 @@ out_error:
@@ -850,6 +850,17 @@ out_error:
*/
static void mtd_set_dev_defaults(struct mtd_info *mtd)
{

View File

@ -0,0 +1,219 @@
// 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>
#include <dt-bindings/leds/common.h>
/ {
model = "Arcadyan WE420223-99";
compatible = "arcadyan,we420223-99", "mediatek,mt7621-soc";
aliases {
led-boot = &led_power_green;
led-failsafe = &led_power_red;
led-running = &led_power_green;
led-upgrade = &led_wps_green;
led-wifi = &led_wifi_green;
};
chosen {
bootargs = "console=ttyS0,57600 ubi.mtd=5 root=/dev/ubiblock0_0";
};
keys {
compatible = "gpio-keys";
reset {
label = "reset";
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
wps {
label = "wps";
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
linux,code = <KEY_WPS_BUTTON>;
};
};
leds {
compatible = "gpio-leds";
led_power_green: power_green {
label = "green:power";
gpios = <&gpio 42 GPIO_ACTIVE_LOW>;
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_POWER;
default-state = "on";
};
led_power_red: power_red {
label = "red:power";
gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
color = <LED_COLOR_ID_RED>;
function = LED_FUNCTION_FAULT;
};
led_wifi_blue: wifi_blue {
label = "blue:wifi";
gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_WLAN;
};
led_wifi_green: wifi_green {
label = "green:wifi";
gpios = <&gpio 43 GPIO_ACTIVE_LOW>;
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_WLAN;
};
led_wps_red: wps_red {
label = "red:wps";
gpios = <&gpio 45 GPIO_ACTIVE_LOW>;
color = <LED_COLOR_ID_RED>;
function = LED_FUNCTION_WPS;
};
led_wps_green: wps_green {
label = "green:wps";
gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_WPS;
};
led_followme_r: followme_red {
label = "red:followme";
gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
color = <LED_COLOR_ID_RED>;
};
led_followme_g: followme_green {
label = "green:followme";
gpios = <&gpio 48 GPIO_ACTIVE_LOW>;
color = <LED_COLOR_ID_GREEN>;
};
};
};
&spi0 {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <70000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "ALL";
reg = <0x0 0x2000000>;
read-only;
};
partition@1 {
label = "Bootloader";
reg = <0x0 0x30000>;
read-only;
};
partition@30000 {
label = "Config";
reg = <0x30000 0x10000>;
};
factory: partition@40000 {
label = "Factory";
reg = <0x40000 0x10000>;
read-only;
};
partition@50000 {
label = "kernel";
reg = <0x50000 0x1f60000>;
};
partition@490000 {
label = "rootfs";
reg = <0x490000 0x1b20000>;
};
partition@1000000 {
label = "Kernel2";
reg = <0x1000000 0xfb0000>;
};
partition@1440000 {
label = "RootFS2";
reg = <0x1440000 0xb70000>;
};
partition@1fb0000 {
label = "glbcfg";
reg = <0x1fb0000 0x10000>;
read-only;
};
partition@1fc0000 {
label = "board_data";
reg = <0x1fc0000 0x10000>;
read-only;
};
partition@1fd0000 {
label = "glbcfg2";
reg = <0x1fd0000 0x10000>;
read-only;
};
partition@1fe0000 {
label = "board_data2";
reg = <0x1fe0000 0x10000>;
read-only;
};
};
};
};
&xhci {
status = "disabled";
};
&switch0 {
ports {
port@1 {
status = "okay";
label = "swp1";
};
};
};
&gmac1 {
status = "okay";
label = "swp0";
phy-handle = <&ethphy0>;
};
&mdio {
ethphy0: ethernet-phy@0 {
reg = <0>;
};
};
&pcie {
status = "okay";
};
&pcie0 {
mt76@0,0 {
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x0000>;
};
};

View File

@ -65,8 +65,7 @@
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <80000000>;
m25p,fast-read;
spi-max-frequency = <10000000>;
partitions {
compatible = "fixed-partitions";

View File

@ -0,0 +1,37 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "mt7621_dlink_dir-8xx.dtsi"
#include "mt7621_dlink_flash-16m-a1.dtsi"
/ {
compatible = "dlink,dir-1935-a1", "mediatek,mt7621-soc";
model = "D-Link DIR-1935 A1";
aliases {
label-mac-device = &gmac0;
};
};
&gmac0 {
nvmem-cells = <&macaddr_factory_e000>;
nvmem-cell-names = "mac-address";
};
&gmac1 {
nvmem-cells = <&macaddr_factory_e006>;
nvmem-cell-names = "mac-address";
};
&factory {
compatible = "nvmem-cells";
#address-cells = <1>;
#size-cells = <1>;
macaddr_factory_e000: macaddr@e000 {
reg = <0xe000 0x6>;
};
macaddr_factory_e006: macaddr@e006 {
reg = <0xe006 0x6>;
};
};

View File

@ -1,102 +1,13 @@
// 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>
#include "mt7621_elecom_wrc-2533ghbk.dtsi"
/ {
compatible = "elecom,wrc-2533ghbk-i", "mediatek,mt7621-soc";
model = "ELECOM WRC-2533GHBK-I";
aliases {
led-boot = &led_power;
led-failsafe = &led_power;
led-running = &led_power;
led-upgrade = &led_power;
};
leds {
compatible = "gpio-leds";
wps {
label = "red:wps";
gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
};
led_power: power {
label = "white:power";
gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
};
wlan2g {
label = "white:wlan2g";
gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy0radio";
};
wlan5g {
label = "white:wlan5g";
gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy1radio";
};
};
keys {
compatible = "gpio-keys";
auto {
label = "auto";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
linux,code = <BTN_0>;
linux,input-type = <EV_SW>;
};
reset {
label = "reset";
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
wps {
label = "wps";
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
linux,code = <KEY_WPS_BUTTON>;
};
};
};
&spi0 {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <40000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x0 0x30000>;
read-only;
};
partition@30000 {
label = "u-boot-env";
reg = <0x30000 0x10000>;
read-only;
};
factory: partition@40000 {
label = "factory";
reg = <0x40000 0x10000>;
read-only;
};
&partitions {
partition@50000 {
compatible = "denx,uimage";
label = "firmware";
@ -132,75 +43,4 @@
reg = <0xf80000 0x80000>;
read-only;
};
};
};
};
&gmac1 {
status = "okay";
label = "wan";
phy-handle = <&ethphy0>;
};
&mdio {
ethphy0: ethernet-phy@0 {
reg = <0>;
};
};
&switch0 {
ports {
port@1 {
status = "okay";
label = "lan4";
};
port@2 {
status = "okay";
label = "lan3";
};
port@3 {
status = "okay";
label = "lan2";
};
port@4 {
status = "okay";
label = "lan1";
};
};
};
&state_default {
gpio {
groups = "uart2", "uart3", "jtag", "wdt";
function = "gpio";
};
};
&pcie {
status = "okay";
};
&pcie0 {
wifi@0,0 {
compatible = "mediatek,mt76";
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x0>;
ieee80211-freq-limit = <2400000 2500000>;
};
};
&pcie1 {
wifi@0,0 {
compatible = "mediatek,mt76";
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x8000>;
ieee80211-freq-limit = <5000000 6000000>;
};
};
&xhci {
status = "disabled";
};

View File

@ -0,0 +1,178 @@
// 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>
#include <dt-bindings/leds/common.h>
/ {
aliases {
led-boot = &led_power;
led-failsafe = &led_power;
led-running = &led_power;
led-upgrade = &led_power;
};
leds {
compatible = "gpio-leds";
wps {
label = "red:wps";
gpios = <&gpio 7 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_RED>;
function = LED_FUNCTION_WPS;
};
led_power: power {
label = "white:power";
gpios = <&gpio 12 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_WHITE>;
function = LED_FUNCTION_POWER;
};
wlan2g {
label = "white:wlan2g";
gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_WHITE>;
function = LED_FUNCTION_WLAN;
function-enumerator = <1>;
linux,default-trigger = "phy0tpt";
};
wlan5g {
label = "white:wlan5g";
gpios = <&gpio 15 GPIO_ACTIVE_HIGH>;
color = <LED_COLOR_ID_WHITE>;
function = LED_FUNCTION_WLAN;
function-enumerator = <2>;
linux,default-trigger = "phy1tpt";
};
};
keys {
compatible = "gpio-keys";
auto {
label = "auto";
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
linux,code = <BTN_0>;
linux,input-type = <EV_SW>;
};
reset {
label = "reset";
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
wps {
label = "wps";
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
linux,code = <KEY_WPS_BUTTON>;
};
};
};
&spi0 {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <40000000>;
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-boot-env";
reg = <0x30000 0x10000>;
read-only;
};
factory: partition@40000 {
label = "factory";
reg = <0x40000 0x10000>;
read-only;
};
};
};
};
&gmac1 {
status = "okay";
label = "wan";
phy-handle = <&ethphy0>;
};
&mdio {
ethphy0: ethernet-phy@0 {
reg = <0>;
};
};
&switch0 {
ports {
port@1 {
status = "okay";
label = "lan4";
};
port@2 {
status = "okay";
label = "lan3";
};
port@3 {
status = "okay";
label = "lan2";
};
port@4 {
status = "okay";
label = "lan1";
};
};
};
&state_default {
gpio {
groups = "uart2", "uart3", "jtag", "wdt";
function = "gpio";
};
};
&pcie {
status = "okay";
};
&pcie0 {
wifi@0,0 {
compatible = "mediatek,mt76";
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x0>;
ieee80211-freq-limit = <2400000 2500000>;
};
};
&pcie1 {
wifi@0,0 {
compatible = "mediatek,mt76";
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x8000>;
ieee80211-freq-limit = <5000000 6000000>;
};
};
&xhci {
status = "disabled";
};

View File

@ -0,0 +1,40 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "mt7621_elecom_wrc-2533ghbk.dtsi"
/ {
compatible = "elecom,wrc-2533ghbk2-t", "mediatek,mt7621-soc";
model = "ELECOM WRC-2533GHBK2-T";
};
&partitions {
partition@50000 {
compatible = "denx,uimage";
label = "firmware";
reg = <0x50000 0x7a0000>;
};
partition@7f0000 {
label = "TM_1";
reg = <0x7f0000 0x200000>;
read-only;
};
partition@9f0000 {
label = "TM_2";
reg = <0x9f0000 0x400000>;
read-only;
};
partition@df0000 {
label = "manufacture";
reg = <0xdf0000 0x190000>;
read-only;
};
partition@f80000 {
label = "storage";
reg = <0xf80000 0x80000>;
read-only;
};
};

View File

@ -0,0 +1,302 @@
// 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>
#include <dt-bindings/leds/common.h>
/ {
compatible = "tplink,ec330-g5u-v1", "mediatek,mt7621-soc";
model = "TP-Link EC330-G5u v1";
aliases {
led-boot = &led_power;
led-failsafe = &led_power;
led-running = &led_power;
led-upgrade = &led_power;
};
chosen {
bootargs = "console=ttyS0,115200";
};
leds {
compatible = "gpio-leds";
led-0 {
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_USB;
function-enumerator = <0>;
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
trigger-sources = <&xhci_ehci_port1>;
linux,default-trigger = "usbport";
};
led-1 {
label = "blue:wps";
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_WPS;
function-enumerator = <0>;
gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
};
led-2 {
label = "blue:ethernet";
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_LAN;
function-enumerator = <0>;
gpios = <&gpio 9 GPIO_ACTIVE_LOW>;
};
led-3 {
label = "amber:internet";
color = <LED_COLOR_ID_AMBER>;
function = LED_FUNCTION_WAN;
function-enumerator = <0>;
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
};
led-4 {
label = "blue:internet";
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_WAN;
function-enumerator = <1>;
gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
};
led-5 {
label = "blue:wireless_5g";
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_WLAN;
function-enumerator = <0>;
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy1radio";
};
led-6 {
label = "blue:wireless_2g";
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_WLAN;
function-enumerator = <1>;
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0radio";
};
led_power: led-7 {
label = "blue:power";
color = <LED_COLOR_ID_BLUE>;
function = LED_FUNCTION_STATUS;
function-enumerator = <0>;
gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
};
};
keys {
compatible = "gpio-keys";
led {
label = "led";
gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
linux,code = <KEY_LIGHTS_TOGGLE>;
};
wifi {
label = "wifi on/off";
gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
linux,code = <KEY_RFKILL>;
};
reset {
label = "reset";
gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
linux,code = <KEY_RESTART>;
};
wps {
label = "wps";
gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
linux,code = <KEY_WPS_BUTTON>;
};
};
gpio-export {
compatible = "gpio-export";
led-light {
gpio-export,name = "led-light";
gpio-export,output = <0>;
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
};
};
ubi-concat {
compatible = "mtd-concat";
devices = <&ubiconcat0 &ubiconcat1>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "ubi";
reg = <0x0 0x3c00000>;
};
};
};
};
&nand {
status = "okay";
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x0 0x400000>;
read-only;
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot-first";
reg = <0x0 0x20000>;
read-only;
};
partition@20000 {
label = "u-boot-main";
reg = <0x20000 0x40000>;
read-only;
};
partition@60000 {
label = "u-boot-main-reserve";
reg = <0x60000 0x40000>;
read-only;
};
};
partition@400000 {
label = "os0";
reg = <0x400000 0x3000000>;
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "kernel";
reg = <0x0 0x400000>;
};
ubiconcat0: partition@400000 {
label = "ubi-os0";
reg = <0x400000 0x2c00000>;
};
};
partition@3400000 {
label = "os1";
reg = <0x3400000 0x3000000>;
read-only;
};
ubiconcat1: partition@6400000 {
label = "userfs";
reg = <0x6400000 0x1000000>;
};
partition@7400000 {
label = "u-boot-env";
reg = <0x7400000 0x400000>;
};
factory: partition@7800000 {
label = "factory";
reg = <0x7800000 0x400000>;
read-only;
};
partition@0_wholeflash {
label = "wholeflash";
reg = <0x0 0x7f80000>;
read-only;
};
};
};
&pcie {
status = "okay";
};
&pcie0 {
wifi@0,0 {
compatible = "mediatek,mt76";
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x8000>;
ieee80211-freq-limit = <2400000 2500000>;
};
};
&pcie1 {
wifi@0,0 {
compatible = "mediatek,mt76";
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x14000>;
ieee80211-freq-limit = <5000000 6000000>;
};
};
&gmac1 {
status = "okay";
label = "wan";
phy-handle = <&ethphy0>;
};
&mdio {
ethphy0: ethernet-phy@0 {
reg = <0>;
};
};
&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";
};
};
};
&state_default {
gpio {
groups = "i2c", "jtag", "uart2", "uart3", "wdt";
function = "gpio";
};
};

View File

@ -0,0 +1,121 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "mt7628an_xiaomi_mi-router-4.dtsi"
/ {
compatible = "xiaomi,mi-ra75", "mediatek,mt7628an-soc";
model = "Xiaomi Mi AC1200 WLAN Range Extender RA75";
aliases {
led-boot = &led_system_amber;
led-failsafe = &led_system_amber;
led-running = &led_system_blue;
led-upgrade = &led_system_amber;
label-mac-device = &ethernet;
};
leds {
compatible = "gpio-leds";
led_system_blue: system_blue {
label = "blue:system";
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
};
led_system_amber: system_amber {
label = "amber:system";
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
};
led_signal_blue: signal_blue {
label = "blue:signal";
gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
};
led_signal_amber: signal_amber {
label = "amber:signal";
gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
};
};
keys {
compatible = "gpio-keys";
reset {
label = "reset";
gpios = <&gpio 38 GPIO_ACTIVE_LOW>;
linux,code = <KEY_RESTART>;
};
wps {
label = "wps";
gpios = <&gpio 67 GPIO_ACTIVE_LOW>;
linux,code = <KEY_WPS_BUTTON>;
};
};
};
&partitions {
partition@60000 {
label = "overlay";
reg = <0x60000 0x100000>;
read-only;
};
partition@160000 {
label = "firmware";
reg = <0x160000 0xea0000>;
compatible = "denx,uimage";
};
};
&pcie {
status = "okay";
};
&pcie0 {
wifi@0,0 {
compatible = "mediatek,mt76";
reg = <0x0000 0 0 0 0>;
mediatek,mtd-eeprom = <&factory 0x8000>;
ieee80211-freq-limit = <5000000 6000000>;
};
};
&ethernet {
nvmem-cells = <&macaddr_factory_28>;
nvmem-cell-names = "mac-address";
};
&wmac {
ralink,mtd-eeprom = <&factory 0x0>;
};
&esw {
mediatek,portmap = <0x3e>;
mediatek,portdisable = <0x2a>;
};
&ehci {
status = "disabled";
};
&ohci {
status = "disabled";
};
&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>;
};
macaddr_factory_8004: macaddr@8004 {
reg = <0x8004 0x6>;
};
};

View File

@ -6,37 +6,10 @@
#include <dt-bindings/input/input.h>
/ {
aliases {
led-boot = &led_power_yellow;
led-failsafe = &led_power_yellow;
led-running = &led_power_blue;
led-upgrade = &led_power_yellow;
label-mac-device = &ethernet;
};
chosen {
bootargs = "console=ttyS0,115200";
};
leds {
compatible = "gpio-leds";
led_power_blue: power_blue {
label = "blue:power";
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
};
led_power_yellow: power_yellow {
label = "yellow:power";
gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
};
wan {
label = "blue:wan";
gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
};
};
keys {
compatible = "gpio-keys";

View File

@ -5,6 +5,34 @@
/ {
compatible = "xiaomi,mi-router-4a-100m-intl", "mediatek,mt7628an-soc";
model = "Xiaomi Mi Router 4A (100M International Edition)";
aliases {
led-boot = &led_power_yellow;
led-failsafe = &led_power_yellow;
led-running = &led_power_blue;
led-upgrade = &led_power_yellow;
label-mac-device = &ethernet;
};
leds {
compatible = "gpio-leds";
led_power_blue: power_blue {
label = "blue:power";
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
};
led_power_yellow: power_yellow {
label = "yellow:power";
gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
};
wan {
label = "blue:wan";
gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
};
};
};
&partitions {

View File

@ -5,6 +5,34 @@
/ {
compatible = "xiaomi,mi-router-4a-100m", "mediatek,mt7628an-soc";
model = "Xiaomi Mi Router 4A (100M Edition)";
aliases {
led-boot = &led_power_yellow;
led-failsafe = &led_power_yellow;
led-running = &led_power_blue;
led-upgrade = &led_power_yellow;
label-mac-device = &ethernet;
};
leds {
compatible = "gpio-leds";
led_power_blue: power_blue {
label = "blue:power";
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
};
led_power_yellow: power_yellow {
label = "yellow:power";
gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
};
wan {
label = "blue:wan";
gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
};
};
};
&partitions {

View File

@ -7,8 +7,33 @@
model = "Xiaomi Mi Router 4C";
aliases {
led-boot = &led_power_yellow;
led-failsafe = &led_power_yellow;
led-running = &led_power_blue;
led-upgrade = &led_power_yellow;
label-mac-device = &ethernet;
};
leds {
compatible = "gpio-leds";
led_power_blue: power_blue {
label = "blue:power";
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
};
led_power_yellow: power_yellow {
label = "yellow:power";
gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
};
wan {
label = "blue:wan";
gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
};
};
};
&flash0 {

View File

@ -1,6 +1,19 @@
DEVICE_VARS += TPLINK_FLASHLAYOUT TPLINK_HWID TPLINK_HWREV TPLINK_HWREVADD
DEVICE_VARS += TPLINK_HVERSION TPLINK_BOARD_ID TPLINK_HEADER_VERSION
define Build/uImage-tplink-c9
mkimage \
-A $(LINUX_KARCH) \
-O linux \
-T $(word 1,$(1)) \
-C none \
-a $(KERNEL_LOADADDR) \
-e $(KERNEL_LOADADDR) \
-n $(wordlist 2,$(words $(1)),$(1)) \
-d $@ $@.new
mv $@.new $@
endef
define Device/tplink-v1
DEVICE_VENDOR := TP-Link
TPLINK_FLASHLAYOUT :=

View File

@ -187,6 +187,31 @@ define Device/ampedwireless_ally-00x19k
endef
TARGET_DEVICES += ampedwireless_ally-00x19k
define Device/arcadyan_we420223-99
$(Device/dsa-migration)
$(Device/uimage-lzma-loader)
DEVICE_VENDOR := Arcadyan
DEVICE_MODEL := WE420223-99
DEVICE_ALT0_VENDOR := KPN
DEVICE_ALT0_MODEL := Experia WiFi
IMAGE_SIZE := 32128k
KERNEL_SIZE := 4352k
UBINIZE_OPTS := -E 5
BLOCKSIZE := 64k
PAGESIZE := 1
SUBPAGESIZE := 1
VID_HDR_OFFSET := 64
KERNEL := kernel-bin | append-dtb | lzma | loader-kernel | \
uImage none | arcadyan-trx 0x746f435d
KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | loader-kernel | \
uImage none
IMAGES += factory.trx
IMAGE/factory.trx := append-kernel | pad-to $$(KERNEL_SIZE) | append-ubi | check-size
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
DEVICE_PACKAGES := kmod-mt7615-firmware
endef
TARGET_DEVICES += arcadyan_we420223-99
define Device/asiarf_ap7621-001
$(Device/dsa-migration)
IMAGE_SIZE := 16000k
@ -297,6 +322,8 @@ define Device/asus_rt-ax53u
$(Device/dsa-migration)
DEVICE_VENDOR := ASUS
DEVICE_MODEL := RT-AX53U
DEVICE_ALT0_VENDOR := ASUS
DEVICE_ALT0_MODEL := RT-AX1800U
IMAGE_SIZE := 51200k
UBINIZE_OPTS := -E 5
BLOCKSIZE := 128k
@ -539,6 +566,14 @@ define Device/dlink_dir-xx60-a1
check-size
endef
define Device/dlink_dir-1935-a1
$(Device/dlink_dir-8xx-a1)
DEVICE_MODEL := DIR-1935
DEVICE_VARIANT := A1
DEVICE_PACKAGES += kmod-usb3
endef
TARGET_DEVICES += dlink_dir-1935-a1
define Device/dlink_dir-1960-a1
$(Device/dlink_dir-xx60-a1)
DEVICE_MODEL := DIR-1960
@ -790,6 +825,20 @@ define Device/elecom_wrc-1900gst
endef
TARGET_DEVICES += elecom_wrc-1900gst
define Device/elecom_wrc-2533ghbk2-t
$(Device/dsa-migration)
$(Device/uimage-lzma-loader)
DEVICE_VENDOR := ELECOM
DEVICE_MODEL := WRC-2533GHBK2-T
IMAGE_SIZE := 7808k
IMAGES += factory.bin
IMAGE/factory.bin := $$(sysupgrade_bin) | check-size | \
elx-header 0107003b 8844A2D168B45A2D | \
elecom-product-header WRC-2533GHBK2-T
DEVICE_PACKAGES := kmod-mt7615-firmware
endef
TARGET_DEVICES += elecom_wrc-2533ghbk2-t
define Device/elecom_wrc-2533ghbk-i
$(Device/dsa-migration)
$(Device/uimage-lzma-loader)
@ -1992,6 +2041,31 @@ define Device/tplink_eap615-wall-v1
endef
TARGET_DEVICES += tplink_eap615-wall-v1
define Device/tplink_ec330-g5u-v1
$(Device/dsa-migration)
LOADER := bin
BLOCKSIZE := 128k
PAGESIZE := 2048
UBINIZE_OPTS := -E 5
KERNEL_SIZE := 4096k
IMAGE_SIZE := 49152k
DEVICE_VENDOR := TP-Link
DEVICE_MODEL := EC330-G5u
DEVICE_ALT0_VENDOR := TP-Link
DEVICE_ALT0_MODEL := Archer C9ERT
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-mt7615-firmware kmod-usb-ledtrig-usbport \
kmod-usb3 uboot-envtools
KERNEL := kernel-bin | append-dtb | lzma | loader-kernel | \
uImage-tplink-c9 standalone '$(call toupper,$(LINUX_KARCH)) \
$(VERSION_DIST) Linux-$(LINUX_VERSION)' | \
uImage-tplink-c9 firmware 'OS IMAGE ($(VERSION_DIST))'
KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | loader-kernel | \
uImage none
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata | check-size
endef
TARGET_DEVICES += tplink_ec330-g5u-v1
define Device/tplink_er605-v2
$(Device/dsa-migration)
DEVICE_VENDOR := TP-Link

View File

@ -1014,6 +1014,16 @@ define Device/xiaomi_miwifi-nano
endef
TARGET_DEVICES += xiaomi_miwifi-nano
define Device/xiaomi_mi-ra75
IMAGE_SIZE := 14976k
DEVICE_VENDOR := Xiaomi
DEVICE_MODEL := MiWiFi Range Extender AC1200
DEVICE_VARIANT := RA75
DEVICE_PACKAGES := kmod-mt76x2
SUPPORTED_DEVICES += xiaomi,mira75
endef
TARGET_DEVICES += xiaomi_mi-ra75
define Device/zbtlink_zbt-we1226
IMAGE_SIZE := 7872k
DEVICE_VENDOR := Zbtlink

View File

@ -78,6 +78,7 @@ dlink,dir-853-a3)
dlink,dir-853-r1)
ucidef_set_led_netdev "internet" "internet" "blue:net" "wan"
;;
dlink,dir-1935-a1|\
dlink,dir-860l-b1|\
dlink,dir-867-a1|\
dlink,dir-878-a1|\
@ -153,6 +154,11 @@ tplink,archer-c6u-v1)
ucidef_set_led_netdev "lan" "LAN" "green:lan" "br-lan"
ucidef_set_led_netdev "wan" "WAN" "green:wan" "wan"
;;
tplink,ec330-g5u-v1)
ucidef_set_led_netdev "lan" "Ethernet" "blue:ethernet" "br-lan" "link tx rx"
ucidef_set_led_netdev "wan" "Internet" "blue:internet" "wan" "link tx rx"
ucidef_set_led_netdev "wan-off" "Internet-off" "amber:internet" "wan" "link"
;;
tplink,re350-v1)
ucidef_set_led_netdev "wifi2g" "Wifi 2.4G" "blue:wifi2G" "wlan0"
ucidef_set_led_netdev "wifi5g" "Wifi 5G" "blue:wifi5G" "wlan1"

View File

@ -8,6 +8,9 @@ ramips_setup_interfaces()
local board="$1"
case $board in
arcadyan,we420223-99)
ucidef_set_interface_lan "swp0 swp1"
;;
ampedwireless,ally-00x19k|\
asus,rp-ac56|\
asus,rp-ac87|\
@ -150,6 +153,11 @@ ramips_setup_macs()
wan_mac=$(mtd_get_mac_ascii hwconfig HW.WAN.MAC.Address)
label_mac=$lan_mac
;;
arcadyan,we420223-99)
label_mac=$(mtd_get_mac_ascii board_data mac)
lan_mac=$label_mac
ucidef_set_network_device_mac eth0 $(macaddr_add "$label_mac" 3)
;;
asus,rt-ac65p|\
asus,rt-ac85p)
wan_mac=$(mtd_get_mac_ascii u-boot-env et1macaddr)
@ -174,6 +182,7 @@ ramips_setup_macs()
lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
;;
elecom,wrc-2533ghbk2-t|\
elecom,wrc-2533ghbk-i)
lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
@ -230,6 +239,11 @@ ramips_setup_macs()
label_mac=$(cat "/sys/firmware/mikrotik/hard_config/mac_base")
lan_mac=$label_mac
;;
tplink,ec330-g5u-v1)
label_mac="$(mtd_get_mac_text factory 0x165)"
lan_mac=$label_mac
wan_mac=$(macaddr_add $label_mac 1)
;;
tplink,er605-v2)
CI_UBIPART="firmware"
label_mac=$(mtd_get_mac_uci_config_ubi "tddp")

View File

@ -10,6 +10,15 @@ PHYNBR=${DEVPATH##*/phy}
board=$(board_name)
case "$board" in
arcadyan,we420223-99)
if [ "$PHYNBR" = "0" ]; then
mac24=$(macaddr_add "$(get_mac_label)" "0xf00001")
echo -n "$mac24" > /sys${DEVPATH}/macaddress
elif [ "$PHYNBR" = "1" ]; then
mac5=$(macaddr_add "$(get_mac_label)" 1)
echo -n "$mac5" > /sys${DEVPATH}/macaddress
fi
;;
beeline,smartbox-flash)
hw_mac_addr=$(macaddr_add $(mtd_get_mac_encrypted_arcadyan "board_data") 1)
[ "$PHYNBR" = "0" ] && echo -n "$hw_mac_addr" > /sys${DEVPATH}/macaddress
@ -131,6 +140,11 @@ case "$board" in
hw_mac_addr="$(mtd_get_mac_binary product-info 0x8)"
macaddr_add "$hw_mac_addr" "$PHYNBR" > "/sys${DEVPATH}/macaddress"
;;
tplink,ec330-g5u-v1)
hw_mac_addr="$(mtd_get_mac_text factory 0x165)"
[ "$PHYNBR" = "0" ] && echo -n $hw_mac_addr > /sys${DEVPATH}/macaddress
[ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr 2 > /sys${DEVPATH}/macaddress
;;
yuncore,ax820)
[ "$PHYNBR" = "1" ] && \
macaddr_setbit_la "$(mtd_get_mac_binary Factory 0xe000)" > /sys${DEVPATH}/macaddress

View File

@ -52,6 +52,7 @@ platform_do_upgrade() {
case "$board" in
ampedwireless,ally-00x19k|\
ampedwireless,ally-r1900k|\
arcadyan,we420223-99|\
asus,rt-ac65p|\
asus,rt-ac85p|\
asus,rt-ax53u|\
@ -102,6 +103,7 @@ platform_do_upgrade() {
sercomm,na502|\
sercomm,na502s|\
sim,simax1800t|\
tplink,ec330-g5u-v1|\
xiaomi,mi-router-3g|\
xiaomi,mi-router-3-pro|\
xiaomi,mi-router-4|\

View File

@ -55,7 +55,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
+};
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
@@ -2021,6 +2021,7 @@ int spi_nor_sr2_bit7_quad_enable(struct
@@ -2023,6 +2023,7 @@ int spi_nor_sr2_bit7_quad_enable(struct
static const struct spi_nor_manufacturer *manufacturers[] = {
&spi_nor_atmel,

View File

@ -184,7 +184,7 @@ define KernelPackage/w83627hf-wdt
DEPENDS:=@TARGET_x86
KCONFIG:=\
CONFIG_W83627HF_WDT \
ONFIG_WATCHDOG_CORE=y
CONFIG_WATCHDOG_CORE=y
FILES:=$(LINUX_DIR)/drivers/watchdog/w83627hf_wdt.ko
AUTOLOAD:=$(call AutoLoad,50,w83627hf-wdt,1)
endef

View File

@ -8,18 +8,15 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=b43-tools
PKG_DATE:=2017-09-13
PKG_DATE:=2022-07-05
PKG_SOURCE_URL:=https://github.com/mbuesch/b43-tools.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)
PKG_SOURCE_VERSION:=27892ef741e7f1d08cb939744f8b8f5dac7b04ae
PKG_MIRROR_HASH:=f914c36ac566e9e3b5a3a04de16ddb014fcad6a1cf25cdd8e4825c708d28d3f4
HOST_BUILD_DIR=$(BUILD_DIR_HOST)/$(PKG_NAME)
PKG_SOURCE_URL:=https://github.com/mbuesch/b43-tools.git
PKG_SOURCE_VERSION:=2fe10ea6690df9a068cb21cde537236bae784a14
PKG_MIRROR_HASH:=4f1cde5da35a1e768f6a01d67888549d04512073990769342381af1b2c9e7fd2
include $(INCLUDE_DIR)/host-build.mk
define Host/Compile
+$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR)/fwcutter \
CFLAGS="$(HOST_CFLAGS) -include endian.h" \