Merge Official Source

This commit is contained in:
CN_SZTL 2020-05-05 11:57:02 +08:00
commit 3bac4ea0d9
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
21 changed files with 10050 additions and 78 deletions

View File

@ -8,11 +8,11 @@ endif
LINUX_VERSION-4.14 = .176
LINUX_VERSION-4.19 = .115
LINUX_VERSION-5.4 = .36
LINUX_VERSION-5.4 = .38
LINUX_KERNEL_HASH-4.14.176 = bcae0956baaeb55dab5bad0401873fbc5baaa7fbe957ea6d27a5ab241cec5ca2
LINUX_KERNEL_HASH-4.19.115 = 11b2d97c8ea5ceb40c5e1d0bb87ad5b2b8c84560181bc60c0d28ec3a3e3801c2
LINUX_KERNEL_HASH-5.4.36 = b9faea98122e8316af8fb428c942e81797b5d28a8fc59a24a4e47959e3765b8d
LINUX_KERNEL_HASH-5.4.38 = e72b9fa4e3a222d42d64dce9915e5b18f1b75ae722d529a1e560ced2e5d0f30e
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))

View File

@ -0,0 +1,41 @@
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_VERSION:=2020.04
PKG_RELEASE:=1
PKG_HASH:=fe732aaf037d9cc3c0909bad8362af366ae964bbdac6913a34081ff4ad565372
include $(INCLUDE_DIR)/u-boot.mk
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk
define U-Boot/Default
BUILD_TARGET:=mediatek
UBOOT_IMAGE:=u-boot-mtk.bin
DEFAULT:=y
endef
define U-Boot/mt7629
NAME:=MT7629
BUILD_SUBTARGET:=mt7629
UBOOT_CONFIG:=mt7629_rfb
endef
define U-Boot/mt7622
NAME:=MT7622
BUILD_SUBTARGET:=mt7622
UBOOT_CONFIG:=mt7622_rfb
endef
UBOOT_TARGETS := mt7629 mt7622
UBOOT_MAKE_FLAGS += $(UBOOT_IMAGE)
Build/Exports:=$(Host/Exports)
define Build/InstallDev
$(INSTALL_DIR) $(STAGING_DIR_IMAGE)
$(INSTALL_BIN) $(PKG_BUILD_DIR)/$(UBOOT_IMAGE) $(STAGING_DIR_IMAGE)/$(BUILD_VARIANT)-$(UBOOT_IMAGE)
endef
$(eval $(call BuildPackage/U-Boot))

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,64 @@
From b1b3c3d2ce62872c8dec4a7d645af6b3c565e094 Mon Sep 17 00:00:00 2001
From: Sam Shih <sam.shih@mediatek.com>
Date: Mon, 20 Apr 2020 17:11:32 +0800
Subject: [PATCH 2/3] mt7622 uboot: add dts and config for spi nand
This patch add dts and config for mt7622 spi nand
Signed-off-by: Xiangsheng Hou <xiangsheng.hou@mediatek.com>
---
arch/arm/dts/mt7622-rfb.dts | 6 ++++++
arch/arm/dts/mt7622.dtsi | 20 ++++++++++++++++++++
2 files changed, 26 insertions(+)
diff --git a/arch/arm/dts/mt7622-rfb.dts b/arch/arm/dts/mt7622-rfb.dts
index f05c3fe14d..05502bddec 100644
--- a/arch/arm/dts/mt7622-rfb.dts
+++ b/arch/arm/dts/mt7622-rfb.dts
@@ -143,6 +143,12 @@
};
};
+&nandc {
+ pinctrl-names = "default";
+ pinctrl-0 = <&snfi_pins>;
+ status = "okay";
+};
+
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins>;
diff --git a/arch/arm/dts/mt7622.dtsi b/arch/arm/dts/mt7622.dtsi
index 1e8ec9b48b..63fdb63d4a 100644
--- a/arch/arm/dts/mt7622.dtsi
+++ b/arch/arm/dts/mt7622.dtsi
@@ -52,6 +52,26 @@
#size-cells = <0>;
};
+ nandc: nfi@1100d000 {
+ compatible = "mediatek,mt7622-nfc";
+ reg = <0x1100d000 0x1000>,
+ <0x1100e000 0x1000>;
+ interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_LOW>,
+ <GIC_SPI 95 IRQ_TYPE_LEVEL_LOW>;
+ clocks = <&pericfg CLK_PERI_NFI_PD>,
+ <&pericfg CLK_PERI_NFIECC_PD>,
+ <&pericfg CLK_PERI_SNFI_PD>,
+ <&topckgen CLK_TOP_NFI_INFRA_SEL>,
+ <&topckgen CLK_TOP_UNIVPLL2_D8>;
+ clock-names = "nfi_clk",
+ "ecc_clk",
+ "snfi_clk",
+ "spinfi_sel",
+ "spinfi_parent_50m";
+ nand-ecc-mode = "hw";
+ status = "disabled";
+ };
+
timer {
compatible = "arm,armv8-timer";
interrupt-parent = <&gic>;
--
2.17.1

View File

@ -0,0 +1,38 @@
From e5745143a2984cf44fbfc0b3aedb49e57873f109 Mon Sep 17 00:00:00 2001
From: Sam Shih <sam.shih@mediatek.com>
Date: Mon, 20 Apr 2020 17:17:04 +0800
Subject: [PATCH 3/3] configs: enable mtd and mtk_spi_nand in defconfig
This patch enable mtk and mtk_spi_nand in mt7622_rfb defconfig
Signed-off-by: Sam Shih <sam.shih@mediatek.com>
---
configs/mt7622_rfb_defconfig | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/configs/mt7622_rfb_defconfig b/configs/mt7622_rfb_defconfig
index 1ce6ebdfeb..816126267b 100644
--- a/configs/mt7622_rfb_defconfig
+++ b/configs/mt7622_rfb_defconfig
@@ -13,6 +13,7 @@ CONFIG_DEFAULT_FDT_FILE="mt7622-rfb"
CONFIG_SYS_PROMPT="MT7622> "
CONFIG_CMD_BOOTMENU=y
CONFIG_CMD_MMC=y
+CONFIG_CMD_NAND=y
CONFIG_CMD_SF_TEST=y
CONFIG_CMD_PING=y
CONFIG_CMD_SMC=y
@@ -25,6 +26,10 @@ CONFIG_CLK=y
CONFIG_DM_MMC=y
CONFIG_MMC_HS200_SUPPORT=y
CONFIG_MMC_MTK=y
+CONFIG_MTD=y
+CONFIG_DM_MTD=y
+CONFIG_MTK_SPI_NAND=y
+CONFIG_MTD_RAW_NAND=y
CONFIG_DM_SPI_FLASH=y
CONFIG_SPI_FLASH_EON=y
CONFIG_SPI_FLASH_GIGADEVICE=y
--
2.17.1

View File

@ -590,7 +590,13 @@ mac80211_setup_supplicant() {
local add_sp=0
local spobj="$(ubus -S list | grep wpa_supplicant.${ifname})"
wpa_supplicant_prepare_interface "$ifname" nl80211 || return 1
[ "$enable" = 0 ] && {
ubus call wpa_supplicant.${phy} config_del "{\"iface\":\"$ifname\"}"
ip link set dev "$ifname" down
iw dev "$ifname" del
return 0
}
wpa_supplicant_prepare_interface "$ifname" nl80211 || {
iw dev "$ifname" del
return 1
@ -607,18 +613,17 @@ mac80211_setup_supplicant() {
[ "$spobj" ] && ubus call wpa_supplicant config_remove "{\"iface\":\"$ifname\"}"
add_sp=1
fi
[ "$enable" = 0 ] && {
ubus call wpa_supplicant config_remove "{\"iface\":\"$ifname\"}"
ip link set dev "$ifname" down
return 0
}
[ -z "$spobj" ] && add_sp=1
NEW_MD5_SP=$(test -e "${_config}" && md5sum ${_config})
OLD_MD5_SP=$(uci -q -P /var/state get wireless._${phy}.md5_${ifname})
if [ "$add_sp" = "1" ]; then
wpa_supplicant_run "$ifname" "$hostapd_ctrl"
else
ubus call $spobj reload
[ "${NEW_MD5_SP}" == "${OLD_MD5_SP}" ] || ubus call $spobj reload
fi
uci -q -P /var/state set wireless._${phy}.md5_${ifname}="${NEW_MD5_SP}"
return 0
}
mac80211_setup_supplicant_noctl() {
@ -765,7 +770,6 @@ mac80211_setup_vif() {
[ "$vif_enable" = 1 ] || action=down
if [ "$mode" != "ap" ] || [ "$ifname" = "$ap_ifname" ]; then
logger ip link set dev "$ifname" $action
ip link set dev "$ifname" "$action" || {
wireless_setup_vif_failed IFUP_ERROR
json_select ..
@ -923,8 +927,8 @@ drv_mac80211_setup() {
[ "$rxantenna" = "all" ] && rxantenna=0xffffffff
iw phy "$phy" set antenna $txantenna $rxantenna >/dev/null 2>&1
iw phy "$phy" set antenna_gain $antenna_gain
iw phy "$phy" set distance "$distance"
iw phy "$phy" set antenna_gain $antenna_gain >/dev/null 2>&1
iw phy "$phy" set distance "$distance" >/dev/null 2>&1
if [ -n "$txpower" ]; then
iw phy "$phy" set txpower fixed "${txpower%%.*}00"
@ -954,8 +958,8 @@ drv_mac80211_setup() {
OLD_MD5=$(uci -q -P /var/state get wireless._${phy}.md5)
if [ "${NEWAPLIST}" != "${OLDAPLIST}" ]; then
mac80211_vap_cleanup hostapd "${OLDAPLIST}"
[ -n "${NEWAPLIST}" ] && mac80211_iw_interface_add "$phy" "${NEWAPLIST%% *}" __ap || return
fi
[ -n "${NEWAPLIST}" ] && mac80211_iw_interface_add "$phy" "${NEWAPLIST%% *}" __ap
local add_ap=0
local primary_ap=${NEWAPLIST%% *}
[ -n "$hostapd_ctrl" ] && {
@ -966,7 +970,11 @@ drv_mac80211_setup() {
no_reload=$?
if [ "$no_reload" != "0" ]; then
mac80211_vap_cleanup hostapd "${OLDAPLIST}"
[ -n "${NEWAPLIST}" ] && mac80211_iw_interface_add "$phy" "${NEWAPLIST%% *}" __ap || return
mac80211_vap_cleanup wpa_supplicant "$(uci -q -P /var/state get wireless._${phy}.splist)"
mac80211_vap_cleanup none "$(uci -q -P /var/state get wireless._${phy}.umlist)"
sleep 2
mac80211_iw_interface_add "$phy" "${NEWAPLIST%% *}" __ap
for_each_interface "sta adhoc mesh monitor" mac80211_prepare_vif
fi
}
fi
@ -1031,12 +1039,10 @@ list_phy_interfaces() {
drv_mac80211_teardown() {
wireless_process_kill_all
json_select data
json_get_vars phy
json_select ..
mac80211_interface_cleanup "$phy"
uci -q -P /var/state revert wireless._${phy}
for phy in `ls /sys/class/ieee80211/`; do
mac80211_interface_cleanup "$phy"
uci -q -P /var/state revert wireless._${phy}
done
}
add_driver mac80211

View File

@ -12,9 +12,9 @@ PKG_RELEASE:=3
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL=$(PROJECT_GIT)/project/odhcpd.git
PKG_SOURCE_DATE:=2020-03-14
PKG_SOURCE_VERSION:=6594c6b182a9065570316cf3a7a6a72a7afda150
PKG_MIRROR_HASH:=58c87e3322854b3c2797403e622b09b019eac9ccf3dddd2bc2307cedad1c003a
PKG_SOURCE_DATE:=2020-05-04
PKG_SOURCE_VERSION:=5ce077026b991f49d96464587386f93d92f56385
PKG_MIRROR_HASH:=5fcb4e9f219398ac09ab87e942d1a9a3f4c58431dceefa30b429a19d2dba8ff6
PKG_MAINTAINER:=Hans Dedecker <dedeckeh@gmail.com>
PKG_LICENSE:=GPL-2.0

View File

@ -15,7 +15,7 @@ Signed-off-by: Johannes Krude <johannes@krude.de>
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1646,7 +1646,15 @@ int snd_soc_runtime_set_dai_fmt(struct s
@@ -1656,7 +1656,15 @@ int snd_soc_runtime_set_dai_fmt(struct s
int ret;
for_each_rtd_codec_dai(rtd, i, codec_dai) {

View File

@ -24,7 +24,7 @@ Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
--- a/arch/arm/boot/dts/bcm283x.dtsi
+++ b/arch/arm/boot/dts/bcm283x.dtsi
@@ -634,22 +634,16 @@
@@ -635,22 +635,16 @@
};
clocks {

View File

@ -97,7 +97,7 @@ Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
dpi: dpi@7e208000 {
compatible = "brcm,bcm2835-dpi";
reg = <0x7e208000 0x8c>;
@@ -607,12 +595,6 @@
@@ -608,12 +596,6 @@
status = "disabled";
};

View File

@ -1845,7 +1845,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
@@ -540,32 +446,6 @@
@@ -541,32 +447,6 @@
status = "disabled";
};
@ -1878,7 +1878,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
i2c1: i2c@7e804000 {
compatible = "brcm,bcm2835-i2c";
reg = <0x7e804000 0x1000>;
@@ -576,16 +456,6 @@
@@ -577,16 +457,6 @@
status = "disabled";
};
@ -1895,7 +1895,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
vec: vec@7e806000 {
compatible = "brcm,bcm2835-vec";
reg = <0x7e806000 0x1000>;
@@ -594,20 +464,6 @@
@@ -595,20 +465,6 @@
status = "disabled";
};
@ -1916,7 +1916,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
usb: usb@7e980000 {
compatible = "brcm,bcm2835-usb";
reg = <0x7e980000 0x10000>;
@@ -619,10 +475,6 @@
@@ -620,10 +476,6 @@
phys = <&usbphy>;
phy-names = "usb2-phy";
};

View File

@ -54,7 +54,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+MODULE_LICENSE("GPL");
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -2673,6 +2673,7 @@ int wake_up_state(struct task_struct *p,
@@ -2668,6 +2668,7 @@ int wake_up_state(struct task_struct *p,
{
return try_to_wake_up(p, state, 0);
}

View File

@ -8,18 +8,6 @@
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/image.mk
# for arm
KERNEL_LOADADDR := 0x80008000
# for arm64
ifeq ($(SUBTARGET),mt7622)
KERNEL_LOADADDR = 0x41080000
endif
ifeq ($(SUBTARGET),mt7629)
KERNEL_LOADADDR = 0x40008000
endif
define Build/sysupgrade-emmc
rm -f $@.recovery
mkfs.fat -C $@.recovery 3070
@ -37,7 +25,7 @@ define Device/Default
FILESYSTEMS := squashfs
DEVICE_DTS_DIR := $(DTS_DIR)
IMAGES := sysupgrade.bin
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata
IMAGE/sysupgrade.bin := append-kernel | pad-to 128k | append-rootfs | pad-rootfs | append-metadata
SUPPORTED_DEVICES := $(subst _,$(comma),$(1))
ifeq ($(SUBTARGET),mt7623)
KERNEL_NAME := zImage
@ -50,17 +38,7 @@ else
endif
endef
ifeq ($(SUBTARGET),mt7622)
include mt7622.mk
endif
ifeq ($(SUBTARGET),mt7623)
include mt7623.mk
endif
ifeq ($(SUBTARGET),mt7629)
include mt7629.mk
endif
include $(SUBTARGET).mk
define Image/Build
$(call Image/Build/$(1),$(1))

View File

@ -1,3 +1,5 @@
KERNEL_LOADADDR := 0x41080000
define Device/mediatek_mt7622-rfb1
DEVICE_VENDOR := MediaTek
DEVICE_MODEL := MTK7622 rfb1 AP

View File

@ -1,3 +1,5 @@
KERNEL_LOADADDR := 0x80008000
define Device/unielec_u7623-02-emmc-512m
DEVICE_VENDOR := UniElec
DEVICE_MODEL := U7623-02

View File

@ -1,3 +1,5 @@
KERNEL_LOADADDR := 0x40008000
define Device/mediatek_mt7629-rfb
DEVICE_VENDOR := MediaTek
DEVICE_MODEL := MT7629 rfb AP

View File

@ -147,20 +147,7 @@
#include "mtk_eth_soc.h"
@@ -69,10 +71,12 @@ u32 mtk_m32(struct mtk_eth *eth, u32 mas
{
u32 val;
+ spin_lock(&eth->page_lock);
val = mtk_r32(eth, reg);
val &= ~mask;
val |= set;
mtk_w32(eth, val, reg);
+ spin_unlock(&eth->page_lock);
return reg;
}
@@ -1298,8 +1302,16 @@ static int mtk_poll_rx(struct napi_struc
@@ -1298,8 +1312,16 @@ static int mtk_poll_rx(struct napi_struc
(trxd.rxd2 & RX_DMA_VTAG))
__vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q),
RX_DMA_VID(trxd.rxd3));
@ -179,7 +166,7 @@
ring->data[idx] = new_data;
rxd->rxd1 = (unsigned int)dma_addr;
@@ -2216,6 +2228,9 @@ static int mtk_open(struct net_device *d
@@ -2216,6 +2238,9 @@ static int mtk_open(struct net_device *d
mtk_tx_irq_enable(eth, MTK_TX_DONE_INT);
mtk_rx_irq_enable(eth, MTK_RX_DONE_INT);
refcount_set(&eth->dma_refcnt, 1);
@ -189,7 +176,7 @@
}
else
refcount_inc(&eth->dma_refcnt);
@@ -2274,6 +2289,9 @@ static int mtk_stop(struct net_device *d
@@ -2274,6 +2299,9 @@ static int mtk_stop(struct net_device *d
mtk_dma_free(eth);
@ -199,7 +186,7 @@
return 0;
}
@@ -2733,6 +2751,27 @@ static int mtk_set_rxnfc(struct net_devi
@@ -2733,6 +2761,27 @@ static int mtk_set_rxnfc(struct net_devi
return ret;
}
@ -227,7 +214,7 @@
static const struct ethtool_ops mtk_ethtool_ops = {
.get_link_ksettings = mtk_get_link_ksettings,
.set_link_ksettings = mtk_set_link_ksettings,
@@ -2764,6 +2803,9 @@ static const struct net_device_ops mtk_n
@@ -2764,6 +2813,9 @@ static const struct net_device_ops mtk_n
#ifdef CONFIG_NET_POLL_CONTROLLER
.ndo_poll_controller = mtk_poll_controller,
#endif
@ -237,7 +224,7 @@
};
static int mtk_add_mac(struct mtk_eth *eth, struct device_node *np)
@@ -3097,6 +3139,7 @@ static const struct mtk_soc_data mt7622_
@@ -3097,6 +3149,7 @@ static const struct mtk_soc_data mt7622_
.hw_features = MTK_HW_FEATURES,
.required_clks = MT7622_CLKS_BITMAP,
.required_pctl = false,

View File

@ -0,0 +1,94 @@
diff -urN a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c 2020-04-21 14:33:05.702816632 +0800
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c 2020-04-21 14:33:19.590328084 +0800
@@ -2191,6 +2191,31 @@
return 0;
}
+static void mtk_gdm_config(struct mtk_eth *eth, u32 config)
+{
+ int i;
+
+ if (MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628))
+ return;
+
+ for (i = 0; i < MTK_MAC_COUNT; i++) {
+ u32 val = mtk_r32(eth, MTK_GDMA_FWD_CFG(i));
+
+ /* default setup the forward port to send frame to PDMA */
+ val &= ~0xffff;
+
+ /* Enable RX checksum */
+ val |= MTK_GDMA_ICS_EN | MTK_GDMA_TCS_EN | MTK_GDMA_UCS_EN;
+
+ val |= config;
+
+ mtk_w32(eth, val, MTK_GDMA_FWD_CFG(i));
+ }
+ /* Reset and enable PSE */
+ mtk_w32(eth, RST_GL_PSE, MTK_RST_GL);
+ mtk_w32(eth, 0, MTK_RST_GL);
+}
+
static int mtk_open(struct net_device *dev)
{
struct mtk_mac *mac = netdev_priv(dev);
@@ -2211,6 +2236,8 @@
if (err)
return err;
+ mtk_gdm_config(eth, MTK_GDMA_TO_PDMA);
+
napi_enable(&eth->tx_napi);
napi_enable(&eth->rx_napi);
mtk_tx_irq_enable(eth, MTK_TX_DONE_INT);
@@ -2266,6 +2293,8 @@
if (!refcount_dec_and_test(&eth->dma_refcnt))
return 0;
+ mtk_gdm_config(eth, MTK_GDMA_DROP_ALL);
+
mtk_tx_irq_disable(eth, MTK_TX_DONE_INT);
mtk_rx_irq_disable(eth, MTK_RX_DONE_INT);
napi_disable(&eth->tx_napi);
@@ -2392,8 +2421,6 @@
mtk_w32(eth, 0, MTK_QDMA_DELAY_INT);
mtk_tx_irq_disable(eth, ~0);
mtk_rx_irq_disable(eth, ~0);
- mtk_w32(eth, RST_GL_PSE, MTK_RST_GL);
- mtk_w32(eth, 0, MTK_RST_GL);
/* FE int grouping */
mtk_w32(eth, MTK_TX_DONE_INT, MTK_PDMA_INT_GRP1);
@@ -2402,19 +2429,6 @@
mtk_w32(eth, MTK_RX_DONE_INT, MTK_QDMA_INT_GRP2);
mtk_w32(eth, 0x21021000, MTK_FE_INT_GRP);
- for (i = 0; i < MTK_MAC_COUNT; i++) {
- u32 val = mtk_r32(eth, MTK_GDMA_FWD_CFG(i));
-
- /* setup the forward port to send frame to PDMA */
- val &= ~0xffff;
-
- /* Enable RX checksum */
- val |= MTK_GDMA_ICS_EN | MTK_GDMA_TCS_EN | MTK_GDMA_UCS_EN;
-
- /* setup the mac dma */
- mtk_w32(eth, val, MTK_GDMA_FWD_CFG(i));
- }
-
return 0;
err_disable_pm:
diff -urN a/drivers/net/ethernet/mediatek/mtk_eth_soc.h b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h 2020-04-21 14:33:10.702640743 +0800
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h 2020-04-21 14:33:24.902141220 +0800
@@ -84,6 +84,8 @@
#define MTK_GDMA_ICS_EN BIT(22)
#define MTK_GDMA_TCS_EN BIT(21)
#define MTK_GDMA_UCS_EN BIT(20)
+#define MTK_GDMA_TO_PDMA 0x0
+#define MTK_GDMA_DROP_ALL 0x7777
/* Unicast Filter MAC Address Register - Low */
#define MTK_GDMA_MAC_ADRL(x) (0x508 + (x * 0x1000))

View File

@ -0,0 +1,25 @@
diff -urN a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c 2020-04-21 14:33:05.702816632 +0800
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c 2020-04-21 14:33:19.590328084 +0800
@@ -1345,10 +1345,11 @@
u32 next_cpu = desc->txd2;
int mac = 0;
- desc = mtk_qdma_phys_to_virt(ring, desc->txd2);
if ((desc->txd3 & TX_DMA_OWNER_CPU) == 0)
break;
+ desc = mtk_qdma_phys_to_virt(ring, desc->txd2);
+
tx_buf = mtk_desc_to_tx_buf(ring, desc);
if (tx_buf->flags & MTK_TX_FLAGS_FPORT1)
mac = 1;
@@ -2172,7 +2173,7 @@
if (MTK_HAS_CAPS(eth->soc->caps, MTK_QDMA)) {
mtk_w32(eth,
- MTK_TX_WB_DDONE | MTK_TX_DMA_EN |
+ MTK_TX_DMA_EN |
MTK_DMA_SIZE_16DWORDS | MTK_NDP_CO_PRO |
MTK_RX_DMA_EN | MTK_RX_2B_OFFSET |
MTK_RX_BT_32DWORDS,

View File

@ -22,10 +22,10 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
#include <linux/platform_data/x86/apple.h>
#include <linux/pm_runtime.h>
#include <linux/switchtec.h>
@@ -5497,3 +5498,34 @@ out_disable:
DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_VENDOR_ID_NVIDIA, 0x13b1,
PCI_CLASS_DISPLAY_VGA, 8,
quirk_reset_lenovo_thinkpad_p50_nvgpu);
@@ -5564,3 +5565,34 @@ static void apex_pci_fixup_class(struct
}
DECLARE_PCI_FIXUP_CLASS_HEADER(0x1ac1, 0x089a,
PCI_CLASS_NOT_DEFINED, 8, apex_pci_fixup_class);
+
+#ifdef CONFIG_PCI_HOST_THUNDER_PEM
+/*