mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
kernel: bump 5.4 to 5.4.199 (#9601)
Removed:
target/linux/bcm27xx/patches-5.4/950-1014-Revert-mailbox-avoid-timer-start-from-callback.patch [1]
[1]6d8b9f574b
Signed-off-by: José Hwong <josehwong@hotmail.com>
This commit is contained in:
parent
8c76a6f498
commit
a0cac9a6d1
@ -1,2 +1,2 @@
|
|||||||
LINUX_VERSION-5.4 = .195
|
LINUX_VERSION-5.4 = .199
|
||||||
LINUX_KERNEL_HASH-5.4.195 = f22f5b9df60f8d59988f9d48bb2f39cb5d7ec435ca4296abe352e8063140031d
|
LINUX_KERNEL_HASH-5.4.199 = 484c09f387656ddb6a1174c7ae6a1df81c02daba831911ad9240aa9582c16c58
|
||||||
|
@ -222,7 +222,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com>
|
|||||||
static inline int mmc_blk_part_switch(struct mmc_card *card,
|
static inline int mmc_blk_part_switch(struct mmc_card *card,
|
||||||
unsigned int part_type);
|
unsigned int part_type);
|
||||||
|
|
||||||
@@ -2891,6 +2898,7 @@ static int mmc_blk_probe(struct mmc_card
|
@@ -2890,6 +2897,7 @@ static int mmc_blk_probe(struct mmc_card
|
||||||
{
|
{
|
||||||
struct mmc_blk_data *md, *part_md;
|
struct mmc_blk_data *md, *part_md;
|
||||||
char cap_str[10];
|
char cap_str[10];
|
||||||
@ -230,7 +230,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com>
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Check that the card supports the command class(es) we need.
|
* Check that the card supports the command class(es) we need.
|
||||||
@@ -2898,7 +2906,16 @@ static int mmc_blk_probe(struct mmc_card
|
@@ -2897,7 +2905,16 @@ static int mmc_blk_probe(struct mmc_card
|
||||||
if (!(card->csd.cmdclass & CCC_BLOCK_READ))
|
if (!(card->csd.cmdclass & CCC_BLOCK_READ))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
@ -248,7 +248,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com>
|
|||||||
|
|
||||||
card->complete_wq = alloc_workqueue("mmc_complete",
|
card->complete_wq = alloc_workqueue("mmc_complete",
|
||||||
WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
|
WQ_MEM_RECLAIM | WQ_HIGHPRI, 0);
|
||||||
@@ -2913,9 +2930,14 @@ static int mmc_blk_probe(struct mmc_card
|
@@ -2912,9 +2929,14 @@ static int mmc_blk_probe(struct mmc_card
|
||||||
|
|
||||||
string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2,
|
string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2,
|
||||||
cap_str, sizeof(cap_str));
|
cap_str, sizeof(cap_str));
|
||||||
|
@ -20,7 +20,7 @@ Subject: [PATCH] ASoC: Add support for Rpi-DAC
|
|||||||
select SND_SOC_PCM3008
|
select SND_SOC_PCM3008
|
||||||
select SND_SOC_PCM3060_I2C if I2C
|
select SND_SOC_PCM3060_I2C if I2C
|
||||||
select SND_SOC_PCM3060_SPI if SPI_MASTER
|
select SND_SOC_PCM3060_SPI if SPI_MASTER
|
||||||
@@ -985,6 +986,10 @@ config SND_SOC_RT5616
|
@@ -984,6 +985,10 @@ config SND_SOC_RT5616
|
||||||
tristate "Realtek RT5616 CODEC"
|
tristate "Realtek RT5616 CODEC"
|
||||||
depends on I2C
|
depends on I2C
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ Some code to load the driver based on device-tree-overlays was missing. This is
|
|||||||
select SND_SOC_TLV320AIC26 if SPI_MASTER
|
select SND_SOC_TLV320AIC26 if SPI_MASTER
|
||||||
select SND_SOC_TLV320AIC31XX if I2C
|
select SND_SOC_TLV320AIC31XX if I2C
|
||||||
select SND_SOC_TLV320AIC32X4_I2C if I2C && COMMON_CLK
|
select SND_SOC_TLV320AIC32X4_I2C if I2C && COMMON_CLK
|
||||||
@@ -1148,6 +1149,9 @@ config SND_SOC_TFA9879
|
@@ -1147,6 +1148,9 @@ config SND_SOC_TFA9879
|
||||||
tristate "NXP Semiconductors TFA9879 amplifier"
|
tristate "NXP Semiconductors TFA9879 amplifier"
|
||||||
depends on I2C
|
depends on I2C
|
||||||
|
|
||||||
|
@ -226,7 +226,7 @@ Signed-off-by: Hui Wang <hui.wang@canonical.com>
|
|||||||
select SND_SOC_JZ4740_CODEC
|
select SND_SOC_JZ4740_CODEC
|
||||||
select SND_SOC_JZ4725B_CODEC
|
select SND_SOC_JZ4725B_CODEC
|
||||||
select SND_SOC_LM4857 if I2C
|
select SND_SOC_LM4857 if I2C
|
||||||
@@ -1502,4 +1503,8 @@ config SND_SOC_TPA6130A2
|
@@ -1501,4 +1502,8 @@ config SND_SOC_TPA6130A2
|
||||||
tristate "Texas Instruments TPA6130A2 headphone amplifier"
|
tristate "Texas Instruments TPA6130A2 headphone amplifier"
|
||||||
depends on I2C
|
depends on I2C
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
extern int usb_driver_set_configuration(struct usb_device *udev, int config);
|
extern int usb_driver_set_configuration(struct usb_device *udev, int config);
|
||||||
--- a/include/linux/usb/hcd.h
|
--- a/include/linux/usb/hcd.h
|
||||||
+++ b/include/linux/usb/hcd.h
|
+++ b/include/linux/usb/hcd.h
|
||||||
@@ -382,6 +382,11 @@ struct hc_driver {
|
@@ -384,6 +384,11 @@ struct hc_driver {
|
||||||
* or bandwidth constraints.
|
* or bandwidth constraints.
|
||||||
*/
|
*/
|
||||||
void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *);
|
void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *);
|
||||||
@ -93,7 +93,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||||||
/* Returns the hardware-chosen device address */
|
/* Returns the hardware-chosen device address */
|
||||||
int (*address_device)(struct usb_hcd *, struct usb_device *udev);
|
int (*address_device)(struct usb_hcd *, struct usb_device *udev);
|
||||||
/* prepares the hardware to send commands to the device */
|
/* prepares the hardware to send commands to the device */
|
||||||
@@ -443,6 +448,8 @@ extern void usb_hcd_unmap_urb_setup_for_
|
@@ -445,6 +450,8 @@ extern void usb_hcd_unmap_urb_setup_for_
|
||||||
extern void usb_hcd_unmap_urb_for_dma(struct usb_hcd *, struct urb *);
|
extern void usb_hcd_unmap_urb_for_dma(struct usb_hcd *, struct urb *);
|
||||||
extern void usb_hcd_flush_endpoint(struct usb_device *udev,
|
extern void usb_hcd_flush_endpoint(struct usb_device *udev,
|
||||||
struct usb_host_endpoint *ep);
|
struct usb_host_endpoint *ep);
|
||||||
|
@ -26,7 +26,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||||||
|
|
||||||
--- a/drivers/of/overlay.c
|
--- a/drivers/of/overlay.c
|
||||||
+++ b/drivers/of/overlay.c
|
+++ b/drivers/of/overlay.c
|
||||||
@@ -245,6 +245,8 @@ static struct property *dup_and_fixup_sy
|
@@ -243,6 +243,8 @@ static struct property *dup_and_fixup_sy
|
||||||
if (!target_path)
|
if (!target_path)
|
||||||
return NULL;
|
return NULL;
|
||||||
target_path_len = strlen(target_path);
|
target_path_len = strlen(target_path);
|
||||||
|
@ -65,7 +65,7 @@ Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
|
|||||||
arm64_dma32_phys_limit = max_zone_phys(32);
|
arm64_dma32_phys_limit = max_zone_phys(32);
|
||||||
--- a/arch/powerpc/include/asm/page.h
|
--- a/arch/powerpc/include/asm/page.h
|
||||||
+++ b/arch/powerpc/include/asm/page.h
|
+++ b/arch/powerpc/include/asm/page.h
|
||||||
@@ -338,13 +338,4 @@ struct vm_area_struct;
|
@@ -341,13 +341,4 @@ struct vm_area_struct;
|
||||||
#endif /* __ASSEMBLY__ */
|
#endif /* __ASSEMBLY__ */
|
||||||
#include <asm/slice.h>
|
#include <asm/slice.h>
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
|
|||||||
}
|
}
|
||||||
--- a/kernel/dma/swiotlb.c
|
--- a/kernel/dma/swiotlb.c
|
||||||
+++ b/kernel/dma/swiotlb.c
|
+++ b/kernel/dma/swiotlb.c
|
||||||
@@ -683,7 +683,7 @@ bool swiotlb_map(struct device *dev, phy
|
@@ -686,7 +686,7 @@ bool swiotlb_map(struct device *dev, phy
|
||||||
|
|
||||||
/* Ensure that the address returned is DMA'ble */
|
/* Ensure that the address returned is DMA'ble */
|
||||||
*dma_addr = __phys_to_dma(dev, *phys);
|
*dma_addr = __phys_to_dma(dev, *phys);
|
||||||
|
@ -271,7 +271,7 @@ Signed-off-by: Christoph Hellwig <hch@lst.de>
|
|||||||
u64 dma_direct_get_required_mask(struct device *dev);
|
u64 dma_direct_get_required_mask(struct device *dev);
|
||||||
--- a/include/linux/dma-mapping.h
|
--- a/include/linux/dma-mapping.h
|
||||||
+++ b/include/linux/dma-mapping.h
|
+++ b/include/linux/dma-mapping.h
|
||||||
@@ -705,7 +705,7 @@ static inline int dma_coerce_mask_and_co
|
@@ -697,7 +697,7 @@ static inline int dma_coerce_mask_and_co
|
||||||
*/
|
*/
|
||||||
static inline bool dma_addressing_limited(struct device *dev)
|
static inline bool dma_addressing_limited(struct device *dev)
|
||||||
{
|
{
|
||||||
|
@ -77,7 +77,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|||||||
+};
|
+};
|
||||||
--- a/arch/arm/boot/dts/bcm2835-rpi-b.dts
|
--- a/arch/arm/boot/dts/bcm2835-rpi-b.dts
|
||||||
+++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts
|
+++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts
|
||||||
@@ -116,3 +116,10 @@
|
@@ -115,3 +115,10 @@
|
||||||
pinctrl-0 = <&uart0_gpio14>;
|
pinctrl-0 = <&uart0_gpio14>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
@ -101,7 +101,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|||||||
+};
|
+};
|
||||||
--- a/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts
|
--- a/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts
|
||||||
+++ b/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts
|
+++ b/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts
|
||||||
@@ -149,3 +149,8 @@
|
@@ -151,3 +151,8 @@
|
||||||
pinctrl-0 = <&uart1_gpio14>;
|
pinctrl-0 = <&uart1_gpio14>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
@ -1,60 +0,0 @@
|
|||||||
From 2b7fcd18b15d9cc7b2e68deb77f4e0acfa904c41 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Phil Elwell <phil@raspberrypi.com>
|
|
||||||
Date: Tue, 3 Nov 2020 10:13:48 +0000
|
|
||||||
Subject: [PATCH] Revert "mailbox: avoid timer start from callback"
|
|
||||||
|
|
||||||
This reverts commit 6dc15642c8b830d384fd3e6c9ea63144202b8932.
|
|
||||||
|
|
||||||
The Pi 400 shutdown/poweroff mechanism relies on being able to set
|
|
||||||
a GPIO on the expander in the pm_power_off handler, something that
|
|
||||||
requires two mailbox calls - GET_GPIO_STATE and SET_GPIO_STATE. A
|
|
||||||
recent kernel change introduces a reasonable possibility that the
|
|
||||||
GET call doesn't completes, and bisecting led to a commit from
|
|
||||||
October that changes the timer usage of the mailbox.
|
|
||||||
|
|
||||||
My theory is that there is a race condition in the new code that breaks
|
|
||||||
the poll timer, but that it normally goes unnoticed because subsequent
|
|
||||||
mailbox activity wakes it up again. The power-off mailbox calls happen
|
|
||||||
at a time when other subsystems have been shut down, so if one of them
|
|
||||||
fails then there is nothing to allow it to recover.
|
|
||||||
|
|
||||||
Revert 6dc15642 as (at least) a workaround.
|
|
||||||
|
|
||||||
See: https://github.com/raspberrypi/linux/issues/3941
|
|
||||||
|
|
||||||
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|
||||||
---
|
|
||||||
drivers/mailbox/mailbox.c | 12 +++++-------
|
|
||||||
1 file changed, 5 insertions(+), 7 deletions(-)
|
|
||||||
|
|
||||||
--- a/drivers/mailbox/mailbox.c
|
|
||||||
+++ b/drivers/mailbox/mailbox.c
|
|
||||||
@@ -82,12 +82,9 @@ static void msg_submit(struct mbox_chan
|
|
||||||
exit:
|
|
||||||
spin_unlock_irqrestore(&chan->lock, flags);
|
|
||||||
|
|
||||||
- /* kick start the timer immediately to avoid delays */
|
|
||||||
- if (!err && (chan->txdone_method & TXDONE_BY_POLL)) {
|
|
||||||
- /* but only if not already active */
|
|
||||||
- if (!hrtimer_active(&chan->mbox->poll_hrt))
|
|
||||||
- hrtimer_start(&chan->mbox->poll_hrt, 0, HRTIMER_MODE_REL);
|
|
||||||
- }
|
|
||||||
+ if (!err && (chan->txdone_method & TXDONE_BY_POLL))
|
|
||||||
+ /* kick start the timer immediately to avoid delays */
|
|
||||||
+ hrtimer_start(&chan->mbox->poll_hrt, 0, HRTIMER_MODE_REL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void tx_tick(struct mbox_chan *chan, int r)
|
|
||||||
@@ -125,10 +122,11 @@ static enum hrtimer_restart txdone_hrtim
|
|
||||||
struct mbox_chan *chan = &mbox->chans[i];
|
|
||||||
|
|
||||||
if (chan->active_req && chan->cl) {
|
|
||||||
- resched = true;
|
|
||||||
txdone = chan->mbox->ops->last_tx_done(chan);
|
|
||||||
if (txdone)
|
|
||||||
tx_tick(chan, 0);
|
|
||||||
+ else
|
|
||||||
+ resched = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -41,7 +41,7 @@ Link: https://lore.kernel.org/r/20210309174859.362060-1-sandberg@mailfence.com
|
|||||||
|
|
||||||
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
|
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
|
||||||
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
|
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
|
||||||
@@ -272,6 +272,10 @@ static void fixup_use_write_buffers(stru
|
@@ -276,6 +276,10 @@ static void fixup_use_write_buffers(stru
|
||||||
{
|
{
|
||||||
struct map_info *map = mtd->priv;
|
struct map_info *map = mtd->priv;
|
||||||
struct cfi_private *cfi = map->fldrv_priv;
|
struct cfi_private *cfi = map->fldrv_priv;
|
||||||
|
@ -25,7 +25,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
|
|
||||||
--- a/drivers/net/dsa/mv88e6xxx/chip.c
|
--- a/drivers/net/dsa/mv88e6xxx/chip.c
|
||||||
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
|
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
|
||||||
@@ -4927,6 +4927,80 @@ static int mv88e6xxx_port_mdb_del(struct
|
@@ -4928,6 +4928,80 @@ static int mv88e6xxx_port_mdb_del(struct
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -106,7 +106,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
static int mv88e6xxx_port_egress_floods(struct dsa_switch *ds, int port,
|
static int mv88e6xxx_port_egress_floods(struct dsa_switch *ds, int port,
|
||||||
bool unicast, bool multicast)
|
bool unicast, bool multicast)
|
||||||
{
|
{
|
||||||
@@ -4981,6 +5055,8 @@ static const struct dsa_switch_ops mv88e
|
@@ -4982,6 +5056,8 @@ static const struct dsa_switch_ops mv88e
|
||||||
.port_mdb_prepare = mv88e6xxx_port_mdb_prepare,
|
.port_mdb_prepare = mv88e6xxx_port_mdb_prepare,
|
||||||
.port_mdb_add = mv88e6xxx_port_mdb_add,
|
.port_mdb_add = mv88e6xxx_port_mdb_add,
|
||||||
.port_mdb_del = mv88e6xxx_port_mdb_del,
|
.port_mdb_del = mv88e6xxx_port_mdb_del,
|
||||||
|
@ -19,7 +19,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
|
|
||||||
--- a/drivers/net/dsa/mv88e6xxx/chip.c
|
--- a/drivers/net/dsa/mv88e6xxx/chip.c
|
||||||
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
|
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
|
||||||
@@ -4994,7 +4994,7 @@ static void mv88e6xxx_port_mirror_del(st
|
@@ -4995,7 +4995,7 @@ static void mv88e6xxx_port_mirror_del(st
|
||||||
if (chip->info->ops->set_egress_port(chip,
|
if (chip->info->ops->set_egress_port(chip,
|
||||||
direction,
|
direction,
|
||||||
dsa_upstream_port(ds,
|
dsa_upstream_port(ds,
|
||||||
|
@ -10,7 +10,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
|
|
||||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
@@ -2232,6 +2232,28 @@ static int mtk_start_dma(struct mtk_eth
|
@@ -2235,6 +2235,28 @@ static int mtk_start_dma(struct mtk_eth
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
static int mtk_open(struct net_device *dev)
|
static int mtk_open(struct net_device *dev)
|
||||||
{
|
{
|
||||||
struct mtk_mac *mac = netdev_priv(dev);
|
struct mtk_mac *mac = netdev_priv(dev);
|
||||||
@@ -2427,8 +2449,6 @@ static int mtk_hw_init(struct mtk_eth *e
|
@@ -2430,8 +2452,6 @@ static int mtk_hw_init(struct mtk_eth *e
|
||||||
mtk_w32(eth, 0, MTK_QDMA_DELAY_INT);
|
mtk_w32(eth, 0, MTK_QDMA_DELAY_INT);
|
||||||
mtk_tx_irq_disable(eth, ~0);
|
mtk_tx_irq_disable(eth, ~0);
|
||||||
mtk_rx_irq_disable(eth, ~0);
|
mtk_rx_irq_disable(eth, ~0);
|
||||||
@ -48,7 +48,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
|
|
||||||
/* FE int grouping */
|
/* FE int grouping */
|
||||||
mtk_w32(eth, MTK_TX_DONE_INT, MTK_PDMA_INT_GRP1);
|
mtk_w32(eth, MTK_TX_DONE_INT, MTK_PDMA_INT_GRP1);
|
||||||
@@ -2437,18 +2457,7 @@ static int mtk_hw_init(struct mtk_eth *e
|
@@ -2440,18 +2460,7 @@ static int mtk_hw_init(struct mtk_eth *e
|
||||||
mtk_w32(eth, MTK_RX_DONE_INT, MTK_QDMA_INT_GRP2);
|
mtk_w32(eth, MTK_RX_DONE_INT, MTK_QDMA_INT_GRP2);
|
||||||
mtk_w32(eth, 0x21021000, MTK_FE_INT_GRP);
|
mtk_w32(eth, 0x21021000, MTK_FE_INT_GRP);
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
|
|
||||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
@@ -2236,6 +2236,9 @@ static void mtk_gdm_config(struct mtk_et
|
@@ -2239,6 +2239,9 @@ static void mtk_gdm_config(struct mtk_et
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
for (i = 0; i < MTK_MAC_COUNT; i++) {
|
for (i = 0; i < MTK_MAC_COUNT; i++) {
|
||||||
u32 val = mtk_r32(eth, MTK_GDMA_FWD_CFG(i));
|
u32 val = mtk_r32(eth, MTK_GDMA_FWD_CFG(i));
|
||||||
|
|
||||||
@@ -2274,6 +2277,8 @@ static int mtk_open(struct net_device *d
|
@@ -2277,6 +2280,8 @@ static int mtk_open(struct net_device *d
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
napi_enable(ð->tx_napi);
|
napi_enable(ð->tx_napi);
|
||||||
napi_enable(ð->rx_napi);
|
napi_enable(ð->rx_napi);
|
||||||
mtk_tx_irq_enable(eth, MTK_TX_DONE_INT);
|
mtk_tx_irq_enable(eth, MTK_TX_DONE_INT);
|
||||||
@@ -2457,8 +2462,6 @@ static int mtk_hw_init(struct mtk_eth *e
|
@@ -2460,8 +2465,6 @@ static int mtk_hw_init(struct mtk_eth *e
|
||||||
mtk_w32(eth, MTK_RX_DONE_INT, MTK_QDMA_INT_GRP2);
|
mtk_w32(eth, MTK_RX_DONE_INT, MTK_QDMA_INT_GRP2);
|
||||||
mtk_w32(eth, 0x21021000, MTK_FE_INT_GRP);
|
mtk_w32(eth, 0x21021000, MTK_FE_INT_GRP);
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
|
|
||||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
@@ -2331,6 +2331,8 @@ static int mtk_stop(struct net_device *d
|
@@ -2334,6 +2334,8 @@ static int mtk_stop(struct net_device *d
|
||||||
if (!refcount_dec_and_test(ð->dma_refcnt))
|
if (!refcount_dec_and_test(ð->dma_refcnt))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -264,7 +264,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
ndev->dev_addr);
|
ndev->dev_addr);
|
||||||
--- a/drivers/net/ethernet/altera/altera_tse_main.c
|
--- a/drivers/net/ethernet/altera/altera_tse_main.c
|
||||||
+++ b/drivers/net/ethernet/altera/altera_tse_main.c
|
+++ b/drivers/net/ethernet/altera/altera_tse_main.c
|
||||||
@@ -1351,7 +1351,6 @@ static int altera_tse_probe(struct platf
|
@@ -1355,7 +1355,6 @@ static int altera_tse_probe(struct platf
|
||||||
struct resource *control_port;
|
struct resource *control_port;
|
||||||
struct resource *dma_res;
|
struct resource *dma_res;
|
||||||
struct altera_tse_private *priv;
|
struct altera_tse_private *priv;
|
||||||
@ -272,7 +272,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
void __iomem *descmap;
|
void __iomem *descmap;
|
||||||
const struct of_device_id *of_id = NULL;
|
const struct of_device_id *of_id = NULL;
|
||||||
|
|
||||||
@@ -1528,10 +1527,8 @@ static int altera_tse_probe(struct platf
|
@@ -1532,10 +1531,8 @@ static int altera_tse_probe(struct platf
|
||||||
priv->rx_dma_buf_sz = ALTERA_RXDMABUFFER_SIZE;
|
priv->rx_dma_buf_sz = ALTERA_RXDMABUFFER_SIZE;
|
||||||
|
|
||||||
/* get default MAC address from device tree */
|
/* get default MAC address from device tree */
|
||||||
@ -859,7 +859,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
|||||||
|
|
||||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
@@ -2490,14 +2490,11 @@ static int __init mtk_init(struct net_de
|
@@ -2493,14 +2493,11 @@ static int __init mtk_init(struct net_de
|
||||||
{
|
{
|
||||||
struct mtk_mac *mac = netdev_priv(dev);
|
struct mtk_mac *mac = netdev_priv(dev);
|
||||||
struct mtk_eth *eth = mac->hw;
|
struct mtk_eth *eth = mac->hw;
|
||||||
|
@ -96,7 +96,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
--- a/init/Kconfig
|
--- a/init/Kconfig
|
||||||
+++ b/init/Kconfig
|
+++ b/init/Kconfig
|
||||||
@@ -2208,6 +2208,13 @@ config TRIM_UNUSED_KSYMS
|
@@ -2217,6 +2217,13 @@ config TRIM_UNUSED_KSYMS
|
||||||
|
|
||||||
If unsure, or if you need to build out-of-tree modules, say N.
|
If unsure, or if you need to build out-of-tree modules, say N.
|
||||||
|
|
||||||
@ -151,7 +151,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
--- a/scripts/mod/modpost.c
|
--- a/scripts/mod/modpost.c
|
||||||
+++ b/scripts/mod/modpost.c
|
+++ b/scripts/mod/modpost.c
|
||||||
@@ -2056,7 +2056,9 @@ static void read_symbols(const char *mod
|
@@ -2057,7 +2057,9 @@ static void read_symbols(const char *mod
|
||||||
symname = remove_dot(info.strtab + sym->st_name);
|
symname = remove_dot(info.strtab + sym->st_name);
|
||||||
|
|
||||||
handle_modversions(mod, &info, sym, symname);
|
handle_modversions(mod, &info, sym, symname);
|
||||||
@ -161,7 +161,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Apply symbol namespaces from __kstrtabns_<symbol> entries. */
|
/* Apply symbol namespaces from __kstrtabns_<symbol> entries. */
|
||||||
@@ -2270,8 +2272,10 @@ static void add_header(struct buffer *b,
|
@@ -2271,8 +2273,10 @@ static void add_header(struct buffer *b,
|
||||||
buf_printf(b, "\n");
|
buf_printf(b, "\n");
|
||||||
buf_printf(b, "BUILD_SALT;\n");
|
buf_printf(b, "BUILD_SALT;\n");
|
||||||
buf_printf(b, "\n");
|
buf_printf(b, "\n");
|
||||||
@ -172,7 +172,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
buf_printf(b, "\n");
|
buf_printf(b, "\n");
|
||||||
buf_printf(b, "__visible struct module __this_module\n");
|
buf_printf(b, "__visible struct module __this_module\n");
|
||||||
buf_printf(b, "__section(.gnu.linkonce.this_module) = {\n");
|
buf_printf(b, "__section(.gnu.linkonce.this_module) = {\n");
|
||||||
@@ -2288,8 +2292,10 @@ static void add_header(struct buffer *b,
|
@@ -2289,8 +2293,10 @@ static void add_header(struct buffer *b,
|
||||||
|
|
||||||
static void add_intree_flag(struct buffer *b, int is_intree)
|
static void add_intree_flag(struct buffer *b, int is_intree)
|
||||||
{
|
{
|
||||||
@ -183,7 +183,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Cannot check for assembler */
|
/* Cannot check for assembler */
|
||||||
@@ -2302,8 +2308,10 @@ static void add_retpoline(struct buffer
|
@@ -2303,8 +2309,10 @@ static void add_retpoline(struct buffer
|
||||||
|
|
||||||
static void add_staging_flag(struct buffer *b, const char *name)
|
static void add_staging_flag(struct buffer *b, const char *name)
|
||||||
{
|
{
|
||||||
@ -194,7 +194,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -2387,11 +2395,13 @@ static void add_depends(struct buffer *b
|
@@ -2388,11 +2396,13 @@ static void add_depends(struct buffer *b
|
||||||
|
|
||||||
static void add_srcversion(struct buffer *b, struct module *mod)
|
static void add_srcversion(struct buffer *b, struct module *mod)
|
||||||
{
|
{
|
||||||
@ -208,7 +208,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void write_if_changed(struct buffer *b, const char *fname)
|
static void write_if_changed(struct buffer *b, const char *fname)
|
||||||
@@ -2661,7 +2671,9 @@ int main(int argc, char **argv)
|
@@ -2662,7 +2672,9 @@ int main(int argc, char **argv)
|
||||||
add_staging_flag(&buf, mod->name);
|
add_staging_flag(&buf, mod->name);
|
||||||
err |= add_versions(&buf, mod);
|
err |= add_versions(&buf, mod);
|
||||||
add_depends(&buf, mod);
|
add_depends(&buf, mod);
|
||||||
|
@ -12,7 +12,7 @@ Signed-off-by: Etienne Champetier <champetier.etienne@gmail.com>
|
|||||||
|
|
||||||
--- a/net/bridge/br_input.c
|
--- a/net/bridge/br_input.c
|
||||||
+++ b/net/bridge/br_input.c
|
+++ b/net/bridge/br_input.c
|
||||||
@@ -103,10 +103,14 @@ int br_handle_frame_finish(struct net *n
|
@@ -110,10 +110,14 @@ int br_handle_frame_finish(struct net *n
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
--- a/include/net/sch_generic.h
|
--- a/include/net/sch_generic.h
|
||||||
+++ b/include/net/sch_generic.h
|
+++ b/include/net/sch_generic.h
|
||||||
@@ -617,12 +617,13 @@ extern struct Qdisc_ops noop_qdisc_ops;
|
@@ -603,12 +603,13 @@ extern struct Qdisc_ops noop_qdisc_ops;
|
||||||
extern struct Qdisc_ops pfifo_fast_ops;
|
extern struct Qdisc_ops pfifo_fast_ops;
|
||||||
extern struct Qdisc_ops mq_qdisc_ops;
|
extern struct Qdisc_ops mq_qdisc_ops;
|
||||||
extern struct Qdisc_ops noqueue_qdisc_ops;
|
extern struct Qdisc_ops noqueue_qdisc_ops;
|
||||||
|
@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
--- a/net/bridge/br_input.c
|
--- a/net/bridge/br_input.c
|
||||||
+++ b/net/bridge/br_input.c
|
+++ b/net/bridge/br_input.c
|
||||||
@@ -190,6 +190,9 @@ static void __br_handle_local_finish(str
|
@@ -197,6 +197,9 @@ static void __br_handle_local_finish(str
|
||||||
/* note: already called with rcu_read_lock */
|
/* note: already called with rcu_read_lock */
|
||||||
static int br_handle_local_finish(struct net *net, struct sock *sk, struct sk_buff *skb)
|
static int br_handle_local_finish(struct net *net, struct sock *sk, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
@ -25,7 +25,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
__br_handle_local_finish(skb);
|
__br_handle_local_finish(skb);
|
||||||
|
|
||||||
/* return 1 to signal the okfn() was called so it's ok to use the skb */
|
/* return 1 to signal the okfn() was called so it's ok to use the skb */
|
||||||
@@ -340,6 +343,17 @@ rx_handler_result_t br_handle_frame(stru
|
@@ -347,6 +350,17 @@ rx_handler_result_t br_handle_frame(stru
|
||||||
|
|
||||||
forward:
|
forward:
|
||||||
switch (p->state) {
|
switch (p->state) {
|
||||||
|
@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
--- a/init/Kconfig
|
--- a/init/Kconfig
|
||||||
+++ b/init/Kconfig
|
+++ b/init/Kconfig
|
||||||
@@ -1280,6 +1280,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
|
@@ -1289,6 +1289,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
|
||||||
the unaligned access emulation.
|
the unaligned access emulation.
|
||||||
see arch/parisc/kernel/unaligned.c for reference
|
see arch/parisc/kernel/unaligned.c for reference
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
|
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
|
||||||
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
|
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
|
||||||
@@ -913,7 +913,7 @@ static int get_chip(struct map_info *map
|
@@ -906,7 +906,7 @@ static int get_chip(struct map_info *map
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case FL_ERASING:
|
case FL_ERASING:
|
||||||
|
@ -7,7 +7,7 @@ Signed-off-by: George Kashperko <george@znau.edu.ua>
|
|||||||
1 file changed, 1 insertion(+)
|
1 file changed, 1 insertion(+)
|
||||||
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
|
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
|
||||||
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
|
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
|
||||||
@@ -2058,6 +2058,7 @@ static int __xipram do_write_buffer(stru
|
@@ -2051,6 +2051,7 @@ static int __xipram do_write_buffer(stru
|
||||||
|
|
||||||
/* Write Buffer Load */
|
/* Write Buffer Load */
|
||||||
map_write(map, CMD(0x25), cmd_adr);
|
map_write(map, CMD(0x25), cmd_adr);
|
||||||
|
@ -506,7 +506,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
+MODULE_ALIAS("nf-flow-table-hw");
|
+MODULE_ALIAS("nf-flow-table-hw");
|
||||||
--- a/net/netfilter/nf_tables_api.c
|
--- a/net/netfilter/nf_tables_api.c
|
||||||
+++ b/net/netfilter/nf_tables_api.c
|
+++ b/net/netfilter/nf_tables_api.c
|
||||||
@@ -5748,6 +5748,13 @@ static int nf_tables_flowtable_parse_hoo
|
@@ -5752,6 +5752,13 @@ static int nf_tables_flowtable_parse_hoo
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
@ -520,7 +520,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL);
|
ops = kcalloc(n, sizeof(struct nf_hook_ops), GFP_KERNEL);
|
||||||
if (!ops)
|
if (!ops)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
@@ -5878,10 +5885,19 @@ static int nf_tables_newflowtable(struct
|
@@ -5882,10 +5889,19 @@ static int nf_tables_newflowtable(struct
|
||||||
}
|
}
|
||||||
|
|
||||||
flowtable->data.type = type;
|
flowtable->data.type = type;
|
||||||
@ -540,7 +540,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
|||||||
err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK],
|
err = nf_tables_flowtable_parse_hook(&ctx, nla[NFTA_FLOWTABLE_HOOK],
|
||||||
flowtable);
|
flowtable);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
@@ -6007,7 +6023,8 @@ static int nf_tables_fill_flowtable_info
|
@@ -6011,7 +6027,8 @@ static int nf_tables_fill_flowtable_info
|
||||||
nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) ||
|
nla_put_string(skb, NFTA_FLOWTABLE_NAME, flowtable->name) ||
|
||||||
nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) ||
|
nla_put_be32(skb, NFTA_FLOWTABLE_USE, htonl(flowtable->use)) ||
|
||||||
nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle),
|
nla_put_be64(skb, NFTA_FLOWTABLE_HANDLE, cpu_to_be64(flowtable->handle),
|
||||||
|
@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
@@ -2151,8 +2151,8 @@ static irqreturn_t mtk_handle_irq_rx(int
|
@@ -2154,8 +2154,8 @@ static irqreturn_t mtk_handle_irq_rx(int
|
||||||
struct mtk_eth *eth = _eth;
|
struct mtk_eth *eth = _eth;
|
||||||
|
|
||||||
if (likely(napi_schedule_prep(ð->rx_napi))) {
|
if (likely(napi_schedule_prep(ð->rx_napi))) {
|
||||||
@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
}
|
}
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
@@ -2163,8 +2163,8 @@ static irqreturn_t mtk_handle_irq_tx(int
|
@@ -2166,8 +2166,8 @@ static irqreturn_t mtk_handle_irq_tx(int
|
||||||
struct mtk_eth *eth = _eth;
|
struct mtk_eth *eth = _eth;
|
||||||
|
|
||||||
if (likely(napi_schedule_prep(ð->tx_napi))) {
|
if (likely(napi_schedule_prep(ð->tx_napi))) {
|
||||||
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
}
|
}
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
@@ -3087,6 +3087,8 @@ static int mtk_probe(struct platform_dev
|
@@ -3090,6 +3090,8 @@ static int mtk_probe(struct platform_dev
|
||||||
* for NAPI to work
|
* for NAPI to work
|
||||||
*/
|
*/
|
||||||
init_dummy_netdev(ð->dummy_dev);
|
init_dummy_netdev(ð->dummy_dev);
|
||||||
|
@ -17,7 +17,7 @@ Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
|
|||||||
|
|
||||||
--- a/drivers/net/dsa/mv88e6xxx/chip.c
|
--- a/drivers/net/dsa/mv88e6xxx/chip.c
|
||||||
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
|
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
|
||||||
@@ -5081,6 +5081,7 @@ static int mv88e6xxx_register_switch(str
|
@@ -5082,6 +5082,7 @@ static int mv88e6xxx_register_switch(str
|
||||||
ds->ops = &mv88e6xxx_switch_ops;
|
ds->ops = &mv88e6xxx_switch_ops;
|
||||||
ds->ageing_time_min = chip->info->age_time_coeff;
|
ds->ageing_time_min = chip->info->age_time_coeff;
|
||||||
ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX;
|
ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX;
|
||||||
|
@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
@@ -2208,7 +2208,7 @@ static int mtk_start_dma(struct mtk_eth
|
@@ -2211,7 +2211,7 @@ static int mtk_start_dma(struct mtk_eth
|
||||||
if (MTK_HAS_CAPS(eth->soc->caps, MTK_QDMA)) {
|
if (MTK_HAS_CAPS(eth->soc->caps, MTK_QDMA)) {
|
||||||
mtk_w32(eth,
|
mtk_w32(eth,
|
||||||
MTK_TX_WB_DDONE | MTK_TX_DMA_EN |
|
MTK_TX_WB_DDONE | MTK_TX_DMA_EN |
|
||||||
|
@ -79,7 +79,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
if (mtk_queue_stopped(eth) &&
|
if (mtk_queue_stopped(eth) &&
|
||||||
(atomic_read(&ring->free_count) > ring->thresh))
|
(atomic_read(&ring->free_count) > ring->thresh))
|
||||||
mtk_wake_queue(eth);
|
mtk_wake_queue(eth);
|
||||||
@@ -2144,6 +2159,7 @@ static irqreturn_t mtk_handle_irq_rx(int
|
@@ -2147,6 +2162,7 @@ static irqreturn_t mtk_handle_irq_rx(int
|
||||||
{
|
{
|
||||||
struct mtk_eth *eth = _eth;
|
struct mtk_eth *eth = _eth;
|
||||||
|
|
||||||
@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
if (likely(napi_schedule_prep(ð->rx_napi))) {
|
if (likely(napi_schedule_prep(ð->rx_napi))) {
|
||||||
mtk_rx_irq_disable(eth, MTK_RX_DONE_INT);
|
mtk_rx_irq_disable(eth, MTK_RX_DONE_INT);
|
||||||
__napi_schedule(ð->rx_napi);
|
__napi_schedule(ð->rx_napi);
|
||||||
@@ -2156,6 +2172,7 @@ static irqreturn_t mtk_handle_irq_tx(int
|
@@ -2159,6 +2175,7 @@ static irqreturn_t mtk_handle_irq_tx(int
|
||||||
{
|
{
|
||||||
struct mtk_eth *eth = _eth;
|
struct mtk_eth *eth = _eth;
|
||||||
|
|
||||||
@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
if (likely(napi_schedule_prep(ð->tx_napi))) {
|
if (likely(napi_schedule_prep(ð->tx_napi))) {
|
||||||
mtk_tx_irq_disable(eth, MTK_TX_DONE_INT);
|
mtk_tx_irq_disable(eth, MTK_TX_DONE_INT);
|
||||||
__napi_schedule(ð->tx_napi);
|
__napi_schedule(ð->tx_napi);
|
||||||
@@ -2332,6 +2349,9 @@ static int mtk_stop(struct net_device *d
|
@@ -2335,6 +2352,9 @@ static int mtk_stop(struct net_device *d
|
||||||
napi_disable(ð->tx_napi);
|
napi_disable(ð->tx_napi);
|
||||||
napi_disable(ð->rx_napi);
|
napi_disable(ð->rx_napi);
|
||||||
|
|
||||||
@ -105,7 +105,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
if (MTK_HAS_CAPS(eth->soc->caps, MTK_QDMA))
|
if (MTK_HAS_CAPS(eth->soc->caps, MTK_QDMA))
|
||||||
mtk_stop_dma(eth, MTK_QDMA_GLO_CFG);
|
mtk_stop_dma(eth, MTK_QDMA_GLO_CFG);
|
||||||
mtk_stop_dma(eth, MTK_PDMA_GLO_CFG);
|
mtk_stop_dma(eth, MTK_PDMA_GLO_CFG);
|
||||||
@@ -2381,6 +2401,64 @@ err_disable_clks:
|
@@ -2384,6 +2404,64 @@ err_disable_clks:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -170,7 +170,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
static int mtk_hw_init(struct mtk_eth *eth)
|
static int mtk_hw_init(struct mtk_eth *eth)
|
||||||
{
|
{
|
||||||
int i, val, ret;
|
int i, val, ret;
|
||||||
@@ -2402,9 +2480,6 @@ static int mtk_hw_init(struct mtk_eth *e
|
@@ -2405,9 +2483,6 @@ static int mtk_hw_init(struct mtk_eth *e
|
||||||
goto err_disable_pm;
|
goto err_disable_pm;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -180,7 +180,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
/* disable delay and normal interrupt */
|
/* disable delay and normal interrupt */
|
||||||
mtk_tx_irq_disable(eth, ~0);
|
mtk_tx_irq_disable(eth, ~0);
|
||||||
mtk_rx_irq_disable(eth, ~0);
|
mtk_rx_irq_disable(eth, ~0);
|
||||||
@@ -2443,11 +2518,10 @@ static int mtk_hw_init(struct mtk_eth *e
|
@@ -2446,11 +2521,10 @@ static int mtk_hw_init(struct mtk_eth *e
|
||||||
/* Enable RX VLan Offloading */
|
/* Enable RX VLan Offloading */
|
||||||
mtk_w32(eth, 1, MTK_CDMP_EG_CTRL);
|
mtk_w32(eth, 1, MTK_CDMP_EG_CTRL);
|
||||||
|
|
||||||
@ -194,7 +194,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
mtk_tx_irq_disable(eth, ~0);
|
mtk_tx_irq_disable(eth, ~0);
|
||||||
mtk_rx_irq_disable(eth, ~0);
|
mtk_rx_irq_disable(eth, ~0);
|
||||||
|
|
||||||
@@ -2948,6 +3022,13 @@ static int mtk_probe(struct platform_dev
|
@@ -2951,6 +3025,13 @@ static int mtk_probe(struct platform_dev
|
||||||
spin_lock_init(ð->page_lock);
|
spin_lock_init(ð->page_lock);
|
||||||
spin_lock_init(ð->tx_irq_lock);
|
spin_lock_init(ð->tx_irq_lock);
|
||||||
spin_lock_init(ð->rx_irq_lock);
|
spin_lock_init(ð->rx_irq_lock);
|
||||||
|
@ -37,7 +37,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
if (unlikely(mac < 0 || mac >= MTK_MAC_COUNT ||
|
if (unlikely(mac < 0 || mac >= MTK_MAC_COUNT ||
|
||||||
!eth->netdev[mac]))
|
!eth->netdev[mac]))
|
||||||
@@ -2268,6 +2268,9 @@ static void mtk_gdm_config(struct mtk_et
|
@@ -2271,6 +2271,9 @@ static void mtk_gdm_config(struct mtk_et
|
||||||
|
|
||||||
val |= config;
|
val |= config;
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
+mtk_eth-y := mtk_eth_soc.o mtk_sgmii.o mtk_eth_path.o mtk_ppe.o
|
+mtk_eth-y := mtk_eth_soc.o mtk_sgmii.o mtk_eth_path.o mtk_ppe.o
|
||||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
@@ -2301,12 +2301,17 @@ static int mtk_open(struct net_device *d
|
@@ -2304,12 +2304,17 @@ static int mtk_open(struct net_device *d
|
||||||
|
|
||||||
/* we run 2 netdevs on the same dma ring so we only bring it up once */
|
/* we run 2 netdevs on the same dma ring so we only bring it up once */
|
||||||
if (!refcount_read(ð->dma_refcnt)) {
|
if (!refcount_read(ð->dma_refcnt)) {
|
||||||
@ -44,7 +44,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
napi_enable(ð->tx_napi);
|
napi_enable(ð->tx_napi);
|
||||||
napi_enable(ð->rx_napi);
|
napi_enable(ð->rx_napi);
|
||||||
@@ -2376,6 +2381,9 @@ static int mtk_stop(struct net_device *d
|
@@ -2379,6 +2384,9 @@ static int mtk_stop(struct net_device *d
|
||||||
|
|
||||||
mtk_dma_free(eth);
|
mtk_dma_free(eth);
|
||||||
|
|
||||||
@ -54,7 +54,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3162,6 +3170,13 @@ static int mtk_probe(struct platform_dev
|
@@ -3165,6 +3173,13 @@ static int mtk_probe(struct platform_dev
|
||||||
goto err_free_dev;
|
goto err_free_dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,7 +68,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
for (i = 0; i < MTK_MAX_DEVS; i++) {
|
for (i = 0; i < MTK_MAX_DEVS; i++) {
|
||||||
if (!eth->netdev[i])
|
if (!eth->netdev[i])
|
||||||
continue;
|
continue;
|
||||||
@@ -3238,6 +3253,7 @@ static const struct mtk_soc_data mt7621_
|
@@ -3241,6 +3256,7 @@ static const struct mtk_soc_data mt7621_
|
||||||
.hw_features = MTK_HW_FEATURES,
|
.hw_features = MTK_HW_FEATURES,
|
||||||
.required_clks = MT7621_CLKS_BITMAP,
|
.required_clks = MT7621_CLKS_BITMAP,
|
||||||
.required_pctl = false,
|
.required_pctl = false,
|
||||||
@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
};
|
};
|
||||||
|
|
||||||
static const struct mtk_soc_data mt7622_data = {
|
static const struct mtk_soc_data mt7622_data = {
|
||||||
@@ -3246,6 +3262,7 @@ static const struct mtk_soc_data mt7622_
|
@@ -3249,6 +3265,7 @@ static const struct mtk_soc_data mt7622_
|
||||||
.hw_features = MTK_HW_FEATURES,
|
.hw_features = MTK_HW_FEATURES,
|
||||||
.required_clks = MT7622_CLKS_BITMAP,
|
.required_clks = MT7622_CLKS_BITMAP,
|
||||||
.required_pctl = false,
|
.required_pctl = false,
|
||||||
|
@ -44,7 +44,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
skip_rx:
|
skip_rx:
|
||||||
ring->data[idx] = new_data;
|
ring->data[idx] = new_data;
|
||||||
@@ -2879,6 +2885,25 @@ static int mtk_set_rxnfc(struct net_devi
|
@@ -2882,6 +2888,25 @@ static int mtk_set_rxnfc(struct net_devi
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,7 +70,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
static const struct ethtool_ops mtk_ethtool_ops = {
|
static const struct ethtool_ops mtk_ethtool_ops = {
|
||||||
.get_link_ksettings = mtk_get_link_ksettings,
|
.get_link_ksettings = mtk_get_link_ksettings,
|
||||||
.set_link_ksettings = mtk_set_link_ksettings,
|
.set_link_ksettings = mtk_set_link_ksettings,
|
||||||
@@ -2910,6 +2935,7 @@ static const struct net_device_ops mtk_n
|
@@ -2913,6 +2938,7 @@ static const struct net_device_ops mtk_n
|
||||||
#ifdef CONFIG_NET_POLL_CONTROLLER
|
#ifdef CONFIG_NET_POLL_CONTROLLER
|
||||||
.ndo_poll_controller = mtk_poll_controller,
|
.ndo_poll_controller = mtk_poll_controller,
|
||||||
#endif
|
#endif
|
||||||
@ -78,7 +78,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
};
|
};
|
||||||
|
|
||||||
static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
|
static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
|
||||||
@@ -3175,6 +3201,10 @@ static int mtk_probe(struct platform_dev
|
@@ -3178,6 +3204,10 @@ static int mtk_probe(struct platform_dev
|
||||||
eth->base + MTK_ETH_PPE_BASE, 2);
|
eth->base + MTK_ETH_PPE_BASE, 2);
|
||||||
if (err)
|
if (err)
|
||||||
goto err_free_dev;
|
goto err_free_dev;
|
||||||
|
@ -98,7 +98,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
#endif /* __LINUX_USB_PCI_QUIRKS_H */
|
#endif /* __LINUX_USB_PCI_QUIRKS_H */
|
||||||
--- a/include/linux/usb/hcd.h
|
--- a/include/linux/usb/hcd.h
|
||||||
+++ b/include/linux/usb/hcd.h
|
+++ b/include/linux/usb/hcd.h
|
||||||
@@ -483,7 +483,14 @@ extern int usb_hcd_pci_probe(struct pci_
|
@@ -485,7 +485,14 @@ extern int usb_hcd_pci_probe(struct pci_
|
||||||
extern void usb_hcd_pci_remove(struct pci_dev *dev);
|
extern void usb_hcd_pci_remove(struct pci_dev *dev);
|
||||||
extern void usb_hcd_pci_shutdown(struct pci_dev *dev);
|
extern void usb_hcd_pci_shutdown(struct pci_dev *dev);
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
|
|||||||
|
|
||||||
--- a/init/Kconfig
|
--- a/init/Kconfig
|
||||||
+++ b/init/Kconfig
|
+++ b/init/Kconfig
|
||||||
@@ -1675,6 +1675,15 @@ config EMBEDDED
|
@@ -1684,6 +1684,15 @@ config EMBEDDED
|
||||||
an embedded system so certain expert options are available
|
an embedded system so certain expert options are available
|
||||||
for configuration.
|
for configuration.
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||||||
|
|
||||||
static int mtk_msg_level = -1;
|
static int mtk_msg_level = -1;
|
||||||
module_param_named(msg_level, mtk_msg_level, int, 0);
|
module_param_named(msg_level, mtk_msg_level, int, 0);
|
||||||
@@ -3122,6 +3123,22 @@ static int mtk_probe(struct platform_device *pdev)
|
@@ -3125,6 +3126,22 @@ static int mtk_probe(struct platform_device *pdev)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ Acked-by: Stanimir Varbanov <svarbanov@mm-sol.com>
|
|||||||
writel(PCS_DEEMPH_TX_DEEMPH_GEN1(24) |
|
writel(PCS_DEEMPH_TX_DEEMPH_GEN1(24) |
|
||||||
PCS_DEEMPH_TX_DEEMPH_GEN2_3_5DB(24) |
|
PCS_DEEMPH_TX_DEEMPH_GEN2_3_5DB(24) |
|
||||||
PCS_DEEMPH_TX_DEEMPH_GEN2_6DB(34),
|
PCS_DEEMPH_TX_DEEMPH_GEN2_6DB(34),
|
||||||
@@ -1330,6 +1331,7 @@ err_pm_runtime_put:
|
@@ -1329,6 +1330,7 @@ err_pm_runtime_put:
|
||||||
static const struct of_device_id qcom_pcie_match[] = {
|
static const struct of_device_id qcom_pcie_match[] = {
|
||||||
{ .compatible = "qcom,pcie-apq8084", .data = &ops_1_0_0 },
|
{ .compatible = "qcom,pcie-apq8084", .data = &ops_1_0_0 },
|
||||||
{ .compatible = "qcom,pcie-ipq8064", .data = &ops_2_1_0 },
|
{ .compatible = "qcom,pcie-ipq8064", .data = &ops_2_1_0 },
|
||||||
|
@ -1284,7 +1284,7 @@
|
|||||||
struct fib_table *tb;
|
struct fib_table *tb;
|
||||||
--- a/net/ipv6/addrconf.c
|
--- a/net/ipv6/addrconf.c
|
||||||
+++ b/net/ipv6/addrconf.c
|
+++ b/net/ipv6/addrconf.c
|
||||||
@@ -7187,3 +7187,35 @@ void addrconf_cleanup(void)
|
@@ -7206,3 +7206,35 @@ void addrconf_cleanup(void)
|
||||||
|
|
||||||
destroy_workqueue(addrconf_wq);
|
destroy_workqueue(addrconf_wq);
|
||||||
}
|
}
|
||||||
|
@ -101,7 +101,7 @@
|
|||||||
|
|
||||||
--- a/net/ipv4/ip_gre.c
|
--- a/net/ipv4/ip_gre.c
|
||||||
+++ b/net/ipv4/ip_gre.c
|
+++ b/net/ipv4/ip_gre.c
|
||||||
@@ -1298,6 +1298,7 @@ static void ipgre_tap_setup(struct net_d
|
@@ -1297,6 +1297,7 @@ static void ipgre_tap_setup(struct net_d
|
||||||
dev->netdev_ops = &gre_tap_netdev_ops;
|
dev->netdev_ops = &gre_tap_netdev_ops;
|
||||||
dev->priv_flags &= ~IFF_TX_SKB_SHARING;
|
dev->priv_flags &= ~IFF_TX_SKB_SHARING;
|
||||||
dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
|
dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
u32 limit;
|
u32 limit;
|
||||||
const struct Qdisc_ops *ops;
|
const struct Qdisc_ops *ops;
|
||||||
struct qdisc_size_table __rcu *stab;
|
struct qdisc_size_table __rcu *stab;
|
||||||
@@ -1349,4 +1350,9 @@ static inline void skb_tc_reinsert(struc
|
@@ -1335,4 +1336,9 @@ static inline void skb_tc_reinsert(struc
|
||||||
qstats_overlimit_inc(res->qstats);
|
qstats_overlimit_inc(res->qstats);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,7 +129,7 @@
|
|||||||
{
|
{
|
||||||
struct net_device *indev, *brdev = BR_INPUT_SKB_CB(skb)->brdev;
|
struct net_device *indev, *brdev = BR_INPUT_SKB_CB(skb)->brdev;
|
||||||
struct net_bridge *br = netdev_priv(brdev);
|
struct net_bridge *br = netdev_priv(brdev);
|
||||||
@@ -65,6 +75,7 @@ static int br_pass_frame_up(struct sk_bu
|
@@ -72,6 +82,7 @@ static int br_pass_frame_up(struct sk_bu
|
||||||
dev_net(indev), NULL, skb, indev, NULL,
|
dev_net(indev), NULL, skb, indev, NULL,
|
||||||
br_netif_receive_skb);
|
br_netif_receive_skb);
|
||||||
}
|
}
|
||||||
@ -137,7 +137,7 @@
|
|||||||
|
|
||||||
/* note: already called with rcu_read_lock */
|
/* note: already called with rcu_read_lock */
|
||||||
int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb)
|
int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb)
|
||||||
@@ -76,6 +87,11 @@ int br_handle_frame_finish(struct net *n
|
@@ -83,6 +94,11 @@ int br_handle_frame_finish(struct net *n
|
||||||
bool local_rcv, mcast_hit = false;
|
bool local_rcv, mcast_hit = false;
|
||||||
struct net_bridge *br;
|
struct net_bridge *br;
|
||||||
u16 vid = 0;
|
u16 vid = 0;
|
||||||
@ -149,7 +149,7 @@
|
|||||||
|
|
||||||
if (!p || p->state == BR_STATE_DISABLED)
|
if (!p || p->state == BR_STATE_DISABLED)
|
||||||
goto drop;
|
goto drop;
|
||||||
@@ -132,6 +148,12 @@ int br_handle_frame_finish(struct net *n
|
@@ -139,6 +155,12 @@ int br_handle_frame_finish(struct net *n
|
||||||
|
|
||||||
switch (pkt_type) {
|
switch (pkt_type) {
|
||||||
case BR_PKT_MULTICAST:
|
case BR_PKT_MULTICAST:
|
||||||
@ -162,7 +162,7 @@
|
|||||||
mdst = br_mdb_get(br, skb, vid);
|
mdst = br_mdb_get(br, skb, vid);
|
||||||
if ((mdst || BR_INPUT_SKB_CB_MROUTERS_ONLY(skb)) &&
|
if ((mdst || BR_INPUT_SKB_CB_MROUTERS_ONLY(skb)) &&
|
||||||
br_multicast_querier_exists(br, eth_hdr(skb))) {
|
br_multicast_querier_exists(br, eth_hdr(skb))) {
|
||||||
@@ -147,7 +169,15 @@ int br_handle_frame_finish(struct net *n
|
@@ -154,7 +176,15 @@ int br_handle_frame_finish(struct net *n
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case BR_PKT_UNICAST:
|
case BR_PKT_UNICAST:
|
||||||
@ -179,7 +179,7 @@
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -162,12 +192,20 @@ int br_handle_frame_finish(struct net *n
|
@@ -169,12 +199,20 @@ int br_handle_frame_finish(struct net *n
|
||||||
dst->used = now;
|
dst->used = now;
|
||||||
br_forward(dst->dst, skb, local_rcv, false);
|
br_forward(dst->dst, skb, local_rcv, false);
|
||||||
} else {
|
} else {
|
||||||
|
@ -14,7 +14,7 @@ Signed-off-by: René van Dorst <opensource@vdorst.com>
|
|||||||
|
|
||||||
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
|
||||||
@@ -2941,6 +2941,7 @@ static const struct net_device_ops mtk_n
|
@@ -2944,6 +2944,7 @@ static const struct net_device_ops mtk_n
|
||||||
|
|
||||||
static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
|
static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
|
||||||
{
|
{
|
||||||
@ -22,7 +22,7 @@ Signed-off-by: René van Dorst <opensource@vdorst.com>
|
|||||||
const __be32 *_id = of_get_property(np, "reg", NULL);
|
const __be32 *_id = of_get_property(np, "reg", NULL);
|
||||||
struct phylink *phylink;
|
struct phylink *phylink;
|
||||||
int phy_mode, id, err;
|
int phy_mode, id, err;
|
||||||
@@ -3033,6 +3034,9 @@ static int mtk_add_mac(struct mtk_eth *e
|
@@ -3036,6 +3037,9 @@ static int mtk_add_mac(struct mtk_eth *e
|
||||||
|
|
||||||
eth->netdev[id]->max_mtu = MTK_MAX_RX_LENGTH - MTK_RX_ETH_HLEN;
|
eth->netdev[id]->max_mtu = MTK_MAX_RX_LENGTH - MTK_RX_ETH_HLEN;
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ Signed-off-by: Tianling Shen <cnsztl@gmail.com>
|
|||||||
|
|
||||||
--- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts
|
--- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts
|
||||||
+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts
|
+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts
|
||||||
@@ -75,6 +75,19 @@ &emmc_phy {
|
@@ -68,6 +68,19 @@ &emmc_phy {
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts
|
--- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts
|
||||||
+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts
|
+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts
|
||||||
@@ -101,6 +101,19 @@
|
@@ -96,6 +96,19 @@
|
||||||
max-link-speed = <1>;
|
max-link-speed = <1>;
|
||||||
num-lanes = <1>;
|
num-lanes = <1>;
|
||||||
vpcie3v3-supply = <&vcc3v3_sys>;
|
vpcie3v3-supply = <&vcc3v3_sys>;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
--- a/arch/arm64/boot/dts/rockchip/Makefile
|
--- a/arch/arm64/boot/dts/rockchip/Makefile
|
||||||
+++ b/arch/arm64/boot/dts/rockchip/Makefile
|
+++ b/arch/arm64/boot/dts/rockchip/Makefile
|
||||||
@@ -1,6 +1,7 @@
|
@@ -2,6 +2,7 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0
|
|
||||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += px30-evb.dtb
|
dtb-$(CONFIG_ARCH_ROCKCHIP) += px30-evb.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-doornet1.dtb
|
||||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb
|
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb
|
||||||
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2c.dtb
|
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2c.dtb
|
||||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb
|
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb
|
||||||
|
@ -783,7 +783,7 @@
|
|||||||
|
|
||||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
|
||||||
@@ -2191,6 +2191,8 @@ static int stmmac_init_dma_engine(struct stmmac_priv *priv)
|
@@ -2187,6 +2187,8 @@ static int stmmac_init_dma_engine(struct stmmac_priv *priv)
|
||||||
if (priv->extend_desc && (priv->mode == STMMAC_RING_MODE))
|
if (priv->extend_desc && (priv->mode == STMMAC_RING_MODE))
|
||||||
atds = 1;
|
atds = 1;
|
||||||
|
|
||||||
|
@ -9,8 +9,6 @@ Subject: [PATCH] Add support for OrangePi R1 Plus LTS
|
|||||||
2 files changed, 45 insertions(+)
|
2 files changed, 45 insertions(+)
|
||||||
create mode 100644 arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus-lts.dts
|
create mode 100644 arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus-lts.dts
|
||||||
|
|
||||||
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
|
|
||||||
index 23373c752..552d97555 100644
|
|
||||||
--- a/arch/arm64/boot/dts/rockchip/Makefile
|
--- a/arch/arm64/boot/dts/rockchip/Makefile
|
||||||
+++ b/arch/arm64/boot/dts/rockchip/Makefile
|
+++ b/arch/arm64/boot/dts/rockchip/Makefile
|
||||||
@@ -5,6 +5,7 @@
|
@@ -5,6 +5,7 @@
|
||||||
@ -21,9 +19,6 @@ index 23373c752..552d97555 100644
|
|||||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock64.dtb
|
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock64.dtb
|
||||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-roc-cc.dtb
|
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-roc-cc.dtb
|
||||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-evb-act8846.dtb
|
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-evb-act8846.dtb
|
||||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus-lts.dts b/arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus-lts.dts
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..c65f7c417
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus-lts.dts
|
+++ b/arch/arm64/boot/dts/rockchip/rk3328-orangepi-r1-plus-lts.dts
|
||||||
@@ -0,0 +1,70 @@
|
@@ -0,0 +1,70 @@
|
||||||
@ -97,5 +92,3 @@ index 000000000..c65f7c417
|
|||||||
+&lan_led {
|
+&lan_led {
|
||||||
+ label = "orangepi-r1-plus-lts:green:lan";
|
+ label = "orangepi-r1-plus-lts:green:lan";
|
||||||
+};
|
+};
|
||||||
--
|
|
||||||
2.25.1
|
|
||||||
|
@ -33,21 +33,16 @@ to status_led in accordance with the board schematics.
|
|||||||
2 files changed, 397 insertions(+)
|
2 files changed, 397 insertions(+)
|
||||||
create mode 100644 arch/arm64/boot/dts/rockchip/rk3328-nanopi-neo3.dts
|
create mode 100644 arch/arm64/boot/dts/rockchip/rk3328-nanopi-neo3.dts
|
||||||
|
|
||||||
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
|
|
||||||
index 479906f3a..5f6ffb496 100644
|
|
||||||
--- a/arch/arm64/boot/dts/rockchip/Makefile
|
--- a/arch/arm64/boot/dts/rockchip/Makefile
|
||||||
+++ b/arch/arm64/boot/dts/rockchip/Makefile
|
+++ b/arch/arm64/boot/dts/rockchip/Makefile
|
||||||
@@ -3,6 +3,7 @@
|
@@ -4,6 +4,7 @@
|
||||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-doornet1.dtb
|
|
||||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb
|
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2c.dtb
|
||||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb
|
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-r2s.dtb
|
||||||
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-neo3.dtb
|
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-nanopi-neo3.dtb
|
||||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-orangepi-r1-plus.dtb
|
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-orangepi-r1-plus.dtb
|
||||||
|
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-orangepi-r1-plus-lts.dtb
|
||||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock64.dtb
|
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock64.dtb
|
||||||
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-roc-cc.dtb
|
|
||||||
diff --git a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-neo3.dts b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-neo3.dts
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..1eb7fd5f7
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-neo3.dts
|
+++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-neo3.dts
|
||||||
@@ -0,0 +1,396 @@
|
@@ -0,0 +1,396 @@
|
||||||
@ -447,6 +442,3 @@ index 000000000..1eb7fd5f7
|
|||||||
+ realtek,led-data = <0x87>;
|
+ realtek,led-data = <0x87>;
|
||||||
+ };
|
+ };
|
||||||
+};
|
+};
|
||||||
--
|
|
||||||
2.34.1
|
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ Subject: [PATCH] net: phy: Add driver for Motorcomm YT8531(S) PHYs
|
|||||||
/**
|
/**
|
||||||
* stmmac_verify_args - verify the driver parameters.
|
* stmmac_verify_args - verify the driver parameters.
|
||||||
* Description: it checks the driver parameters and set a default in case of
|
* Description: it checks the driver parameters and set a default in case of
|
||||||
@@ -4431,6 +4435,74 @@ int stmmac_reinit_ringparam(struct net_device *dev, u32 rx_size, u32 tx_size)
|
@@ -4433,6 +4437,74 @@ int stmmac_reinit_ringparam(struct net_device *dev, u32 rx_size, u32 tx_size)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,7 +98,7 @@ Subject: [PATCH] net: phy: Add driver for Motorcomm YT8531(S) PHYs
|
|||||||
/**
|
/**
|
||||||
* stmmac_dvr_probe
|
* stmmac_dvr_probe
|
||||||
* @device: device pointer
|
* @device: device pointer
|
||||||
@@ -4655,6 +4727,16 @@ int stmmac_dvr_probe(struct device *device,
|
@@ -4657,6 +4729,16 @@ int stmmac_dvr_probe(struct device *device,
|
||||||
netdev_err(ndev, "failed to setup phy (%d)\n", ret);
|
netdev_err(ndev, "failed to setup phy (%d)\n", ret);
|
||||||
goto error_phy_setup;
|
goto error_phy_setup;
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ index 8333351..d984163 100644
|
|||||||
#include "rk3328.dtsi"
|
#include "rk3328.dtsi"
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
@@ -56,6 +57,72 @@
|
@@ -58,6 +59,72 @@
|
||||||
enable-active-high;
|
enable-active-high;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -92,7 +92,7 @@ index 8333351..d984163 100644
|
|||||||
leds {
|
leds {
|
||||||
compatible = "gpio-leds";
|
compatible = "gpio-leds";
|
||||||
pinctrl-0 = <&lan_led_pin>, <&sys_led_pin>, <&wan_led_pin>;
|
pinctrl-0 = <&lan_led_pin>, <&sys_led_pin>, <&wan_led_pin>;
|
||||||
@@ -138,6 +205,10 @@
|
@@ -140,6 +207,10 @@
|
||||||
cpu-supply = <&vdd_arm>;
|
cpu-supply = <&vdd_arm>;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -103,7 +103,7 @@ index 8333351..d984163 100644
|
|||||||
&gmac2io {
|
&gmac2io {
|
||||||
assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
|
assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
|
||||||
assigned-clock-parents = <&gmac_clk>, <&gmac_clk>;
|
assigned-clock-parents = <&gmac_clk>, <&gmac_clk>;
|
||||||
@@ -201,6 +272,7 @@
|
@@ -185,6 +256,7 @@
|
||||||
regulator-name = "vdd_log";
|
regulator-name = "vdd_log";
|
||||||
regulator-always-on;
|
regulator-always-on;
|
||||||
regulator-boot-on;
|
regulator-boot-on;
|
||||||
@ -111,7 +111,7 @@ index 8333351..d984163 100644
|
|||||||
regulator-min-microvolt = <712500>;
|
regulator-min-microvolt = <712500>;
|
||||||
regulator-max-microvolt = <1450000>;
|
regulator-max-microvolt = <1450000>;
|
||||||
regulator-ramp-delay = <12500>;
|
regulator-ramp-delay = <12500>;
|
||||||
@@ -215,6 +287,7 @@
|
@@ -199,6 +271,7 @@
|
||||||
regulator-name = "vdd_arm";
|
regulator-name = "vdd_arm";
|
||||||
regulator-always-on;
|
regulator-always-on;
|
||||||
regulator-boot-on;
|
regulator-boot-on;
|
||||||
|
Loading…
Reference in New Issue
Block a user