Merge Official Source

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
Tianling Shen 2023-04-29 09:52:56 +08:00
commit 86e04e191c
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
28 changed files with 114 additions and 46 deletions

View File

@ -3,9 +3,9 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=broadcom-sprom
PKG_SOURCE_DATE:=2023-04-19
PKG_SOURCE_VERSION:=d1d94f2407d9090ce72363614bbb87230a92ba44
PKG_MIRROR_HASH:=76cc5590a577713a65a512db12014d4fef61d9c67750e9f69753b358f442db8e
PKG_SOURCE_DATE:=2023-04-27
PKG_SOURCE_VERSION:=d36f7fcb37711106a3a2652b576436cb09aa5b6f
PKG_MIRROR_HASH:=fde251ab4ed26d61c95269316119710d6ccb8fe30ef13305d08b3e7d7d8a4c60
PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git

View File

@ -16,7 +16,7 @@
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
poll-interval = <100>;
wps {
label = "wps";

View File

@ -19,7 +19,7 @@
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
poll-interval = <100>;
reset {
label = "reset";

View File

@ -27,7 +27,7 @@
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
poll-interval = <100>;
wps {
label = "wps";

View File

@ -19,7 +19,7 @@
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
poll-interval = <100>;
wps {
label = "wps";

View File

@ -6,6 +6,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/bcm6318-interrupt-controller.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/reset/bcm6318-reset.h>
#include <dt-bindings/soc/bcm6318-pm.h>

View File

@ -6,6 +6,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/bcm63268-interrupt-controller.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/reset/bcm63268-reset.h>
#include <dt-bindings/soc/bcm63268-pm.h>

View File

@ -18,7 +18,7 @@
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
poll-interval = <100>;
reset {
label = "reset";

View File

@ -6,6 +6,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/bcm6328-interrupt-controller.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/reset/bcm6328-reset.h>
#include <dt-bindings/soc/bcm6328-pm.h>

View File

@ -18,7 +18,7 @@
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
poll-interval = <100>;
help {
label = "help";

View File

@ -6,6 +6,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/bcm6358-interrupt-controller.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/reset/bcm6358-reset.h>
/ {

View File

@ -18,7 +18,7 @@
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
poll-interval = <100>;
reset {
label = "reset";

View File

@ -21,7 +21,7 @@
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
poll-interval = <100>;
wlan {
label = "wlan";

View File

@ -6,6 +6,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/bcm6362-interrupt-controller.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/reset/bcm6362-reset.h>
#include <dt-bindings/soc/bcm6362-pm.h>

View File

@ -18,7 +18,7 @@
keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;
poll-interval = <100>;
reset {
label = "reset";

View File

@ -6,6 +6,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/bcm6368-interrupt-controller.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/reset/bcm6368-reset.h>
/ {

View File

@ -81,4 +81,9 @@
#define BCM6318_IRQ_EPHY2_IDDQ_ENERGY 78
#define BCM6318_IRQ_EPHY3_IDDQ_ENERGY 79
#define BCM6318_EXTIRQ_0 0 /* GPIO 33 */
#define BCM6318_EXTIRQ_1 1
#define BCM6318_EXTIRQ_2 2
#define BCM6318_EXTIRQ_3 3
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6318_H */

View File

@ -35,9 +35,9 @@
#define BCM63268_IRQ_ATM_DMA3 29
#define BCM63268_IRQ_WAKE_ON_IRQ 30
#define BCM63268_IRQ_GPHY 31
#define BCM63268_IRQ_DECT0 32
#define BCM63268_IRQ_DECT0 32
#define BCM63268_IRQ_DECT1 33
#define BCM63268_IRQ_UART1 34
#define BCM63268_IRQ_UART1 34
#define BCM63268_IRQ_WLAN_GPIO 35
#define BCM63268_IRQ_USB_CTL_TX_DMA 36
#define BCM63268_IRQ_USB_BULK_TX_DMA 37
@ -83,4 +83,9 @@
#define BCM63268_IRQ_ATM_DMA19 79
#define BCM63268_IRQ_LSSPI 80
#define BCM63268_EXTIRQ_0 0 /* GPIO 32 */
#define BCM63268_EXTIRQ_1 1 /* GPIO 33 */
#define BCM63268_EXTIRQ_2 2 /* GPIO 34 */
#define BCM63268_EXTIRQ_3 3 /* GPIO 35 */
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM63268_H */

View File

@ -65,4 +65,9 @@
#define BCM6328_IRQ_ATM_DMA19 62
#define BCM6328_IRQ_SAR 63
#define BCM6328_EXTIRQ_0 0 /* GPIO 23 */
#define BCM6328_EXTIRQ_1 1 /* GPIO 24 */
#define BCM6328_EXTIRQ_2 2 /* GPIO 15 */
#define BCM6328_EXTIRQ_3 3 /* GPIO 12 */
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6328_H */

View File

@ -35,4 +35,11 @@
#define BCM6358_IRQ_DG 30
#define BCM6358_IRQ_MPI 31
#define BCM6358_EXTIRQ0_0 0 /* GPIO 34 */
#define BCM6358_EXTIRQ0_1 1 /* GPIO 35 */
#define BCM6358_EXTIRQ0_2 2 /* GPIO 36 */
#define BCM6358_EXTIRQ0_3 3 /* GPIO 37 */
#define BCM6358_EXTIRQ1_4 0 /* GPIO 32 */
#define BCM6358_EXTIRQ1_5 1 /* GPIO 33 */
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6358_H */

View File

@ -65,7 +65,12 @@
#define BCM6362_IRQ_ATM_DMA15 59
#define BCM6362_IRQ_ATM_DMA16 60
#define BCM6362_IRQ_ATM_DMA17 61
#define BCM6362_IRQ_ATM_DMA18 62
#define BCM6362_IRQ_ATM_DMA18 62
#define BCM6362_IRQ_ATM_DMA19 63
#define BCM6362_EXTIRQ_0 0 /* GPIO 24 */
#define BCM6362_EXTIRQ_1 1 /* GPIO 25 */
#define BCM6362_EXTIRQ_2 2 /* GPIO 26 */
#define BCM6362_EXTIRQ_3 3 /* GPIO 27 */
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6362_H */

View File

@ -35,14 +35,14 @@
#define BCM6368_IRQ_USB_BULK_TX_DMA 29
#define BCM6368_IRQ_USB_ISO_RX_DMA 30
#define BCM6368_IRQ_USB_ISO_TX_DMA 31
#define BCM6368_IRQ_ENETSW_RX_DMA0 32
#define BCM6368_IRQ_ENETSW_RX_DMA1 33
#define BCM6368_IRQ_ENETSW_RX_DMA2 34
#define BCM6368_IRQ_ENETSW_RX_DMA3 35
#define BCM6368_IRQ_ENETSW_TX_DMA0 36
#define BCM6368_IRQ_ENETSW_TX_DMA1 37
#define BCM6368_IRQ_ENETSW_TX_DMA2 38
#define BCM6368_IRQ_ENETSW_TX_DMA3 39
#define BCM6368_IRQ_ENETSW_RX_DMA0 32
#define BCM6368_IRQ_ENETSW_RX_DMA1 33
#define BCM6368_IRQ_ENETSW_RX_DMA2 34
#define BCM6368_IRQ_ENETSW_RX_DMA3 35
#define BCM6368_IRQ_ENETSW_TX_DMA0 36
#define BCM6368_IRQ_ENETSW_TX_DMA1 37
#define BCM6368_IRQ_ENETSW_TX_DMA2 38
#define BCM6368_IRQ_ENETSW_TX_DMA3 39
#define BCM6368_IRQ_ATM_DMA0 40
#define BCM6368_IRQ_ATM_DMA1 41
#define BCM6368_IRQ_ATM_DMA2 42
@ -68,4 +68,11 @@
#define BCM6368_IRQ_PCM_DMA0 62
#define BCM6368_IRQ_PCM_DMA1 63
#define BCM6368_EXTIRQ0_0 0 /* GPIO 34 */
#define BCM6368_EXTIRQ0_1 1 /* GPIO 35 */
#define BCM6368_EXTIRQ0_2 2 /* GPIO 36 */
#define BCM6368_EXTIRQ0_3 3 /* GPIO 37 */
#define BCM6368_EXTIRQ1_4 0 /* GPIO 32 */
#define BCM6368_EXTIRQ1_5 1 /* GPIO 33 */
#endif /* __DT_BINDINGS_INTERRUPT_CONTROLLER_BCM6368_H */

View File

@ -73,7 +73,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
obj-$(CONFIG_BCM7120_L2_IRQ) += irq-bcm7120-l2.o
--- /dev/null
+++ b/drivers/irqchip/irq-bcm6345-ext.c
@@ -0,0 +1,299 @@
@@ -0,0 +1,280 @@
+/*
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
@ -94,14 +94,6 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
+#include <linux/slab.h>
+#include <linux/spinlock.h>
+
+#ifdef CONFIG_BCM63XX
+#include <asm/mach-bcm63xx/bcm63xx_irq.h>
+
+#define VIRQ_BASE IRQ_EXTERNAL_BASE
+#else
+#define VIRQ_BASE 0
+#endif
+
+#define MAX_IRQS 4
+
+#define EXTIRQ_CFG_SENSE 0
@ -271,7 +263,6 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
+{
+ struct intc_data *data;
+ unsigned int i;
+ int start = VIRQ_BASE;
+
+ data = kzalloc(sizeof(*data), GFP_KERNEL);
+ if (!data)
@ -296,17 +287,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
+ data->chip.irq_unmask = bcm6345_ext_intc_irq_unmask;
+ data->chip.irq_set_type = bcm6345_ext_intc_set_type;
+
+ /*
+ * If we have less than 4 irqs, this is the second controller on
+ * bcm63xx. So increase the VIRQ start to not overlap with the first
+ * one, but only do so if we actually use a non-zero start.
+ *
+ * This can be removed when bcm63xx has no legacy users anymore.
+ */
+ if (start && num_irqs < 4)
+ start += 4;
+
+ data->domain = irq_domain_add_simple(node, num_irqs, start,
+ data->domain = irq_domain_add_linear(node, num_irqs,
+ &bcm6345_ext_domain_ops, data);
+ if (!data->domain) {
+ kfree(data);

View File

@ -1,3 +1,20 @@
From f5d43ddd334b7c32fcaed9ba46afbd85cb467f1f Mon Sep 17 00:00:00 2001
From: Daniel Golle <daniel@makrotopia.org>
Date: Sun, 19 Mar 2023 12:56:28 +0000
Subject: [PATCH] net: ethernet: mtk_eth_soc: add support for MT7981 SoC
The MediaTek MT7981 SoC comes with two 1G/2.5G SGMII ports, just like
MT7986.
In addition MT7981 is equipped with a built-in 1000Base-T PHY which can
be used with GMAC1.
As many MT7981 boards make use of inverting SGMII signal polarity, add
new device-tree attribute 'mediatek,pn_swap' to support them.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/drivers/net/ethernet/mediatek/mtk_eth_path.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_path.c
@@ -96,12 +96,20 @@ static int set_mux_gmac2_gmac0_to_gephy(

View File

@ -1,3 +1,16 @@
From 880d1311335120f64447ca9d11933872d734e19a Mon Sep 17 00:00:00 2001
From: Daniel Golle <daniel@makrotopia.org>
Date: Mon, 27 Mar 2023 18:41:54 +0100
Subject: [PATCH] generic: pcs-mtk-lynxi: add hack to use 2500Base-X without AN
Using 2500Base-T SFP modules e.g. on the BananaPi R3 requires manually
disabling auto-negotiation, e.g. using ethtool. While a proper fix
using SFP quirks is being discussed upstream, bring a work-around to
restore user experience to what it was before the switch to the
dedicated SGMII PCS driver.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/net/pcs/pcs-mtk-lynxi.c
+++ b/drivers/net/pcs/pcs-mtk-lynxi.c
@@ -92,14 +92,23 @@ static void mtk_pcs_lynxi_get_state(stru

View File

@ -1,3 +1,20 @@
From 027586ae8ecacff49757ed854c020f35d24a599c Mon Sep 17 00:00:00 2001
From: Daniel Golle <daniel@makrotopia.org>
Date: Sat, 11 Mar 2023 03:44:41 +0000
Subject: [PATCH] generic: backport some phylink helper functions
It isn't feasible to literally backport all upstream phylink_pcs changes
down to Linux 5.15: It's just too many patches, and many downstream
drivers and hacks are likely to break. We are too close to branching off
to risk this, and it's also just too much work.
Instead just add helper functions used by modern PCS drivers while keeping
the original functions instact as well. While this may add a kilobyte or
two of extra kernel size, it has the advantage that we get the best of both
worlds: None of the existing codepaths are touched, but yet we have the
option to backport singular improvements to Ethernet drivers where needed.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/include/linux/phylink.h
+++ b/include/linux/phylink.h
@@ -584,10 +584,37 @@ int phylink_speed_up(struct phylink *pl)

View File

@ -52,7 +52,7 @@
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <80000000>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";

View File

@ -85,7 +85,7 @@
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <80000000>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";