mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
Merge branch 'master' of https://github.com/coolsnowwolf/lede
This commit is contained in:
commit
679ae72af7
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-5.10 = .104
|
||||
LINUX_KERNEL_HASH-5.10.104 = 394a9267ea8e24d0f0cfaad3439bf43abe7bcf6479dc9548e485b48a0ac562f1
|
||||
LINUX_VERSION-5.10 = .107
|
||||
LINUX_KERNEL_HASH-5.10.107 = c467c3077946370fb26c9277313b601d6c48bb557abc889f4892caf627fcdfea
|
||||
|
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-5.15 = .29
|
||||
LINUX_KERNEL_HASH-5.15.29 = 5905e684602c47ae95746d4003cb834335e5451aca4ac7c3013f15dd49ed876e
|
||||
LINUX_VERSION-5.15 = .30
|
||||
LINUX_KERNEL_HASH-5.15.30 = 254ea2fe08f0aa07e4f7fffe95d12463df7fa6ff8a9ba72f321da15e50fa7132
|
||||
|
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-5.4 = .185
|
||||
LINUX_KERNEL_HASH-5.4.185 = d15fe9da679bfb624f35f127a17559f6d037ad37a313cf5fd22ce155401f3787
|
||||
LINUX_VERSION-5.4 = .186
|
||||
LINUX_KERNEL_HASH-5.4.186 = 61f7cd24cb8a38d41891d9066c1dfd14a688a9dff7f485922e385654ea8b39b9
|
||||
|
@ -13,7 +13,7 @@ PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/LGA1150/ntfs3-oot.git
|
||||
PKG_SOURCE_DATE:=2021-07-05
|
||||
PKG_SOURCE_VERSION:=46d199e7d7302879b23ad20097ba53b152257288
|
||||
PKG_MIRROR_HASH:=0c2ab3d15e5900c35b7cef3dcafb814991e8d98ef6ff715650b9c0b686364b81
|
||||
PKG_MIRROR_HASH:=f07253ec864887c121177fc5b358c21249af0483e4dab0d5157410db618c0990
|
||||
|
||||
PKG_MAINTAINER:=
|
||||
PKG_LICENSE:=GPL-2.0-only
|
||||
|
@ -7,11 +7,9 @@ include $(TOPDIR)/rules.mk
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=r8125
|
||||
PKG_VERSION:=9.007.01
|
||||
PKG_VERSION:=9.008.00
|
||||
PKG_RELEASE:=$(AUTORELEASE)
|
||||
|
||||
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define KernelPackage/r8125
|
||||
@ -26,20 +24,8 @@ define Package/r8125/description
|
||||
This package contains a driver for Realtek r8125 chipsets.
|
||||
endef
|
||||
|
||||
R8125_MAKEOPTS= -C $(PKG_BUILD_DIR) \
|
||||
PATH="$(TARGET_PATH)" \
|
||||
ARCH="$(LINUX_KARCH)" \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
TARGET="$(HAL_TARGET)" \
|
||||
TOOLPREFIX="$(KERNEL_CROSS)" \
|
||||
TOOLPATH="$(KERNEL_CROSS)" \
|
||||
KERNELPATH="$(LINUX_DIR)" \
|
||||
KERNELDIR="$(LINUX_DIR)" \
|
||||
LDOPTS=" " \
|
||||
DOMULTI=1
|
||||
|
||||
define Build/Compile
|
||||
$(MAKE) $(R8125_MAKEOPTS) modules
|
||||
+$(KERNEL_MAKE) M=$(PKG_BUILD_DIR) modules
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,r8125))
|
||||
|
@ -4,7 +4,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2022 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
|
@ -4,7 +4,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2022 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
|
@ -5,7 +5,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2022 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
@ -363,12 +363,12 @@ do { \
|
||||
#define RSS_SUFFIX ""
|
||||
#endif
|
||||
|
||||
#define RTL8125_VERSION "9.007.01" NAPI_SUFFIX DASH_SUFFIX REALWOW_SUFFIX PTP_SUFFIX RSS_SUFFIX
|
||||
#define RTL8125_VERSION "9.008.00" NAPI_SUFFIX DASH_SUFFIX REALWOW_SUFFIX PTP_SUFFIX RSS_SUFFIX
|
||||
#define MODULENAME "r8125"
|
||||
#define PFX MODULENAME ": "
|
||||
|
||||
#define GPL_CLAIM "\
|
||||
r8125 Copyright (C) 2021 Realtek NIC software team <nicfae@realtek.com> \n \
|
||||
r8125 Copyright (C) 2022 Realtek NIC software team <nicfae@realtek.com> \n \
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details, please see <http://www.gnu.org/licenses/>. \n \
|
||||
This is free software, and you are welcome to redistribute it under certain conditions; see <http://www.gnu.org/licenses/>. \n"
|
||||
|
||||
@ -413,7 +413,7 @@ This is free software, and you are welcome to redistribute it under certain cond
|
||||
#endif
|
||||
|
||||
#define Reserved2_data 7
|
||||
#define RX_DMA_BURST 7 /* Maximum PCI burst, '6' is 1024 */
|
||||
#define RX_DMA_BURST 7 /* Maximum PCI burst, '7' is unlimited */
|
||||
#define TX_DMA_BURST_unlimited 7
|
||||
#define TX_DMA_BURST_1024 6
|
||||
#define TX_DMA_BURST_512 5
|
||||
@ -456,12 +456,17 @@ This is free software, and you are welcome to redistribute it under certain cond
|
||||
#define RTL8125_LINK_TIMEOUT (1 * HZ)
|
||||
#define RTL8125_ESD_TIMEOUT (2 * HZ)
|
||||
|
||||
#define NUM_TX_DESC 1024 /* Number of Tx descriptor registers */
|
||||
#define NUM_RX_DESC 1024 /* Number of Rx descriptor registers */
|
||||
#define MAX_NUM_TX_DESC 1024 /* Maximum number of Tx descriptor registers */
|
||||
#define MAX_NUM_RX_DESC 1024 /* Maximum number of Rx descriptor registers */
|
||||
|
||||
#define MIN_NUM_TX_DESC 256 /* Minimum number of Tx descriptor registers */
|
||||
#define MIN_NUM_RX_DESC 256 /* Minimum number of Rx descriptor registers */
|
||||
|
||||
#define NUM_TX_DESC MAX_NUM_TX_DESC /* Number of Tx descriptor registers */
|
||||
#define NUM_RX_DESC MAX_NUM_RX_DESC /* Number of Rx descriptor registers */
|
||||
|
||||
#define RX_BUF_SIZE 0x05F3 /* 0x05F3 = 1522bye + 1 */
|
||||
#define R8125_TX_RING_BYTES (NUM_TX_DESC * sizeof(struct TxDesc))
|
||||
#define R8125_RX_RING_BYTES (NUM_RX_DESC * sizeof(struct RxDesc))
|
||||
|
||||
#define R8125_MAX_TX_QUEUES (2)
|
||||
#define R8125_MAX_RX_QUEUES (4)
|
||||
#define R8125_MAX_QUEUES R8125_MAX_RX_QUEUES
|
||||
@ -545,6 +550,9 @@ This is free software, and you are welcome to redistribute it under certain cond
|
||||
#define RTK_LPA_ADVERTISE_5000FULL 0x40
|
||||
#define RTK_LPA_ADVERTISE_10000FULL 0x800
|
||||
|
||||
#define RTK_EEE_ADVERTISE_2500FULL 0x01
|
||||
#define RTK_LPA_EEE_ADVERTISE_2500FULL 0x01
|
||||
|
||||
/* Tx NO CLOSE */
|
||||
#define MAX_TX_NO_CLOSE_DESC_PTR_V2 0x10000
|
||||
#define TX_NO_CLOSE_SW_PTR_MASK_V2 0x1FFFF
|
||||
@ -1745,9 +1753,10 @@ struct rtl8125_tx_ring {
|
||||
u32 index;
|
||||
u32 cur_tx; /* Index into the Tx descriptor buffer of next Rx pkt. */
|
||||
u32 dirty_tx;
|
||||
u32 num_tx_desc; /* Number of Tx descriptor registers */
|
||||
struct TxDesc *TxDescArray; /* 256-aligned Tx descriptor ring */
|
||||
dma_addr_t TxPhyAddr;
|
||||
struct ring_info tx_skb[NUM_TX_DESC]; /* Tx data buffers */
|
||||
struct ring_info tx_skb[MAX_NUM_TX_DESC]; /* Tx data buffers */
|
||||
|
||||
u32 NextHwDesCloPtr;
|
||||
u32 BeginHwDesCloPtr;
|
||||
@ -1763,10 +1772,11 @@ struct rtl8125_rx_ring {
|
||||
u32 index;
|
||||
u32 cur_rx; /* Index into the Rx descriptor buffer of next Rx pkt. */
|
||||
u32 dirty_rx;
|
||||
u32 num_rx_desc; /* Number of Rx descriptor registers */
|
||||
struct RxDesc *RxDescArray; /* 256-aligned Rx descriptor ring */
|
||||
u64 RxDescPhyAddr[NUM_RX_DESC]; /* Rx desc physical address*/
|
||||
u64 RxDescPhyAddr[MAX_NUM_RX_DESC]; /* Rx desc physical address*/
|
||||
dma_addr_t RxPhyAddr;
|
||||
struct sk_buff *Rx_skbuff[NUM_RX_DESC]; /* Rx data buffers */
|
||||
struct sk_buff *Rx_skbuff[MAX_NUM_RX_DESC]; /* Rx data buffers */
|
||||
|
||||
u16 rdsar_reg; /* Receive Descriptor Start Address */
|
||||
};
|
||||
@ -2031,8 +2041,8 @@ struct rtl8125_private {
|
||||
//struct RxDesc *RxDescArray; /* 256-aligned Rx descriptor ring */
|
||||
//dma_addr_t TxPhyAddr;
|
||||
//dma_addr_t RxPhyAddr;
|
||||
//struct sk_buff *Rx_skbuff[NUM_RX_DESC]; /* Rx data buffers */
|
||||
//struct ring_info tx_skb[NUM_TX_DESC]; /* Tx data buffers */
|
||||
//struct sk_buff *Rx_skbuff[MAX_NUM_RX_DESC]; /* Rx data buffers */
|
||||
//struct ring_info tx_skb[MAX_NUM_TX_DESC]; /* Tx data buffers */
|
||||
unsigned rx_buf_sz;
|
||||
u16 HwSuppNumTxQueues;
|
||||
u16 HwSuppNumRxQueues;
|
||||
@ -2118,12 +2128,17 @@ struct rtl8125_private {
|
||||
u16 sw_ram_code_ver;
|
||||
u16 hw_ram_code_ver;
|
||||
|
||||
u8 RequireRduNonStopPatch;
|
||||
|
||||
u8 rtk_enable_diag;
|
||||
|
||||
u8 ShortPacketSwChecksum;
|
||||
|
||||
u8 UseSwPaddingShortPkt;
|
||||
|
||||
void *ShortPacketEmptyBuffer;
|
||||
dma_addr_t ShortPacketEmptyBufferPhy;
|
||||
|
||||
u8 RequireAdcBiasPatch;
|
||||
u16 AdcBiasPatchIoffset;
|
||||
|
||||
@ -2278,7 +2293,6 @@ struct rtl8125_private {
|
||||
#endif
|
||||
u8 InitRxDescType;
|
||||
u16 RxDescLength; //V1 16 Byte V2 32 Bytes
|
||||
u32 RxDescRingLength;
|
||||
|
||||
u8 HwSuppPtpVer;
|
||||
u8 EnablePtp;
|
||||
|
@ -5,7 +5,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2022 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
|
@ -5,7 +5,7 @@
|
||||
# r8168 is the Linux device driver released for Realtek Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2022 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
|
@ -5,7 +5,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2022 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
|
@ -5,7 +5,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2022 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
@ -344,6 +344,7 @@ static struct net_device_stats *rtl8125_get_stats(struct net_device *dev);
|
||||
static int rtl8125_rx_interrupt(struct net_device *, struct rtl8125_private *, struct rtl8125_rx_ring *, napi_budget);
|
||||
static int rtl8125_tx_interrupt(struct rtl8125_tx_ring *ring, int budget);
|
||||
static int rtl8125_tx_interrupt_with_vector(struct rtl8125_private *tp, const int message_id, int budget);
|
||||
static void rtl8125_wait_for_quiescence(struct net_device *dev);
|
||||
static int rtl8125_change_mtu(struct net_device *dev, int new_mtu);
|
||||
static void rtl8125_down(struct net_device *dev);
|
||||
|
||||
@ -725,7 +726,7 @@ static int proc_get_driver_variable(struct seq_file *m, void *v)
|
||||
seq_printf(m, "chipset\t%d\n", tp->chipset);
|
||||
seq_printf(m, "chipset_name\t%s\n", rtl_chip_info[tp->chipset].name);
|
||||
seq_printf(m, "mtu\t%d\n", dev->mtu);
|
||||
seq_printf(m, "NUM_RX_DESC\t0x%x\n", NUM_RX_DESC);
|
||||
seq_printf(m, "NUM_RX_DESC\t0x%x\n", tp->rx_ring[0].num_rx_desc);
|
||||
seq_printf(m, "cur_rx0\t0x%x\n", tp->rx_ring[0].cur_rx);
|
||||
seq_printf(m, "dirty_rx0\t0x%x\n", tp->rx_ring[0].dirty_rx);
|
||||
seq_printf(m, "cur_rx1\t0x%x\n", tp->rx_ring[1].cur_rx);
|
||||
@ -734,7 +735,7 @@ static int proc_get_driver_variable(struct seq_file *m, void *v)
|
||||
seq_printf(m, "dirty_rx2\t0x%x\n", tp->rx_ring[2].dirty_rx);
|
||||
seq_printf(m, "cur_rx3\t0x%x\n", tp->rx_ring[3].cur_rx);
|
||||
seq_printf(m, "dirty_rx3\t0x%x\n", tp->rx_ring[3].dirty_rx);
|
||||
seq_printf(m, "NUM_TX_DESC\t0x%x\n", NUM_TX_DESC);
|
||||
seq_printf(m, "NUM_TX_DESC\t0x%x\n", tp->tx_ring[0].num_tx_desc);
|
||||
seq_printf(m, "cur_tx0\t0x%x\n", tp->tx_ring[0].cur_tx);
|
||||
seq_printf(m, "dirty_tx0\t0x%x\n", tp->tx_ring[0].dirty_tx);
|
||||
seq_printf(m, "cur_tx1\t0x%x\n", tp->tx_ring[1].cur_tx);
|
||||
@ -773,6 +774,7 @@ static int proc_get_driver_variable(struct seq_file *m, void *v)
|
||||
seq_printf(m, "rtk_enable_diag\t0x%x\n", tp->rtk_enable_diag);
|
||||
seq_printf(m, "ShortPacketSwChecksum\t0x%x\n", tp->ShortPacketSwChecksum);
|
||||
seq_printf(m, "UseSwPaddingShortPkt\t0x%x\n", tp->UseSwPaddingShortPkt);
|
||||
seq_printf(m, "RequireRduNonStopPatch\t0x%x\n", tp->RequireRduNonStopPatch);
|
||||
seq_printf(m, "RequireAdcBiasPatch\t0x%x\n", tp->RequireAdcBiasPatch);
|
||||
seq_printf(m, "AdcBiasPatchIoffset\t0x%x\n", tp->AdcBiasPatchIoffset);
|
||||
seq_printf(m, "RequireAdjustUpsTxLinkPulseTiming\t0x%x\n", tp->RequireAdjustUpsTxLinkPulseTiming);
|
||||
@ -1166,6 +1168,7 @@ static int proc_get_driver_variable(char *page, char **start,
|
||||
"rtk_enable_diag\t0x%x\n"
|
||||
"ShortPacketSwChecksum\t0x%x\n"
|
||||
"UseSwPaddingShortPkt\t0x%x\n"
|
||||
"RequireRduNonStopPatch\t0x%x\n"
|
||||
"RequireAdcBiasPatch\t0x%x\n"
|
||||
"AdcBiasPatchIoffset\t0x%x\n"
|
||||
"RequireAdjustUpsTxLinkPulseTiming\t0x%x\n"
|
||||
@ -1233,7 +1236,7 @@ static int proc_get_driver_variable(char *page, char **start,
|
||||
tp->chipset,
|
||||
rtl_chip_info[tp->chipset].name,
|
||||
dev->mtu,
|
||||
NUM_RX_DESC,
|
||||
tp->rx_ring[0].num_rx_desc,
|
||||
tp->rx_ring[0].cur_rx,
|
||||
tp->rx_ring[0].dirty_rx,
|
||||
tp->rx_ring[1].cur_rx,
|
||||
@ -1242,7 +1245,7 @@ static int proc_get_driver_variable(char *page, char **start,
|
||||
tp->rx_ring[2].dirty_rx,
|
||||
tp->rx_ring[3].cur_rx,
|
||||
tp->rx_ring[3].dirty_rx,
|
||||
NUM_TX_DESC,
|
||||
tp->tx_ring[0].num_tx_desc,
|
||||
tp->tx_ring[0].cur_tx,
|
||||
tp->tx_ring[0].dirty_tx,
|
||||
tp->tx_ring[1].cur_tx,
|
||||
@ -1281,6 +1284,7 @@ static int proc_get_driver_variable(char *page, char **start,
|
||||
tp->rtk_enable_diag,
|
||||
tp->ShortPacketSwChecksum,
|
||||
tp->UseSwPaddingShortPkt,
|
||||
tp->RequireRduNonStopPatch,
|
||||
tp->RequireAdcBiasPatch,
|
||||
tp->AdcBiasPatchIoffset,
|
||||
tp->RequireAdjustUpsTxLinkPulseTiming,
|
||||
@ -3205,6 +3209,13 @@ rtl8125_hw_set_timer_int_8125(struct rtl8125_private *tp,
|
||||
{
|
||||
switch (tp->HwSuppIntMitiVer) {
|
||||
case 4:
|
||||
#ifdef ENABLE_LIB_SUPPORT
|
||||
if (message_id < R8125_MAX_RX_QUEUES_VEC_V3)
|
||||
timer_intmiti_val = 0;
|
||||
#else
|
||||
if (tp->EnableRss && (message_id < R8125_MAX_RX_QUEUES_VEC_V3))
|
||||
timer_intmiti_val = 0;
|
||||
#endif //ENABLE_LIB_SUPPORT
|
||||
if (message_id < R8125_MAX_RX_QUEUES_VEC_V3) //ROK
|
||||
RTL_W8(tp,INT_MITI_V2_0_RX + 8 * message_id, timer_intmiti_val);
|
||||
else if (message_id == 16) //TOK
|
||||
@ -4682,6 +4693,8 @@ rtl8125_rx_desc_opts2(struct rtl8125_private *tp,
|
||||
return desc->opts2;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_R8125_VLAN
|
||||
|
||||
static void
|
||||
rtl8125_clear_rx_desc_opts2(struct rtl8125_private *tp,
|
||||
struct RxDesc *desc)
|
||||
@ -4692,8 +4705,6 @@ rtl8125_clear_rx_desc_opts2(struct rtl8125_private *tp,
|
||||
desc->opts2 = 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_R8125_VLAN
|
||||
|
||||
static inline u32
|
||||
rtl8125_tx_vlan_tag(struct rtl8125_private *tp,
|
||||
struct sk_buff *skb)
|
||||
@ -5189,7 +5200,7 @@ static const char rtl8125_gstrings[][ETH_GSTRING_LEN] = {
|
||||
"tdu",
|
||||
"rdu",
|
||||
};
|
||||
#endif //#LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22)
|
||||
#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22)
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
|
||||
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22)
|
||||
@ -5197,7 +5208,7 @@ static int rtl8125_get_stats_count(struct net_device *dev)
|
||||
{
|
||||
return ARRAY_SIZE(rtl8125_gstrings);
|
||||
}
|
||||
#endif //#LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22)
|
||||
#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22)
|
||||
#else
|
||||
static int rtl8125_get_sset_count(struct net_device *dev, int sset)
|
||||
{
|
||||
@ -5210,6 +5221,66 @@ static int rtl8125_get_sset_count(struct net_device *dev, int sset)
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
rtl8125_set_ring_size(struct rtl8125_private *tp, u32 rx, u32 tx)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < tp->num_rx_rings; i++)
|
||||
tp->rx_ring[i].num_rx_desc = rx;
|
||||
|
||||
for (i = 0; i < tp->num_tx_rings; i++)
|
||||
tp->tx_ring[i].num_tx_desc = tx;
|
||||
}
|
||||
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
|
||||
static void rtl8125_get_ringparam(struct net_device *dev,
|
||||
struct ethtool_ringparam *ring)
|
||||
{
|
||||
struct rtl8125_private *tp = netdev_priv(dev);
|
||||
|
||||
ring->rx_max_pending = MAX_NUM_TX_DESC;
|
||||
ring->tx_max_pending = MAX_NUM_RX_DESC;;
|
||||
ring->rx_pending = tp->rx_ring[0].num_rx_desc;
|
||||
ring->tx_pending = tp->tx_ring[0].num_tx_desc;
|
||||
}
|
||||
|
||||
static int rtl8125_set_ringparam(struct net_device *dev,
|
||||
struct ethtool_ringparam *ring)
|
||||
{
|
||||
struct rtl8125_private *tp = netdev_priv(dev);
|
||||
u32 new_rx_count, new_tx_count;
|
||||
int rc = 0;
|
||||
|
||||
if ((ring->rx_mini_pending) || (ring->rx_jumbo_pending))
|
||||
return -EINVAL;
|
||||
|
||||
new_tx_count = clamp_t(u32, ring->tx_pending,
|
||||
MIN_NUM_TX_DESC, MAX_NUM_TX_DESC);
|
||||
|
||||
new_rx_count = clamp_t(u32, ring->rx_pending,
|
||||
MIN_NUM_RX_DESC, MAX_NUM_RX_DESC);
|
||||
|
||||
if ((new_rx_count == tp->rx_ring[0].num_rx_desc) &&
|
||||
(new_tx_count == tp->tx_ring[0].num_tx_desc)) {
|
||||
/* nothing to do */
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (netif_running(dev)) {
|
||||
rtl8125_wait_for_quiescence(dev);
|
||||
rtl8125_close(dev);
|
||||
}
|
||||
|
||||
rtl8125_set_ring_size(tp, new_rx_count, new_tx_count);
|
||||
|
||||
if (netif_running(dev))
|
||||
rc = rtl8125_open(dev);
|
||||
|
||||
return rc;
|
||||
}
|
||||
#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
|
||||
|
||||
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22)
|
||||
static void
|
||||
rtl8125_get_ethtool_stats(struct net_device *dev,
|
||||
@ -5282,7 +5353,7 @@ rtl8125_get_strings(struct net_device *dev,
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif //#LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22)
|
||||
#endif //LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22)
|
||||
|
||||
static int rtl_get_eeprom_len(struct net_device *dev)
|
||||
{
|
||||
@ -5413,7 +5484,10 @@ static int rtl8125_enable_eee(struct rtl8125_private *tp)
|
||||
SetMcuAccessRegBit(tp, 0xEB62, (BIT_2|BIT_1));
|
||||
|
||||
SetEthPhyOcpBit(tp, 0xA432, BIT_4);
|
||||
SetEthPhyOcpBit(tp, 0xA5D0, eee_adv_t);
|
||||
ClearAndSetEthPhyOcpBit(tp,
|
||||
0xA5D0,
|
||||
MDIO_EEE_100TX | MDIO_EEE_1000T,
|
||||
eee_adv_t);
|
||||
ClearEthPhyOcpBit(tp, 0xA6D4, BIT_0);
|
||||
|
||||
ClearEthPhyOcpBit(tp, 0xA6D8, BIT_4);
|
||||
@ -5427,7 +5501,10 @@ static int rtl8125_enable_eee(struct rtl8125_private *tp)
|
||||
|
||||
SetMcuAccessRegBit(tp, 0xE040, (BIT_1|BIT_0));
|
||||
|
||||
SetEthPhyOcpBit(tp, 0xA5D0, eee_adv_t);
|
||||
ClearAndSetEthPhyOcpBit(tp,
|
||||
0xA5D0,
|
||||
MDIO_EEE_100TX | MDIO_EEE_1000T,
|
||||
eee_adv_t);
|
||||
if (eee->advertised & SUPPORTED_2500baseX_Full)
|
||||
SetEthPhyOcpBit(tp, 0xA6D4, BIT_0);
|
||||
else
|
||||
@ -5587,10 +5664,16 @@ rtl_ethtool_get_eee(struct net_device *net, struct ethtool_eee *edata)
|
||||
/* Get advertisement EEE */
|
||||
val = mdio_direct_read_phy_ocp(tp, 0xA5D0);
|
||||
adv = mmd_eee_adv_to_ethtool_adv_t(val);
|
||||
val = mdio_direct_read_phy_ocp(tp, 0xA6D4);
|
||||
if (val & RTK_EEE_ADVERTISE_2500FULL)
|
||||
adv |= ADVERTISED_2500baseX_Full;
|
||||
|
||||
/* Get LP advertisement EEE */
|
||||
val = mdio_direct_read_phy_ocp(tp, 0xA5D2);
|
||||
lp = mmd_eee_adv_to_ethtool_adv_t(val);
|
||||
val = mdio_direct_read_phy_ocp(tp, 0xA6D0);
|
||||
if (val & RTK_LPA_EEE_ADVERTISE_2500FULL)
|
||||
lp |= ADVERTISED_2500baseX_Full;
|
||||
|
||||
/* Get EEE Tx LPI timer*/
|
||||
tx_lpi_timer = RTL_R16(tp, EEE_TXIDLE_TIMER_8125);
|
||||
@ -5691,17 +5774,21 @@ static const struct ethtool_ops rtl8125_ethtool_ops = {
|
||||
.get_drvinfo = rtl8125_get_drvinfo,
|
||||
.get_regs_len = rtl8125_get_regs_len,
|
||||
.get_link = ethtool_op_get_link,
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
|
||||
.get_ringparam = rtl8125_get_ringparam,
|
||||
.set_ringparam = rtl8125_set_ringparam,
|
||||
#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||
.get_settings = rtl8125_get_settings,
|
||||
.set_settings = rtl8125_set_settings,
|
||||
#else
|
||||
.get_link_ksettings = rtl8125_get_settings,
|
||||
.set_link_ksettings = rtl8125_set_settings,
|
||||
#endif
|
||||
#endif //LINUX_VERSION_CODE < KERNEL_VERSION(4,6,0)
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
|
||||
.get_pauseparam = rtl8125_get_pauseparam,
|
||||
.set_pauseparam = rtl8125_set_pauseparam,
|
||||
#endif
|
||||
#endif //LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
|
||||
.get_msglevel = rtl8125_get_msglevel,
|
||||
.set_msglevel = rtl8125_set_msglevel,
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)
|
||||
@ -5714,8 +5801,8 @@ static const struct ethtool_ops rtl8125_ethtool_ops = {
|
||||
#ifdef NETIF_F_TSO
|
||||
.get_tso = ethtool_op_get_tso,
|
||||
.set_tso = ethtool_op_set_tso,
|
||||
#endif
|
||||
#endif
|
||||
#endif //NETIF_F_TSO
|
||||
#endif //LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)
|
||||
.get_regs = rtl8125_get_regs,
|
||||
.get_wol = rtl8125_get_wol,
|
||||
.set_wol = rtl8125_set_wol,
|
||||
@ -5724,12 +5811,12 @@ static const struct ethtool_ops rtl8125_ethtool_ops = {
|
||||
.get_stats_count = rtl8125_get_stats_count,
|
||||
#else
|
||||
.get_sset_count = rtl8125_get_sset_count,
|
||||
#endif
|
||||
#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)
|
||||
.get_ethtool_stats = rtl8125_get_ethtool_stats,
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
|
||||
#ifdef ETHTOOL_GPERMADDR
|
||||
.get_perm_addr = ethtool_op_get_perm_addr,
|
||||
#endif
|
||||
#endif //ETHTOOL_GPERMADDR
|
||||
#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
|
||||
.get_eeprom = rtl_get_eeprom,
|
||||
.get_eeprom_len = rtl_get_eeprom_len,
|
||||
@ -5740,7 +5827,7 @@ static const struct ethtool_ops rtl8125_ethtool_ops = {
|
||||
.get_rxfh_key_size = rtl8125_get_rxfh_key_size,
|
||||
.get_rxfh = rtl8125_get_rxfh,
|
||||
.set_rxfh = rtl8125_set_rxfh,
|
||||
#endif
|
||||
#endif //ENABLE_RSS_SUPPORT
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)
|
||||
#ifdef ENABLE_PTP_SUPPORT
|
||||
.get_ts_info = rtl8125_get_ts_info,
|
||||
@ -6174,38 +6261,92 @@ rtl8125_set_mac_mcu_8125a_2(struct net_device *dev)
|
||||
{
|
||||
struct rtl8125_private *tp = netdev_priv(dev);
|
||||
static const u16 mcu_patch_code_8125a_2[] = {
|
||||
0xE010, 0xE026, 0xE036, 0xE05C, 0xE05E, 0xE060, 0xE0C9, 0xE0D2, 0xE0D4,
|
||||
0xE0DF, 0xE0EA, 0xE0FB, 0xE101, 0xE106, 0xE10B, 0xE10D, 0x9996, 0x49D1,
|
||||
0xF005, 0x49D4, 0xF10A, 0x49D8, 0xF108, 0xC00F, 0x7100, 0x209C, 0x249C,
|
||||
0xC009, 0x9900, 0xE004, 0xC006, 0x1900, 0x9900, 0xC602, 0xBE00, 0x5A48,
|
||||
0xE0C2, 0x0004, 0xE10A, 0xC60F, 0x73C4, 0x49B3, 0xF106, 0x73C2, 0xC608,
|
||||
0xB406, 0xC609, 0xFF80, 0xC605, 0xB406, 0xC605, 0xFF80, 0x0544, 0x0568,
|
||||
0xE906, 0xCDE8, 0xC724, 0xC624, 0x9EE2, 0x1E01, 0x9EE0, 0x76E0, 0x49E0,
|
||||
0xF1FE, 0x76E6, 0x486D, 0x4868, 0x9EE4, 0x1E03, 0x9EE0, 0x76E0, 0x49E0,
|
||||
0xF1FE, 0xC615, 0x9EE2, 0x1E01, 0x9EE0, 0x76E0, 0x49E0, 0xF1FE, 0x76E6,
|
||||
0x486F, 0x9EE4, 0x1E03, 0x9EE0, 0x76E0, 0x49E0, 0xF1FE, 0x7196, 0xC702,
|
||||
0xBF00, 0x5A44, 0xEB0E, 0x0070, 0x00C3, 0xC602, 0xBE00, 0x0000, 0xC602,
|
||||
0xBE00, 0x0EBA, 0x1501, 0xF02A, 0x1500, 0xF15D, 0xC661, 0x75C8, 0x49D5,
|
||||
0xF00A, 0x49D6, 0xF008, 0x49D7, 0xF006, 0x49D8, 0xF004, 0x75D2, 0x49D9,
|
||||
0xF150, 0xC553, 0x77A0, 0x75C8, 0x4855, 0x4856, 0x4857, 0x4858, 0x48DA,
|
||||
0xE010, 0xE012, 0xE022, 0xE024, 0xE029, 0xE02B, 0xE094, 0xE09D, 0xE09F,
|
||||
0xE0AA, 0xE0B5, 0xE0C6, 0xE0CC, 0xE0D1, 0xE0D6, 0xE0D8, 0xC602, 0xBE00,
|
||||
0x0000, 0xC60F, 0x73C4, 0x49B3, 0xF106, 0x73C2, 0xC608, 0xB406, 0xC609,
|
||||
0xFF80, 0xC605, 0xB406, 0xC605, 0xFF80, 0x0544, 0x0568, 0xE906, 0xCDE8,
|
||||
0xC602, 0xBE00, 0x0000, 0x48C1, 0x48C2, 0x9C46, 0xC402, 0xBC00, 0x0A12,
|
||||
0xC602, 0xBE00, 0x0EBA, 0x1501, 0xF02A, 0x1500, 0xF15D, 0xC661, 0x75C8,
|
||||
0x49D5, 0xF00A, 0x49D6, 0xF008, 0x49D7, 0xF006, 0x49D8, 0xF004, 0x75D2,
|
||||
0x49D9, 0xF150, 0xC553, 0x77A0, 0x75C8, 0x4855, 0x4856, 0x4857, 0x4858,
|
||||
0x48DA, 0x48DB, 0x49FE, 0xF002, 0x485A, 0x49FF, 0xF002, 0x485B, 0x9DC8,
|
||||
0x75D2, 0x4859, 0x9DD2, 0xC643, 0x75C0, 0x49D4, 0xF033, 0x49D0, 0xF137,
|
||||
0xE030, 0xC63A, 0x75C8, 0x49D5, 0xF00E, 0x49D6, 0xF00C, 0x49D7, 0xF00A,
|
||||
0x49D8, 0xF008, 0x75D2, 0x49D9, 0xF005, 0xC62E, 0x75C0, 0x49D7, 0xF125,
|
||||
0xC528, 0x77A0, 0xC627, 0x75C8, 0x4855, 0x4856, 0x4857, 0x4858, 0x48DA,
|
||||
0x48DB, 0x49FE, 0xF002, 0x485A, 0x49FF, 0xF002, 0x485B, 0x9DC8, 0x75D2,
|
||||
0x4859, 0x9DD2, 0xC643, 0x75C0, 0x49D4, 0xF033, 0x49D0, 0xF137, 0xE030,
|
||||
0xC63A, 0x75C8, 0x49D5, 0xF00E, 0x49D6, 0xF00C, 0x49D7, 0xF00A, 0x49D8,
|
||||
0xF008, 0x75D2, 0x49D9, 0xF005, 0xC62E, 0x75C0, 0x49D7, 0xF125, 0xC528,
|
||||
0x77A0, 0xC627, 0x75C8, 0x4855, 0x4856, 0x4857, 0x4858, 0x48DA, 0x48DB,
|
||||
0x49FE, 0xF002, 0x485A, 0x49FF, 0xF002, 0x485B, 0x9DC8, 0x75D2, 0x4859,
|
||||
0x9DD2, 0xC616, 0x75C0, 0x4857, 0x9DC0, 0xC613, 0x75C0, 0x49DA, 0xF003,
|
||||
0x49D0, 0xF107, 0xC60B, 0xC50E, 0x48D9, 0x9DC0, 0x4859, 0x9DC0, 0xC608,
|
||||
0xC702, 0xBF00, 0x3AE0, 0xE860, 0xB400, 0xB5D4, 0xE908, 0xE86C, 0x1200,
|
||||
0xC409, 0x6780, 0x48F1, 0x8F80, 0xC404, 0xC602, 0xBE00, 0x10AA, 0xC010,
|
||||
0xEA7C, 0xC602, 0xBE00, 0x0000, 0x740A, 0x4846, 0x4847, 0x9C0A, 0xC607,
|
||||
0x74C0, 0x48C6, 0x9CC0, 0xC602, 0xBE00, 0x13FE, 0xE054, 0x72CA, 0x4826,
|
||||
0x4827, 0x9ACA, 0xC607, 0x72C0, 0x48A6, 0x9AC0, 0xC602, 0xBE00, 0x07DC,
|
||||
0xE054, 0xC60F, 0x74C4, 0x49CC, 0xF109, 0xC60C, 0x74CA, 0x48C7, 0x9CCA,
|
||||
0xC609, 0x74C0, 0x4846, 0x9CC0, 0xC602, 0xBE00, 0x2480, 0xE092, 0xE0C0,
|
||||
0xE054, 0x7420, 0x48C0, 0x9C20, 0x7444, 0xC602, 0xBE00, 0x12F8, 0x1BFF,
|
||||
0x46EB, 0x1BFF, 0xC102, 0xB900, 0x0D5A, 0x1BFF, 0x46EB, 0x1BFF, 0xC102,
|
||||
0xB900, 0x0E2A, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000
|
||||
0x4859, 0x9DD2, 0xC616, 0x75C0, 0x4857, 0x9DC0, 0xC613, 0x75C0, 0x49DA,
|
||||
0xF003, 0x49D0, 0xF107, 0xC60B, 0xC50E, 0x48D9, 0x9DC0, 0x4859, 0x9DC0,
|
||||
0xC608, 0xC702, 0xBF00, 0x3AE0, 0xE860, 0xB400, 0xB5D4, 0xE908, 0xE86C,
|
||||
0x1200, 0xC409, 0x6780, 0x48F1, 0x8F80, 0xC404, 0xC602, 0xBE00, 0x10AA,
|
||||
0xC010, 0xEA7C, 0xC602, 0xBE00, 0x0000, 0x740A, 0x4846, 0x4847, 0x9C0A,
|
||||
0xC607, 0x74C0, 0x48C6, 0x9CC0, 0xC602, 0xBE00, 0x13FE, 0xE054, 0x72CA,
|
||||
0x4826, 0x4827, 0x9ACA, 0xC607, 0x72C0, 0x48A6, 0x9AC0, 0xC602, 0xBE00,
|
||||
0x07DC, 0xE054, 0xC60F, 0x74C4, 0x49CC, 0xF109, 0xC60C, 0x74CA, 0x48C7,
|
||||
0x9CCA, 0xC609, 0x74C0, 0x4846, 0x9CC0, 0xC602, 0xBE00, 0x2480, 0xE092,
|
||||
0xE0C0, 0xE054, 0x7420, 0x48C0, 0x9C20, 0x7444, 0xC602, 0xBE00, 0x12F8,
|
||||
0x1BFF, 0x46EB, 0x1BFF, 0xC102, 0xB900, 0x0D5A, 0x1BFF, 0x46EB, 0x1BFF,
|
||||
0xC102, 0xB900, 0x0E2A, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6486,
|
||||
0x0B15, 0x090E, 0x1139
|
||||
};
|
||||
|
||||
rtl8125_hw_disable_mac_mcu_bps(dev);
|
||||
@ -6215,13 +6356,14 @@ rtl8125_set_mac_mcu_8125a_2(struct net_device *dev)
|
||||
rtl8125_mac_ocp_write(tp, 0xFC26, 0x8000);
|
||||
|
||||
rtl8125_mac_ocp_write(tp, 0xFC2A, 0x0540);
|
||||
rtl8125_mac_ocp_write(tp, 0xFC2E, 0x0A06);
|
||||
rtl8125_mac_ocp_write(tp, 0xFC30, 0x0EB8);
|
||||
rtl8125_mac_ocp_write(tp, 0xFC32, 0x3A5C);
|
||||
rtl8125_mac_ocp_write(tp, 0xFC34, 0x10A8);
|
||||
rtl8125_mac_ocp_write(tp, 0xFC40, 0x0D54);
|
||||
rtl8125_mac_ocp_write(tp, 0xFC42, 0x0E24);
|
||||
|
||||
rtl8125_mac_ocp_write(tp, 0xFC48, 0x3072);
|
||||
rtl8125_mac_ocp_write(tp, 0xFC48, 0x307A);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -6235,8 +6377,8 @@ rtl8125_set_mac_mcu_8125b_2(struct net_device *dev)
|
||||
{
|
||||
struct rtl8125_private *tp = netdev_priv(dev);
|
||||
static const u16 mcu_patch_code_8125b_2[] = {
|
||||
0xE010, 0xE01B, 0xE026, 0xE037, 0xE03D, 0xE057, 0xE05B, 0xE05F, 0xE061,
|
||||
0xE063, 0xE065, 0xE067, 0xE069, 0xE06B, 0xE06D, 0xE06F, 0x740A, 0x4846,
|
||||
0xE010, 0xE01B, 0xE026, 0xE037, 0xE03D, 0xE057, 0xE05B, 0xE060, 0xE062,
|
||||
0xE064, 0xE066, 0xE068, 0xE06A, 0xE06C, 0xE06E, 0xE070, 0x740A, 0x4846,
|
||||
0x4847, 0x9C0A, 0xC607, 0x74C0, 0x48C6, 0x9CC0, 0xC602, 0xBE00, 0x13F0,
|
||||
0xE054, 0x72CA, 0x4826, 0x4827, 0x9ACA, 0xC607, 0x72C0, 0x48A6, 0x9AC0,
|
||||
0xC602, 0xBE00, 0x081C, 0xE054, 0xC60F, 0x74C4, 0x49CC, 0xF109, 0xC60C,
|
||||
@ -6246,10 +6388,10 @@ rtl8125_set_mac_mcu_8125b_2(struct net_device *dev)
|
||||
0x3168, 0x3ADA, 0x31AB, 0x1A00, 0x9AC0, 0x1300, 0xF1FB, 0x7620, 0x236E,
|
||||
0x276F, 0x1A3C, 0x22A1, 0x41B5, 0x9EE2, 0x76E4, 0x486F, 0x9EE4, 0xC602,
|
||||
0xBE00, 0x4A26, 0x733A, 0x49BB, 0xC602, 0xBE00, 0x47A2, 0x48C1, 0x48C2,
|
||||
0xC5C3, 0xBD00, 0x0A52, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000,
|
||||
0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000,
|
||||
0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000,
|
||||
0xC602, 0xBE00, 0x0000
|
||||
0x9C46, 0xC402, 0xBC00, 0x0A52, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00,
|
||||
0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00,
|
||||
0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00,
|
||||
0x0000, 0xC602, 0xBE00, 0x0000
|
||||
};
|
||||
|
||||
rtl8125_hw_disable_mac_mcu_bps(dev);
|
||||
@ -6264,9 +6406,9 @@ rtl8125_set_mac_mcu_8125b_2(struct net_device *dev)
|
||||
rtl8125_mac_ocp_write(tp, 0xFC2E, 0x12DA);
|
||||
rtl8125_mac_ocp_write(tp, 0xFC30, 0x4A20);
|
||||
rtl8125_mac_ocp_write(tp, 0xFC32, 0x47A0);
|
||||
//rtl8125_mac_ocp_write(tp, 0xFC34, 0x0A46);
|
||||
rtl8125_mac_ocp_write(tp, 0xFC34, 0x0A46);
|
||||
|
||||
rtl8125_mac_ocp_write(tp, 0xFC48, 0x003F);
|
||||
rtl8125_mac_ocp_write(tp, 0xFC48, 0x007F);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -6499,12 +6641,16 @@ rtl8125_hw_ephy_config(struct net_device *dev)
|
||||
case CFG_METHOD_5:
|
||||
case CFG_METHOD_7:
|
||||
rtl8125_ephy_write(tp, 0x0B, 0xA908);
|
||||
rtl8125_ephy_write(tp, 0x1E, 0x20EB);
|
||||
rtl8125_ephy_write(tp, 0x22, 0x0023);
|
||||
rtl8125_ephy_write(tp, 0x1E, 0x28EB);
|
||||
rtl8125_ephy_write(tp, 0x02, 0x60C2);
|
||||
rtl8125_ephy_write(tp, 0x29, 0xFF00);
|
||||
|
||||
rtl8125_ephy_write(tp, 0x4B, 0xA908);
|
||||
rtl8125_ephy_write(tp, 0x62, 0x0023);
|
||||
rtl8125_ephy_write(tp, 0x5E, 0x28EB);
|
||||
rtl8125_ephy_write(tp, 0x62, 0x0023);
|
||||
rtl8125_ephy_write(tp, 0x42, 0x60C2);
|
||||
rtl8125_ephy_write(tp, 0x69, 0xFF00);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -10547,12 +10693,12 @@ rtl8125_init_software_variable(struct net_device *dev)
|
||||
tp->EnableRss = 1;
|
||||
}
|
||||
#endif
|
||||
if (tp->EnableRss)
|
||||
rtl8125_init_rss(tp);
|
||||
#endif
|
||||
|
||||
rtl8125_setup_mqs_reg(tp);
|
||||
|
||||
rtl8125_set_ring_size(tp, NUM_RX_DESC, NUM_TX_DESC);
|
||||
|
||||
switch (tp->mcfg) {
|
||||
case CFG_METHOD_4:
|
||||
case CFG_METHOD_5:
|
||||
@ -10565,19 +10711,6 @@ rtl8125_init_software_variable(struct net_device *dev)
|
||||
tp->EnablePtp = 1;
|
||||
#endif
|
||||
|
||||
tp->InitRxDescType = RX_DESC_RING_TYPE_1;
|
||||
if (tp->EnableRss || tp->EnablePtp)
|
||||
tp->InitRxDescType = RX_DESC_RING_TYPE_3;
|
||||
|
||||
tp->RxDescLength = RX_DESC_LEN_TYPE_1;
|
||||
if (tp->InitRxDescType == RX_DESC_RING_TYPE_3)
|
||||
tp->RxDescLength = RX_DESC_LEN_TYPE_3;
|
||||
tp->RxDescRingLength = NUM_RX_DESC * tp->RxDescLength;
|
||||
|
||||
tp->rtl8125_rx_config = rtl_chip_info[tp->chipset].RCR_Cfg;
|
||||
if (tp->InitRxDescType == RX_DESC_RING_TYPE_3)
|
||||
tp->rtl8125_rx_config |= EnableRxDescV3;
|
||||
|
||||
//init interrupt
|
||||
switch (tp->mcfg) {
|
||||
case CFG_METHOD_4:
|
||||
@ -10649,6 +10782,31 @@ rtl8125_init_software_variable(struct net_device *dev)
|
||||
|
||||
timer_count_v2 = (timer_count / 0x100);
|
||||
|
||||
#ifndef ENABLE_LIB_SUPPORT
|
||||
switch (tp->mcfg) {
|
||||
case CFG_METHOD_4:
|
||||
case CFG_METHOD_5:
|
||||
case CFG_METHOD_7:
|
||||
if (tp->HwSuppIsrVer == 2) {
|
||||
tp->RequireRduNonStopPatch = 1;
|
||||
tp->EnableRss = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
tp->InitRxDescType = RX_DESC_RING_TYPE_1;
|
||||
if (tp->EnableRss || tp->EnablePtp)
|
||||
tp->InitRxDescType = RX_DESC_RING_TYPE_3;
|
||||
|
||||
tp->RxDescLength = RX_DESC_LEN_TYPE_1;
|
||||
if (tp->InitRxDescType == RX_DESC_RING_TYPE_3)
|
||||
tp->RxDescLength = RX_DESC_LEN_TYPE_3;
|
||||
|
||||
tp->rtl8125_rx_config = rtl_chip_info[tp->chipset].RCR_Cfg;
|
||||
if (tp->InitRxDescType == RX_DESC_RING_TYPE_3)
|
||||
tp->rtl8125_rx_config |= EnableRxDescV3;
|
||||
|
||||
tp->NicCustLedValue = RTL_R16(tp, CustomLED);
|
||||
|
||||
tp->wol_opts = rtl8125_get_hw_wol(tp);
|
||||
@ -10689,6 +10847,11 @@ rtl8125_init_software_variable(struct net_device *dev)
|
||||
}
|
||||
|
||||
tp->ptp_master_mode = enable_ptp_master_mode;
|
||||
|
||||
#ifdef ENABLE_RSS_SUPPORT
|
||||
if (tp->EnableRss)
|
||||
rtl8125_init_rss(tp);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void
|
||||
@ -12113,12 +12276,12 @@ static int rtl8125_poll(napi_ptr napi, napi_budget budget)
|
||||
unsigned int work_done = 0;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < tp->num_rx_rings; i++)
|
||||
work_done += rtl8125_rx_interrupt(dev, tp, &tp->rx_ring[i], budget);
|
||||
|
||||
for (i = 0; i < tp->num_tx_rings; i++)
|
||||
rtl8125_tx_interrupt(&tp->tx_ring[i], budget);
|
||||
|
||||
for (i = 0; i < tp->num_rx_rings; i++)
|
||||
work_done += rtl8125_rx_interrupt(dev, tp, &tp->rx_ring[i], budget);
|
||||
|
||||
RTL_NAPI_QUOTA_UPDATE(dev, work_done, budget);
|
||||
|
||||
if (work_done < work_to_do) {
|
||||
@ -12156,10 +12319,10 @@ static int rtl8125_poll_msix_ring(napi_ptr napi, napi_budget budget)
|
||||
unsigned int work_done = 0;
|
||||
const int message_id = r8125napi->index;
|
||||
|
||||
work_done += rtl8125_rx_interrupt(dev, tp, &tp->rx_ring[message_id], budget);
|
||||
|
||||
rtl8125_tx_interrupt_with_vector(tp, message_id, budget);
|
||||
|
||||
work_done += rtl8125_rx_interrupt(dev, tp, &tp->rx_ring[message_id], budget);
|
||||
|
||||
RTL_NAPI_QUOTA_UPDATE(dev, work_done, budget);
|
||||
|
||||
if (work_done < work_to_do) {
|
||||
@ -12682,8 +12845,10 @@ static int rtl8125_alloc_tx_desc(struct rtl8125_private *tp)
|
||||
|
||||
for (i = 0; i < tp->num_tx_rings; i++) {
|
||||
ring = &tp->tx_ring[i];
|
||||
ring->TxDescArray = dma_alloc_coherent(&pdev->dev, R8125_TX_RING_BYTES,
|
||||
&ring->TxPhyAddr, GFP_KERNEL);
|
||||
ring->TxDescArray = dma_alloc_coherent(&pdev->dev,
|
||||
(ring->num_tx_desc * sizeof(struct TxDesc)),
|
||||
&ring->TxPhyAddr,
|
||||
GFP_KERNEL);
|
||||
|
||||
if (!ring->TxDescArray)
|
||||
return -1;
|
||||
@ -12700,8 +12865,10 @@ static int rtl8125_alloc_rx_desc(struct rtl8125_private *tp)
|
||||
|
||||
for (i = 0; i < tp->num_rx_rings; i++) {
|
||||
ring = &tp->rx_ring[i];
|
||||
ring->RxDescArray = dma_alloc_coherent(&pdev->dev, tp->RxDescRingLength,
|
||||
&ring->RxPhyAddr, GFP_KERNEL);
|
||||
ring->RxDescArray = dma_alloc_coherent(&pdev->dev,
|
||||
(ring->num_rx_desc * tp->RxDescLength),
|
||||
&ring->RxPhyAddr,
|
||||
GFP_KERNEL);
|
||||
|
||||
if (!ring->RxDescArray)
|
||||
return -1;
|
||||
@ -12710,6 +12877,24 @@ static int rtl8125_alloc_rx_desc(struct rtl8125_private *tp)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int rtl8125_alloc_patch_mem(struct rtl8125_private *tp)
|
||||
{
|
||||
struct pci_dev *pdev = tp->pci_dev;
|
||||
|
||||
if (tp->RequireRduNonStopPatch) {
|
||||
tp->ShortPacketEmptyBuffer = dma_alloc_coherent(&pdev->dev,
|
||||
SHORT_PACKET_PADDING_BUF_SIZE,
|
||||
&tp->ShortPacketEmptyBufferPhy,
|
||||
GFP_KERNEL);
|
||||
if (!tp->ShortPacketEmptyBuffer)
|
||||
return -1;
|
||||
|
||||
memset(tp->ShortPacketEmptyBuffer, 0x0, SHORT_PACKET_PADDING_BUF_SIZE);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void rtl8125_free_tx_desc(struct rtl8125_private *tp)
|
||||
{
|
||||
struct rtl8125_tx_ring *ring;
|
||||
@ -12719,7 +12904,9 @@ static void rtl8125_free_tx_desc(struct rtl8125_private *tp)
|
||||
for (i = 0; i < tp->num_tx_rings; i++) {
|
||||
ring = &tp->tx_ring[i];
|
||||
if (ring->TxDescArray) {
|
||||
dma_free_coherent(&pdev->dev, R8125_TX_RING_BYTES, ring->TxDescArray,
|
||||
dma_free_coherent(&pdev->dev,
|
||||
(ring->num_tx_desc * sizeof(struct TxDesc)),
|
||||
ring->TxDescArray,
|
||||
ring->TxPhyAddr);
|
||||
ring->TxDescArray = NULL;
|
||||
}
|
||||
@ -12735,18 +12922,35 @@ static void rtl8125_free_rx_desc(struct rtl8125_private *tp)
|
||||
for (i = 0; i < tp->num_rx_rings; i++) {
|
||||
ring = &tp->rx_ring[i];
|
||||
if (ring->RxDescArray) {
|
||||
dma_free_coherent(&pdev->dev, tp->RxDescRingLength, ring->RxDescArray,
|
||||
dma_free_coherent(&pdev->dev,
|
||||
(ring->num_rx_desc * tp->RxDescLength),
|
||||
ring->RxDescArray,
|
||||
ring->RxPhyAddr);
|
||||
ring->RxDescArray = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void rtl8125_free_patch_mem(struct rtl8125_private *tp)
|
||||
{
|
||||
struct pci_dev *pdev = tp->pci_dev;
|
||||
|
||||
if (tp->ShortPacketEmptyBuffer) {
|
||||
dma_free_coherent(&pdev->dev,
|
||||
SHORT_PACKET_PADDING_BUF_SIZE,
|
||||
tp->ShortPacketEmptyBuffer,
|
||||
tp->ShortPacketEmptyBufferPhy);
|
||||
tp->ShortPacketEmptyBuffer = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static void rtl8125_free_alloc_resources(struct rtl8125_private *tp)
|
||||
{
|
||||
rtl8125_free_rx_desc(tp);
|
||||
|
||||
rtl8125_free_tx_desc(tp);
|
||||
|
||||
rtl8125_free_patch_mem(tp);
|
||||
}
|
||||
|
||||
#ifdef ENABLE_USE_FIRMWARE_FILE
|
||||
@ -12798,6 +13002,10 @@ int rtl8125_open(struct net_device *dev)
|
||||
if (retval < 0)
|
||||
goto err_free_all_allocated_mem;
|
||||
|
||||
retval = rtl8125_alloc_patch_mem(tp);
|
||||
if (retval < 0)
|
||||
goto err_free_all_allocated_mem;
|
||||
|
||||
retval = rtl8125_alloc_irq(tp);
|
||||
if (retval < 0)
|
||||
goto err_free_all_allocated_mem;
|
||||
@ -13192,6 +13400,12 @@ rtl8125_hw_config(struct net_device *dev)
|
||||
|
||||
rtl8125_hw_clear_int_miti(dev);
|
||||
|
||||
if (tp->RequireRduNonStopPatch &&
|
||||
tp->ShortPacketEmptyBuffer) {
|
||||
RTL_W32(tp, RSS_INDIRECTION_TBL_8125_V2, ((u64)tp->ShortPacketEmptyBufferPhy & DMA_BIT_MASK(32)));
|
||||
RTL_W32(tp, RSS_INDIRECTION_TBL_8125_V2 + 4, ((u64)tp->ShortPacketEmptyBufferPhy >> 32));
|
||||
}
|
||||
|
||||
if (tp->use_timer_interrrupt &&
|
||||
(tp->HwCurrIsrVer == 2) &&
|
||||
(tp->HwSuppIntMitiVer == 4) &&
|
||||
@ -13490,7 +13704,7 @@ _rtl8125_rx_clear(struct rtl8125_private *tp, struct rtl8125_rx_ring *ring)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < NUM_RX_DESC; i++) {
|
||||
for (i = 0; i < ring->num_rx_desc; i++) {
|
||||
if (ring->Rx_skbuff[i]) {
|
||||
rtl8125_free_rx_skb(tp,
|
||||
ring,
|
||||
@ -13522,7 +13736,7 @@ rtl8125_rx_fill(struct rtl8125_private *tp,
|
||||
u32 cur;
|
||||
|
||||
for (cur = start; end - cur > 0; cur++) {
|
||||
int ret, i = cur % NUM_RX_DESC;
|
||||
int ret, i = cur % ring->num_rx_desc;
|
||||
|
||||
if (ring->Rx_skbuff[i])
|
||||
continue;
|
||||
@ -13582,9 +13796,9 @@ rtl8125_tx_desc_init(struct rtl8125_private *tp)
|
||||
|
||||
for (i = 0; i < tp->num_tx_rings; i++) {
|
||||
struct rtl8125_tx_ring *ring = &tp->tx_ring[i];
|
||||
memset(ring->TxDescArray, 0x0, R8125_TX_RING_BYTES);
|
||||
memset(ring->TxDescArray, 0x0, (ring->num_tx_desc * sizeof(struct TxDesc)));
|
||||
|
||||
ring->TxDescArray[NUM_TX_DESC - 1].opts1 = cpu_to_le32(RingEnd);
|
||||
ring->TxDescArray[ring->num_tx_desc - 1].opts1 = cpu_to_le32(RingEnd);
|
||||
}
|
||||
}
|
||||
|
||||
@ -13595,7 +13809,8 @@ rtl8125_rx_desc_init(struct rtl8125_private *tp)
|
||||
|
||||
for (i = 0; i < tp->num_rx_rings; i++) {
|
||||
struct rtl8125_rx_ring *ring = &tp->rx_ring[i];
|
||||
memset(ring->RxDescArray, 0x0, tp->RxDescRingLength);
|
||||
memset(ring->RxDescArray, 0x0,
|
||||
(ring->num_rx_desc * tp->RxDescLength));
|
||||
}
|
||||
}
|
||||
|
||||
@ -13612,17 +13827,17 @@ rtl8125_init_ring(struct net_device *dev)
|
||||
|
||||
for (i = 0; i < tp->num_tx_rings; i++) {
|
||||
struct rtl8125_tx_ring *ring = &tp->tx_ring[i];
|
||||
memset(ring->tx_skb, 0x0, NUM_TX_DESC * sizeof(struct ring_info));
|
||||
memset(ring->tx_skb, 0x0, sizeof(ring->tx_skb));
|
||||
}
|
||||
|
||||
for (i = 0; i < tp->num_rx_rings; i++) {
|
||||
struct rtl8125_rx_ring *ring = &tp->rx_ring[i];
|
||||
|
||||
memset(ring->Rx_skbuff, 0x0, NUM_RX_DESC * sizeof(struct sk_buff *));
|
||||
if (rtl8125_rx_fill(tp, ring, dev, 0, NUM_RX_DESC, 0) != NUM_RX_DESC)
|
||||
memset(ring->Rx_skbuff, 0x0, sizeof(ring->Rx_skbuff));
|
||||
if (rtl8125_rx_fill(tp, ring, dev, 0, ring->num_rx_desc, 0) != ring->num_rx_desc)
|
||||
goto err_out;
|
||||
|
||||
rtl8125_mark_as_last_descriptor(tp, rtl8125_get_rxdesc(tp, ring->RxDescArray, NUM_RX_DESC - 1));
|
||||
rtl8125_mark_as_last_descriptor(tp, rtl8125_get_rxdesc(tp, ring->RxDescArray, ring->num_rx_desc - 1));
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -13659,7 +13874,7 @@ rtl8125_tx_clear_range(struct rtl8125_private *tp,
|
||||
#endif
|
||||
|
||||
for (i = 0; i < n; i++) {
|
||||
unsigned int entry = (start + i) % NUM_TX_DESC;
|
||||
unsigned int entry = (start + i) % ring->num_tx_desc;
|
||||
struct ring_info *tx_skb = ring->tx_skb + entry;
|
||||
unsigned int len = tx_skb->len;
|
||||
|
||||
@ -13684,7 +13899,7 @@ rtl8125_tx_clear(struct rtl8125_private *tp)
|
||||
|
||||
for (i = 0; i < tp->num_tx_rings; i++) {
|
||||
struct rtl8125_tx_ring *ring = &tp->tx_ring[i];
|
||||
rtl8125_tx_clear_range(tp, ring, ring->dirty_tx, NUM_TX_DESC);
|
||||
rtl8125_tx_clear_range(tp, ring, ring->dirty_tx, ring->num_tx_desc);
|
||||
ring->cur_tx = ring->dirty_tx = 0;
|
||||
}
|
||||
}
|
||||
@ -13976,11 +14191,14 @@ rtl8125_tx_timeout(struct net_device *dev)
|
||||
}
|
||||
|
||||
static u32
|
||||
rtl8125_get_txd_opts1(u32 opts1, u32 len, unsigned int entry)
|
||||
rtl8125_get_txd_opts1(struct rtl8125_tx_ring *ring,
|
||||
u32 opts1,
|
||||
u32 len,
|
||||
unsigned int entry)
|
||||
{
|
||||
u32 status = opts1 | len;
|
||||
|
||||
if (entry == NUM_TX_DESC - 1)
|
||||
if (entry == ring->num_tx_desc - 1)
|
||||
status |= RingEnd;
|
||||
|
||||
return status;
|
||||
@ -14006,7 +14224,7 @@ rtl8125_xmit_frags(struct rtl8125_private *tp,
|
||||
u32 status, len;
|
||||
void *addr;
|
||||
|
||||
entry = (entry + 1) % NUM_TX_DESC;
|
||||
entry = (entry + 1) % ring->num_tx_desc;
|
||||
|
||||
txd = ring->TxDescArray + entry;
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
|
||||
@ -14032,7 +14250,7 @@ rtl8125_xmit_frags(struct rtl8125_private *tp,
|
||||
}
|
||||
|
||||
/* anti gcc 2.95.3 bugware (sic) */
|
||||
status = rtl8125_get_txd_opts1(opts[0], len, entry);
|
||||
status = rtl8125_get_txd_opts1(ring, opts[0], len, entry);
|
||||
|
||||
txd->addr = cpu_to_le64(mapping);
|
||||
|
||||
@ -14045,7 +14263,7 @@ rtl8125_xmit_frags(struct rtl8125_private *tp,
|
||||
//second txd
|
||||
addr += len;
|
||||
len = 1;
|
||||
entry = (entry + 1) % NUM_TX_DESC;
|
||||
entry = (entry + 1) % ring->num_tx_desc;
|
||||
txd = ring->TxDescArray + entry;
|
||||
cur_frag += 1;
|
||||
|
||||
@ -14062,7 +14280,7 @@ rtl8125_xmit_frags(struct rtl8125_private *tp,
|
||||
}
|
||||
|
||||
/* anti gcc 2.95.3 bugware (sic) */
|
||||
status = rtl8125_get_txd_opts1(opts[0], len, entry);
|
||||
status = rtl8125_get_txd_opts1(ring, opts[0], len, entry);
|
||||
if (cur_frag == (nr_frags - 1) || LsoPatchEnabled == TRUE) {
|
||||
//ring->tx_skb[entry].skb = skb;
|
||||
status |= LastFrag;
|
||||
@ -14376,7 +14594,7 @@ rtl8125_tso_csum(struct sk_buff *skb,
|
||||
static bool rtl8125_tx_slots_avail(struct rtl8125_private *tp,
|
||||
struct rtl8125_tx_ring *ring)
|
||||
{
|
||||
unsigned int slots_avail = READ_ONCE(ring->dirty_tx) + NUM_TX_DESC
|
||||
unsigned int slots_avail = READ_ONCE(ring->dirty_tx) + ring->num_tx_desc
|
||||
- READ_ONCE(ring->cur_tx);
|
||||
|
||||
/* A skbuff with nr_frags needs nr_frags+1 entries in the tx queue */
|
||||
@ -14400,7 +14618,7 @@ rtl8125_start_xmit(struct sk_buff *skb,
|
||||
struct rtl8125_tx_ring *ring;
|
||||
bool stop_queue;
|
||||
|
||||
assert(queue_mapping < tp->num_tx_queues);
|
||||
assert(queue_mapping < tp->num_tx_rings);
|
||||
|
||||
ring = &tp->tx_ring[queue_mapping];
|
||||
|
||||
@ -14414,7 +14632,7 @@ rtl8125_start_xmit(struct sk_buff *skb,
|
||||
goto err_stop;
|
||||
}
|
||||
|
||||
entry = ring->cur_tx % NUM_TX_DESC;
|
||||
entry = ring->cur_tx % ring->num_tx_desc;
|
||||
txd = ring->TxDescArray + entry;
|
||||
|
||||
if (!EnableTxNoClose) {
|
||||
@ -14448,7 +14666,7 @@ rtl8125_start_xmit(struct sk_buff *skb,
|
||||
opts[0] |= FirstFrag | LastFrag;
|
||||
}
|
||||
|
||||
opts[0] = rtl8125_get_txd_opts1(opts[0], len, entry);
|
||||
opts[0] = rtl8125_get_txd_opts1(ring, opts[0], len, entry);
|
||||
mapping = dma_map_single(tp_to_dev(tp), skb->data, len, DMA_TO_DEVICE);
|
||||
if (unlikely(dma_mapping_error(tp_to_dev(tp), mapping))) {
|
||||
if (unlikely(net_ratelimit()))
|
||||
@ -14559,7 +14777,7 @@ rtl8125_tx_interrupt(struct rtl8125_tx_ring *ring, int budget)
|
||||
}
|
||||
|
||||
while (tx_left > 0) {
|
||||
unsigned int entry = dirty_tx % NUM_TX_DESC;
|
||||
unsigned int entry = dirty_tx % ring->num_tx_desc;
|
||||
struct ring_info *tx_skb = ring->tx_skb + entry;
|
||||
|
||||
if (!EnableTxNoClose &&
|
||||
@ -14767,14 +14985,14 @@ rtl8125_rx_interrupt(struct net_device *dev,
|
||||
assert(dev != NULL);
|
||||
assert(tp != NULL);
|
||||
|
||||
if ((ring->RxDescArray == NULL))
|
||||
if (ring->RxDescArray == NULL)
|
||||
goto rx_out;
|
||||
|
||||
rx_quota = RTL_RX_QUOTA(budget);
|
||||
cur_rx = ring->cur_rx;
|
||||
entry = cur_rx % NUM_RX_DESC;
|
||||
entry = cur_rx % ring->num_rx_desc;
|
||||
desc = rtl8125_get_rxdesc(tp, ring->RxDescArray, entry);
|
||||
rx_left = NUM_RX_DESC + ring->dirty_rx - cur_rx;
|
||||
rx_left = ring->num_rx_desc + ring->dirty_rx - cur_rx;
|
||||
rx_left = rtl8125_rx_quota(rx_left, (u32)rx_quota);
|
||||
|
||||
for (; rx_left > 0; rx_left--) {
|
||||
@ -14834,7 +15052,7 @@ process_pkt:
|
||||
unsigned int entry_next;
|
||||
struct sk_buff *skb_next;
|
||||
|
||||
entry_next = (cur_rx + 1) % NUM_RX_DESC;
|
||||
entry_next = (cur_rx + 1) % ring->num_rx_desc;
|
||||
desc_next = (struct RxDescV3 *)rtl8125_get_rxdesc(tp, ring->RxDescArray, entry_next);
|
||||
rmb();
|
||||
status_next = le32_to_cpu(desc_next->RxDescNormalDDWord4.opts1);
|
||||
@ -14910,7 +15128,7 @@ process_pkt:
|
||||
}
|
||||
|
||||
cur_rx++;
|
||||
entry = cur_rx % NUM_RX_DESC;
|
||||
entry = cur_rx % ring->num_rx_desc;
|
||||
desc = rtl8125_get_rxdesc(tp, ring->RxDescArray, entry);
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,37)
|
||||
prefetch(desc);
|
||||
@ -14932,7 +15150,7 @@ process_pkt:
|
||||
* after refill ?
|
||||
* - how do others driver handle this condition (Uh oh...).
|
||||
*/
|
||||
if ((ring->dirty_rx + NUM_RX_DESC == ring->cur_rx) && netif_msg_intr(tp))
|
||||
if ((ring->dirty_rx + ring->num_rx_desc == ring->cur_rx) && netif_msg_intr(tp))
|
||||
printk(KERN_EMERG "%s: Rx buffers exhausted\n", dev->name);
|
||||
|
||||
rx_out:
|
||||
@ -14972,7 +15190,7 @@ static irqreturn_t rtl8125_interrupt(int irq, void *dev_instance)
|
||||
if (!status)
|
||||
break;
|
||||
|
||||
if ((status == 0xFFFFFFFF))
|
||||
if (status == 0xFFFFFFFF)
|
||||
break;
|
||||
|
||||
if (!(status & (tp->intr_mask | tp->timer_intr_mask)))
|
||||
@ -15038,14 +15256,15 @@ static irqreturn_t rtl8125_interrupt(int irq, void *dev_instance)
|
||||
if (status & tp->intr_mask)
|
||||
tp->keep_intr_cnt = RTK_KEEP_INTERRUPT_COUNT;
|
||||
|
||||
for (i = 0; i < tp->num_tx_rings; i++)
|
||||
rtl8125_tx_interrupt(&tp->tx_ring[i], ~(u32)0);
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
|
||||
rtl8125_rx_interrupt(dev, tp, &tp->rx_ring[0], &budget);
|
||||
#else
|
||||
rtl8125_rx_interrupt(dev, tp, &tp->rx_ring[0], budget);
|
||||
#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
|
||||
|
||||
for (i = 0; i < tp->num_tx_rings; i++)
|
||||
rtl8125_tx_interrupt(&tp->tx_ring[i], ~(u32)0);
|
||||
#ifdef ENABLE_DASH_SUPPORT
|
||||
if (tp->DASH) {
|
||||
struct net_device *dev = tp->dev;
|
||||
@ -15101,6 +15320,8 @@ static irqreturn_t rtl8125_interrupt_msix(int irq, void *dev_instance)
|
||||
printk(KERN_INFO "%s: interrupt message id %d in poll_msix\n",
|
||||
dev->name, message_id);
|
||||
#else
|
||||
rtl8125_tx_interrupt_with_vector(tp, message_id, ~(u32)0);
|
||||
|
||||
if (message_id < tp->num_rx_rings) {
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
|
||||
rtl8125_rx_interrupt(dev, tp, &tp->rx_ring[message_id], &budget);
|
||||
@ -15109,8 +15330,6 @@ static irqreturn_t rtl8125_interrupt_msix(int irq, void *dev_instance)
|
||||
#endif //LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
|
||||
}
|
||||
|
||||
rtl8125_tx_interrupt_with_vector(tp, message_id, ~(u32)0);
|
||||
|
||||
rtl8125_enable_hw_interrupt_v2(tp, message_id);
|
||||
#endif
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2022 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
|
@ -5,7 +5,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2022 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
|
@ -5,7 +5,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2022 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
|
@ -5,7 +5,7 @@
|
||||
# r8168 is the Linux device driver released for Realtek Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2022 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
|
@ -5,7 +5,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2022 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
|
@ -5,7 +5,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2022 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
|
@ -5,7 +5,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2022 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
|
@ -5,7 +5,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2022 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
|
@ -5,7 +5,7 @@
|
||||
# r8125 is the Linux device driver released for Realtek 2.5Gigabit Ethernet
|
||||
# controllers with PCI-Express interface.
|
||||
#
|
||||
# Copyright(c) 2021 Realtek Semiconductor Corp. All rights reserved.
|
||||
# Copyright(c) 2022 Realtek Semiconductor Corp. All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the Free
|
||||
|
@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=ncurses
|
||||
PKG_VERSION:=6.2
|
||||
PKG_RELEASE:=2
|
||||
PKG_VERSION:=6.3
|
||||
PKG_RELEASE:=$(AUTORELEASE)
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=@GNU/$(PKG_NAME)
|
||||
PKG_HASH:=30306e0c76e0f9f1f0de987cf1c82a5c21e1ce6568b9227f7da5b71cbea86c9d
|
||||
PKG_HASH:=97fc51ac2b085d4cde31ef4d2c3122c21abc217e9090a43a30fc5ec21684e059
|
||||
|
||||
PKG_LICENSE:=MIT
|
||||
PKG_LICENSE_FILES:=README
|
||||
@ -128,6 +128,8 @@ ifneq ($(HOST_OS),FreeBSD)
|
||||
r/rxvt-unicode \
|
||||
s/screen \
|
||||
s/screen-256color \
|
||||
t/tmux \
|
||||
t/tmux-256color \
|
||||
v/vt100 \
|
||||
v/vt102 \
|
||||
x/xterm \
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/misc/terminfo.src
|
||||
+++ b/misc/terminfo.src
|
||||
@@ -6145,6 +6145,172 @@ rxvt-cygwin-native|rxvt terminal emulato
|
||||
@@ -6616,6 +6616,172 @@ rxvt-cygwin-native|rxvt terminal emulato
|
||||
rxvt-16color|rxvt with 16 colors like aixterm,
|
||||
ncv#32, use=ibm+16color, use=rxvt,
|
||||
|
||||
|
@ -1,22 +1,22 @@
|
||||
--- a/misc/terminfo.src
|
||||
+++ b/misc/terminfo.src
|
||||
@@ -4513,6 +4513,7 @@ xterm-xfree86|xterm terminal emulator (X
|
||||
@@ -4815,6 +4815,7 @@ xterm+nofkeys|building block for xterm f
|
||||
# This version reflects the current xterm features.
|
||||
xterm-new|modern xterm terminal emulator,
|
||||
npc,
|
||||
+ kbs=\177,
|
||||
kcbt=\E[Z, kent=\EOM, use=ecma+index, use=ansi+rep,
|
||||
use=ecma+strikeout, use=xterm+keypad, use=vt420+lrmm,
|
||||
use=xterm+sm+1006, use=xterm+pcfkeys, use=xterm+tmux,
|
||||
@@ -5943,6 +5944,7 @@ mlterm-256color|mlterm 3.0 with xterm 25
|
||||
kcbt=\E[Z, kent=\EOM, nel=\EE, use=ecma+index,
|
||||
use=ansi+rep, use=ecma+strikeout, use=xterm+pcfkeys,
|
||||
use=xterm+nofkeys,
|
||||
@@ -6416,6 +6417,7 @@ mlterm-256color|mlterm 3.0 with xterm 25
|
||||
rxvt-basic|rxvt terminal base (X Window System),
|
||||
OTbs, am, bce, eo, mir, msgr, xenl, xon, XT,
|
||||
cols#80, it#8, lines#24,
|
||||
+ kbs=\177,
|
||||
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
|
||||
bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
|
||||
clear=\E[H\E[2J, cnorm=\E[?25h, cr=\r,
|
||||
@@ -5953,7 +5955,7 @@ rxvt-basic|rxvt terminal base (X Window
|
||||
bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=\r,
|
||||
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
|
||||
@@ -6425,7 +6427,7 @@ rxvt-basic|rxvt terminal base (X Window
|
||||
enacs=\E(B\E)0, flash=\E[?5h$<100/>\E[?5l, home=\E[H,
|
||||
ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
|
||||
ind=\n, is1=\E[?47l\E=\E[?1l,
|
||||
@ -25,7 +25,7 @@
|
||||
kcbt=\E[Z, kmous=\E[M, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
|
||||
rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E>, rmso=\E[27m,
|
||||
rmul=\E[24m,
|
||||
@@ -7454,6 +7456,7 @@ dumb-emacs-ansi|Emacs dumb terminal with
|
||||
@@ -8060,6 +8062,7 @@ dumb-emacs-ansi|Emacs dumb terminal with
|
||||
screen|VT 100/ANSI X3.64 virtual terminal,
|
||||
OTbs, OTpt, am, km, mir, msgr, xenl, G0,
|
||||
colors#8, cols#80, it#8, lines#24, ncv@, pairs#64, U8#1,
|
||||
@ -33,16 +33,16 @@
|
||||
acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
|
||||
yzz{{||}}~~,
|
||||
bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
|
||||
@@ -7465,7 +7468,7 @@ screen|VT 100/ANSI X3.64 virtual termina
|
||||
@@ -8071,7 +8074,7 @@ screen|VT 100/ANSI X3.64 virtual termina
|
||||
dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
|
||||
enacs=\E(B\E)0, flash=\Eg, home=\E[H, hpa=\E[%i%p1%dG,
|
||||
ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
|
||||
- ind=\n, indn=\E[%p1%dS, is2=\E)0, kbs=^H, kcbt=\E[Z,
|
||||
+ ind=\n, indn=\E[%p1%dS, is2=\E)0, kcbt=\E[Z,
|
||||
kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
|
||||
kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~,
|
||||
kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
|
||||
@@ -7594,6 +7597,7 @@ screen.xterm-r6|screen customized for X1
|
||||
kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
|
||||
kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR,
|
||||
kf4=\EOS, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
|
||||
@@ -8199,6 +8202,7 @@ screen.xterm-r6|screen customized for X1
|
||||
# on Solaris because Sun's curses implementation gets confused.
|
||||
screen.teraterm|disable ncv in teraterm,
|
||||
ncv#127,
|
||||
|
@ -15,7 +15,7 @@ Subject: [PATCH] ncurses 5.9 - patch 20141206
|
||||
|
||||
--- a/ncurses/base/MKlib_gen.sh
|
||||
+++ b/ncurses/base/MKlib_gen.sh
|
||||
@@ -502,11 +502,22 @@ sed -n -f $ED1 \
|
||||
@@ -511,11 +511,22 @@ sed -n -f $ED1 \
|
||||
-e 's/gen_$//' \
|
||||
-e 's/ / /g' >>$TMP
|
||||
|
||||
@ -39,6 +39,6 @@ Subject: [PATCH] ncurses 5.9 - patch 20141206
|
||||
- -e 's/^ //' \
|
||||
- -e 's/_Bool/NCURSES_BOOL/g' \
|
||||
+| sed -f $ED1 \
|
||||
| $AWK -f $AW2 \
|
||||
| "$AWK" -f $AW2 \
|
||||
| sed -f $ED3 \
|
||||
| sed \
|
||||
|
@ -1,22 +1,22 @@
|
||||
--- a/aclocal.m4
|
||||
+++ b/aclocal.m4
|
||||
@@ -454,7 +454,7 @@ AC_REQUIRE([CF_PROG_AR])
|
||||
@@ -505,7 +505,7 @@ AC_CACHE_CHECK(for options to update arc
|
||||
;;
|
||||
(*)
|
||||
cf_cv_ar_flags=unknown
|
||||
- for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
|
||||
+ for cf_ar_flags in -curvD -curv curv -crv crv -cqv cqv -rv rv
|
||||
do
|
||||
|
||||
AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
|
||||
cf_cv_ar_flags=unknown
|
||||
- for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
|
||||
+ for cf_ar_flags in -curvD -curv curv -crv crv -cqv cqv -rv rv
|
||||
do
|
||||
|
||||
# check if $ARFLAGS already contains this choice
|
||||
# check if $ARFLAGS already contains this choice
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -4751,7 +4751,7 @@ if test "${cf_cv_ar_flags+set}" = set; t
|
||||
else
|
||||
@@ -5072,7 +5072,7 @@ else
|
||||
;;
|
||||
(*)
|
||||
cf_cv_ar_flags=unknown
|
||||
- for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
|
||||
+ for cf_ar_flags in -curvD -curv curv -crv crv -cqv cqv -rv rv
|
||||
do
|
||||
|
||||
cf_cv_ar_flags=unknown
|
||||
- for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
|
||||
+ for cf_ar_flags in -curvD -curv curv -crv crv -cqv cqv -rv rv
|
||||
do
|
||||
|
||||
# check if $ARFLAGS already contains this choice
|
||||
# check if $ARFLAGS already contains this choice
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/misc/terminfo.src
|
||||
+++ b/misc/terminfo.src
|
||||
@@ -5802,12 +5802,11 @@ konsole-xf3x|KDE console window with key
|
||||
@@ -6240,12 +6240,11 @@ konsole-xf3x|KDE console window with key
|
||||
# The value for kbs (see konsole-vt100) reflects local customization rather
|
||||
# than the settings used for XFree86 xterm.
|
||||
konsole-xf4x|KDE console window with keyboard for XFree86 4.x xterm,
|
||||
|
@ -18,7 +18,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
#include <linux/personality.h>
|
||||
#include <linux/preempt.h>
|
||||
#include <linux/printk.h>
|
||||
@@ -137,6 +138,10 @@ static int c_show(struct seq_file *m, vo
|
||||
@@ -140,6 +141,10 @@ static int c_show(struct seq_file *m, vo
|
||||
{
|
||||
int i, j;
|
||||
bool compat = personality(current->personality) == PER_LINUX32;
|
||||
@ -29,7 +29,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
for_each_online_cpu(i) {
|
||||
struct cpuinfo_arm64 *cpuinfo = &per_cpu(cpu_data, i);
|
||||
@@ -197,6 +202,26 @@ static int c_show(struct seq_file *m, vo
|
||||
@@ -200,6 +205,26 @@ static int c_show(struct seq_file *m, vo
|
||||
seq_printf(m, "CPU revision\t: %d\n\n", MIDR_REVISION(midr));
|
||||
}
|
||||
|
||||
|
@ -37,7 +37,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
gpiod_err(desc,
|
||||
"%s: tried to set a GPIO tied to an IRQ as output\n",
|
||||
__func__);
|
||||
@@ -3250,8 +3252,8 @@ int gpiochip_lock_as_irq(struct gpio_chi
|
||||
@@ -3260,8 +3262,8 @@ int gpiochip_lock_as_irq(struct gpio_chi
|
||||
}
|
||||
|
||||
/* To be valid for IRQ the line needs to be input or open drain */
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/arch/arm/boot/dts/bcm2711.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm2711.dtsi
|
||||
@@ -509,8 +509,8 @@
|
||||
@@ -510,8 +510,8 @@
|
||||
msi-controller;
|
||||
msi-parent = <&pcie0>;
|
||||
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||||
|
||||
--- a/arch/arm/boot/dts/bcm2711.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm2711.dtsi
|
||||
@@ -560,6 +560,7 @@
|
||||
@@ -561,6 +561,7 @@
|
||||
|
||||
&dsi1 {
|
||||
interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/arch/arm/boot/dts/bcm2711.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm2711.dtsi
|
||||
@@ -308,6 +308,14 @@
|
||||
@@ -309,6 +309,14 @@
|
||||
#reset-cells = <1>;
|
||||
};
|
||||
|
||||
@ -32,7 +32,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
hdmi0: hdmi@7ef00700 {
|
||||
compatible = "brcm,bcm2711-hdmi0";
|
||||
reg = <0x7ef00700 0x300>,
|
||||
@@ -336,6 +344,11 @@
|
||||
@@ -337,6 +345,11 @@
|
||||
<&clk_27MHz>;
|
||||
clock-names = "hdmi", "bvb", "audio", "cec";
|
||||
resets = <&dvp 0>;
|
||||
@ -44,7 +44,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
ddc = <&ddc0>;
|
||||
dmas = <&dma 10>;
|
||||
dma-names = "audio-rx";
|
||||
@@ -380,6 +393,11 @@
|
||||
@@ -381,6 +394,11 @@
|
||||
<&dvp 0>,
|
||||
<&clk_27MHz>;
|
||||
resets = <&dvp 1>;
|
||||
|
@ -12,7 +12,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
|
||||
--- a/arch/arm/boot/dts/bcm2711.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm2711.dtsi
|
||||
@@ -314,6 +314,7 @@
|
||||
@@ -315,6 +315,7 @@
|
||||
interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -12,7 +12,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
|
||||
--- a/arch/arm/boot/dts/bcm2711.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm2711.dtsi
|
||||
@@ -353,7 +353,6 @@
|
||||
@@ -354,7 +354,6 @@
|
||||
ddc = <&ddc0>;
|
||||
dmas = <&dma 10>;
|
||||
dma-names = "audio-rx";
|
||||
@ -20,7 +20,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -401,7 +400,6 @@
|
||||
@@ -402,7 +401,6 @@
|
||||
"wakeup", "hpd-connected", "hpd-removed";
|
||||
dmas = <&dma 17>;
|
||||
dma-names = "audio-rx";
|
||||
|
@ -21,7 +21,7 @@ Signed-off-by: Mateusz Kwiatkowski <kfyatek+publicgit@gmail.com>
|
||||
|
||||
--- a/arch/arm/boot/dts/bcm2711.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm2711.dtsi
|
||||
@@ -300,6 +300,14 @@
|
||||
@@ -301,6 +301,14 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
@ -34,7 +34,7 @@ Signed-off-by: Mateusz Kwiatkowski <kfyatek+publicgit@gmail.com>
|
||||
maxItems: 1
|
||||
--- a/arch/arm/boot/dts/bcm2711.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm2711.dtsi
|
||||
@@ -301,7 +301,7 @@
|
||||
@@ -302,7 +302,7 @@
|
||||
};
|
||||
|
||||
vec: vec@7ec13000 {
|
||||
|
@ -15,7 +15,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
|
||||
--- a/arch/arm/boot/dts/bcm2711.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm2711.dtsi
|
||||
@@ -359,7 +359,7 @@
|
||||
@@ -360,7 +360,7 @@
|
||||
interrupt-names = "cec-tx", "cec-rx", "cec-low",
|
||||
"wakeup", "hpd-connected", "hpd-removed";
|
||||
ddc = <&ddc0>;
|
||||
@ -24,7 +24,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
|
||||
dma-names = "audio-rx";
|
||||
status = "disabled";
|
||||
};
|
||||
@@ -406,7 +406,7 @@
|
||||
@@ -407,7 +407,7 @@
|
||||
<9>, <10>, <11>;
|
||||
interrupt-names = "cec-tx", "cec-rx", "cec-low",
|
||||
"wakeup", "hpd-connected", "hpd-removed";
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/arch/arm/boot/dts/bcm2711.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm2711.dtsi
|
||||
@@ -304,7 +304,7 @@
|
||||
@@ -305,7 +305,7 @@
|
||||
compatible = "brcm,bcm2711-vec";
|
||||
reg = <0x7ec13000 0x1000>;
|
||||
clocks = <&clocks BCM2835_CLOCK_VEC>;
|
||||
@ -23,7 +23,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
@@ -1114,7 +1114,3 @@
|
||||
@@ -1115,7 +1115,3 @@
|
||||
&usb {
|
||||
interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
|
@ -65,7 +65,7 @@
|
||||
mtk_flow_get_dsa_port(struct net_device **dev)
|
||||
{
|
||||
#if IS_ENABLED(CONFIG_NET_DSA)
|
||||
@@ -254,6 +291,9 @@ mtk_flow_offload_replace(struct mtk_eth
|
||||
@@ -251,6 +288,9 @@ mtk_flow_offload_replace(struct mtk_eth
|
||||
case FLOW_DISSECTOR_KEY_IPV4_ADDRS:
|
||||
offload_type = MTK_PPE_PKT_TYPE_IPV4_HNAPT;
|
||||
break;
|
||||
@ -75,7 +75,7 @@
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
@@ -289,6 +329,17 @@ mtk_flow_offload_replace(struct mtk_eth
|
||||
@@ -286,6 +326,17 @@ mtk_flow_offload_replace(struct mtk_eth
|
||||
mtk_flow_set_ipv4_addr(&foe, &data, false);
|
||||
}
|
||||
|
||||
@ -93,7 +93,7 @@
|
||||
flow_action_for_each(i, act, &rule->action) {
|
||||
if (act->id != FLOW_ACTION_MANGLE)
|
||||
continue;
|
||||
@@ -301,6 +352,9 @@ mtk_flow_offload_replace(struct mtk_eth
|
||||
@@ -289,6 +349,9 @@ mtk_flow_offload_replace(struct mtk_eth
|
||||
case FLOW_ACT_MANGLE_HDR_TYPE_IP4:
|
||||
err = mtk_flow_mangle_ipv4(act, &data);
|
||||
break;
|
||||
|
@ -22,11 +22,9 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
net/dsa/switch.c | 39 ++++++++++++++++++++++++++-------------
|
||||
1 file changed, 26 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/net/dsa/switch.c b/net/dsa/switch.c
|
||||
index a44035872cff..659fd979cc0a 100644
|
||||
--- a/net/dsa/switch.c
|
||||
+++ b/net/dsa/switch.c
|
||||
@@ -104,23 +104,12 @@ static int dsa_switch_bridge_join(struct dsa_switch *ds,
|
||||
@@ -104,23 +104,12 @@ static int dsa_switch_bridge_join(struct
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -52,7 +50,7 @@ index a44035872cff..659fd979cc0a 100644
|
||||
/* If the bridge was vlan_filtering, the bridge core doesn't trigger an
|
||||
* event for changing vlan_filtering setting upon slave ports leaving
|
||||
* it. That is a good thing, because that lets us handle it and also
|
||||
@@ -153,6 +142,30 @@ static int dsa_switch_bridge_leave(struct dsa_switch *ds,
|
||||
@@ -153,6 +142,30 @@ static int dsa_switch_bridge_leave(struc
|
||||
if (err && err != EOPNOTSUPP)
|
||||
return err;
|
||||
}
|
||||
@ -83,6 +81,3 @@ index a44035872cff..659fd979cc0a 100644
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
2.34.1
|
||||
|
||||
|
@ -39,11 +39,9 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
|
||||
net/dsa/switch.c | 8 +++++---
|
||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/net/dsa/switch.c b/net/dsa/switch.c
|
||||
index 659fd979cc0a..2fe2f328d2d2 100644
|
||||
--- a/net/dsa/switch.c
|
||||
+++ b/net/dsa/switch.c
|
||||
@@ -162,9 +162,11 @@ static int dsa_switch_bridge_leave(struct dsa_switch *ds,
|
||||
@@ -162,9 +162,11 @@ static int dsa_switch_bridge_leave(struc
|
||||
info->sw_index, info->port,
|
||||
info->br);
|
||||
|
||||
@ -58,6 +56,3 @@ index 659fd979cc0a..2fe2f328d2d2 100644
|
||||
|
||||
return 0;
|
||||
}
|
||||
--
|
||||
2.34.1
|
||||
|
||||
|
@ -3338,6 +3338,8 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
|
||||
# CONFIG_MICROCHIP_T1_PHY is not set
|
||||
# CONFIG_MICROSEMI_PHY is not set
|
||||
# CONFIG_MIGRATION is not set
|
||||
CONFIG_HARDEN_BRANCH_HISTORY=y
|
||||
CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY=y
|
||||
CONFIG_MII=y
|
||||
# CONFIG_MIKROTIK is not set
|
||||
# CONFIG_MIKROTIK_RB532 is not set
|
||||
|
@ -32,6 +32,15 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
lib1funcs.o ashldi3.o bswapsdi2.o \
|
||||
--- a/arch/arm/kernel/vmlinux.lds.S
|
||||
+++ b/arch/arm/kernel/vmlinux.lds.S
|
||||
@@ -75,7 +75,7 @@ SECTIONS
|
||||
. = ALIGN(4);
|
||||
__ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) {
|
||||
__start___ex_table = .;
|
||||
- ARM_MMU_KEEP(*(__ex_table))
|
||||
+ KEEP(*(__ex_table))
|
||||
__stop___ex_table = .;
|
||||
}
|
||||
|
||||
@@ -100,24 +100,24 @@ SECTIONS
|
||||
}
|
||||
.init.arch.info : {
|
||||
@ -63,14 +72,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
|
||||
--- a/arch/arm/include/asm/vmlinux.lds.h
|
||||
+++ b/arch/arm/include/asm/vmlinux.lds.h
|
||||
@@ -23,19 +23,19 @@
|
||||
#define ARM_MMU_DISCARD(x)
|
||||
#else
|
||||
#define ARM_MMU_KEEP(x)
|
||||
-#define ARM_MMU_DISCARD(x) x
|
||||
+#define ARM_MMU_DISCARD(x) KEEP(x)
|
||||
#endif
|
||||
|
||||
@@ -42,13 +42,13 @@
|
||||
#define PROC_INFO \
|
||||
. = ALIGN(4); \
|
||||
__proc_info_begin = .; \
|
||||
@ -86,7 +88,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
__idmap_text_end = .; \
|
||||
|
||||
#define ARM_DISCARD \
|
||||
@@ -96,12 +96,12 @@
|
||||
@@ -109,12 +109,12 @@
|
||||
. = ALIGN(8); \
|
||||
.ARM.unwind_idx : { \
|
||||
__start_unwind_idx = .; \
|
||||
@ -101,20 +103,21 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
__stop_unwind_tab = .; \
|
||||
}
|
||||
|
||||
@@ -112,14 +112,14 @@
|
||||
#define ARM_VECTORS \
|
||||
__vectors_start = .; \
|
||||
.vectors 0xffff0000 : AT(__vectors_start) { \
|
||||
- *(.vectors) \
|
||||
+ KEEP(*(.vectors)) \
|
||||
} \
|
||||
. = __vectors_start + SIZEOF(.vectors); \
|
||||
__vectors_end = .; \
|
||||
@@ -126,7 +126,7 @@
|
||||
__vectors_lma = .; \
|
||||
OVERLAY 0xffff0000 : NOCROSSREFS AT(__vectors_lma) { \
|
||||
.vectors { \
|
||||
- *(.vectors) \
|
||||
+ KEEP(*(.vectors)) \
|
||||
} \
|
||||
.vectors.bhb.loop8 { \
|
||||
*(.vectors.bhb.loop8) \
|
||||
@@ -144,7 +144,7 @@
|
||||
\
|
||||
__stubs_start = .; \
|
||||
.stubs ADDR(.vectors) + 0x1000 : AT(__stubs_start) { \
|
||||
__stubs_lma = .; \
|
||||
.stubs ADDR(.vectors) + 0x1000 : AT(__stubs_lma) { \
|
||||
- *(.stubs) \
|
||||
+ KEEP(*(.stubs)) \
|
||||
} \
|
||||
. = __stubs_start + SIZEOF(.stubs); \
|
||||
__stubs_end = .; \
|
||||
ARM_LMA(__stubs, .stubs); \
|
||||
. = __stubs_lma + SIZEOF(.stubs); \
|
@ -92,7 +92,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
||||
bool
|
||||
--- a/lib/Kconfig
|
||||
+++ b/lib/Kconfig
|
||||
@@ -419,16 +419,16 @@ config BCH_CONST_T
|
||||
@@ -418,16 +418,16 @@ config BCH_CONST_T
|
||||
# Textsearch support is select'ed if needed
|
||||
#
|
||||
config TEXTSEARCH
|
||||
|
@ -11,7 +11,7 @@
|
||||
that can be interpreted by the ASN.1 stream decoder and used to
|
||||
--- a/lib/Kconfig
|
||||
+++ b/lib/Kconfig
|
||||
@@ -590,7 +590,7 @@ config LIBFDT
|
||||
@@ -589,7 +589,7 @@ config LIBFDT
|
||||
bool
|
||||
|
||||
config OID_REGISTRY
|
||||
|
@ -92,7 +92,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
||||
bool
|
||||
--- a/lib/Kconfig
|
||||
+++ b/lib/Kconfig
|
||||
@@ -439,16 +439,16 @@ config BCH_CONST_T
|
||||
@@ -438,16 +438,16 @@ config BCH_CONST_T
|
||||
# Textsearch support is select'ed if needed
|
||||
#
|
||||
config TEXTSEARCH
|
||||
|
@ -92,7 +92,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
|
||||
bool
|
||||
--- a/lib/Kconfig
|
||||
+++ b/lib/Kconfig
|
||||
@@ -402,16 +402,16 @@ config BCH_CONST_T
|
||||
@@ -401,16 +401,16 @@ config BCH_CONST_T
|
||||
# Textsearch support is select'ed if needed
|
||||
#
|
||||
config TEXTSEARCH
|
||||
|
@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
|
||||
--- a/arch/mips/Kconfig
|
||||
+++ b/arch/mips/Kconfig
|
||||
@@ -1164,6 +1164,10 @@ config SYNC_R4K
|
||||
@@ -1162,6 +1162,10 @@ config SYNC_R4K
|
||||
config MIPS_MACHINE
|
||||
def_bool n
|
||||
|
||||
|
@ -1087,7 +1087,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
|
||||
#define JFFS2_NODE_ACCURATE 0x2000
|
||||
--- a/lib/Kconfig
|
||||
+++ b/lib/Kconfig
|
||||
@@ -316,6 +316,12 @@ config ZSTD_DECOMPRESS
|
||||
@@ -315,6 +315,12 @@ config ZSTD_DECOMPRESS
|
||||
|
||||
source "lib/xz/Kconfig"
|
||||
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_ppe_offload.c
|
||||
@@ -187,6 +187,9 @@ mtk_flow_offload_replace(struct mtk_eth
|
||||
@@ -224,6 +224,9 @@ mtk_flow_offload_replace(struct mtk_eth
|
||||
int hash;
|
||||
int i;
|
||||
|
||||
|
@ -1087,7 +1087,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
|
||||
#define JFFS2_NODE_ACCURATE 0x2000
|
||||
--- a/lib/Kconfig
|
||||
+++ b/lib/Kconfig
|
||||
@@ -336,6 +336,12 @@ config ZSTD_DECOMPRESS
|
||||
@@ -335,6 +335,12 @@ config ZSTD_DECOMPRESS
|
||||
|
||||
source "lib/xz/Kconfig"
|
||||
|
||||
|
@ -1087,7 +1087,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
|
||||
#define JFFS2_NODE_ACCURATE 0x2000
|
||||
--- a/lib/Kconfig
|
||||
+++ b/lib/Kconfig
|
||||
@@ -303,6 +303,12 @@ config ZSTD_DECOMPRESS
|
||||
@@ -302,6 +302,12 @@ config ZSTD_DECOMPRESS
|
||||
|
||||
source "lib/xz/Kconfig"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user