Commit Graph

34 Commits

Author SHA1 Message Date
DENG Qingfang
24cfe6f009
ramips: mt7530 swconfig: fix race condition in register access
[ Upstream commit f99c9cd9c4 ]

The mt7530_{r,w}32 operation over MDIO uses 3 mdiobus operations and
does not hold a lock, which causes a race condition when multiple
threads try to access a register, they may get unexpected results.

To avoid this, handle the MDIO lock manually, and use the unlocked
__mdiobus_{read,write} in the critical section.

This fixes the "Ghost VLAN" artifact[1] in MT7530/7621 when the VLAN
operation and the swconfig LED link status poll race between each other.

[1] https://forum.openwrt.org/t/mysterious-vlan-ids-on-mt7621-device/64495

Signed-off-by: DENG Qingfang <dqfext@gmail.com>
(cherry picked from commit f99c9cd9c4)
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2021-05-03 17:30:06 +08:00
AmadeusGhost
fad6849f47 Revert "ramips: mt7530 swconfig: fix race condition in register access"
This reverts commit a5b9ff72cf. Fix: #359
2021-04-18 23:55:20 +08:00
DENG Qingfang
a5b9ff72cf ramips: mt7530 swconfig: fix race condition in register access
The mt7530_{r,w}32 operation over MDIO uses 3 mdiobus operations and
does not hold a lock, which causes a race condition when multiple
threads try to access a register, they may get unexpected results.

To avoid this, handle the MDIO lock manually, and use the unlocked
__mdiobus_{read,write} in the critical section.

This fixes the "Ghost VLAN" artifact[1] in MT7530/7621 when the VLAN
operation and the swconfig LED link status poll race between each other.

[1] https://forum.openwrt.org/t/mysterious-vlan-ids-on-mt7621-device/64495

Signed-off-by: DENG Qingfang <dqfext@gmail.com>
2021-04-15 23:18:31 +08:00
Baptiste Jonglez
a5a9fbbdc3
ramips: ethernet: Disable TSO support to improve stability
Stability of this Ethernet driver has been a long-standing issue, with
many people reporting frequent "transmit queue timeouts" and even
occasional crashes.

Disabling TSO in the driver helps with stability, although it is likely a
workaround and might not fix the issue completely.

There is a slight slowdown in forwarding performance for TCP packets
(75 kpps vs. 80 kpps with comparable CPU utilization), but this is still
enough to forward close to 1 Gbit/s of full-sized packets across multiple
flows.

Master is using a different ethernet driver, so this is not a backport.
Because of this different driver, the upcoming 21.02 release does not seem
to be affected by these stability issues.

Thanks to mrakotiq for the initial patch.

Fixes: FS#2628
Signed-off-by: Baptiste Jonglez <git@bitsofnetworks.org>
Signed-off-by: Tianling Shen <cnsztl@project-openwrt.eu.org>
2021-02-16 14:17:20 +08:00
Jo-Philipp Wich
759b1497ca
Revert "ramips: ethernet: fix to interrupt handling"
This reverts commit 7ac454014a.

The change reportedly causes regressions in ethernet performance.

Fixes: FS#3332
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2020-09-24 23:23:41 +08:00
NeilBrown
e2fe53f6e7 ramips: ethernet: fix to interrupt handling
The current code acknowledged interrupts *after* polling.
This is the wrong way around, and could cause an interrupt to
be missed.
This is not likely to be fatal as another packet, and so another
interrupt, should come along soon.  But maybe it is causing
problems, so let's fix it anyway.

Signed-off-by: NeilBrown <neil@brown.name>
(Note that this matches the upstream driver.)
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-09-08 17:36:35 +08:00
z826540272
fb6ab3dc56
MT7621 disable switch EEE (#3963)
* revert: ramips: gsw_mt7621: disable PORT 5 MAC RX/TX flow control

revert: ramips: gsw_mt7621: disable PORT 5 MAC RX/TX flow control by default
This revert c8f8e59
The TX/RX flow control is not the cause of the TX timeouts issue

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>

* ramips: net/mediatek fix logical error

ramips: net/mediatek fix logical error

fe_empty_txd() should return `tx_ring_size - 1` on ring empty, and
return 0 on ring full.

* ramips: net/mediatek disable eee

ramips: net/mediatek disable eee

This disable eee for mt7530 ports, it causes the link down/up
issue, which happens when connecting to 100Mbit switch

Fixes: FS#1449

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
2020-03-23 18:14:35 +08:00
lean
ed0e83ee6c ramips: mt7530: Implement set_port_link 2020-03-19 22:58:39 +08:00
lean
3d3a95e5b4 ramips: update mt7530 switch settings 2020-03-17 02:03:47 +08:00
AmadeusGhost
f98ac45a63
ramips: fix mmc driver (#3285)
Since commit f8c55dc ("MIPS: use generic dma noncoherent ops for
simple noncoherent platforms") changed MIPS dma handling, the mmc
driver fails because it doesn't have a dma mask is set.

So set the correct dma mask.

Signed-off-by: NeilBrown <neil@brown.name>
Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>

Co-authored-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
2020-02-24 20:26:25 +08:00
AmadeusGhost
d268405cb9
ramips: sync source code (#3260)
This commit sync ramips source code from openwrt master.

1. ramips: gsw_mt7621: disable PORT 5 MAC RX/TX flow control by default
2. ramips: allow to set switchdev by board in ramips_set_preinit_iface
3. kernel: fix typos in KernelPackage description
2020-02-22 12:39:52 +08:00
AmadeusGhost
bf55ff68c7
ramips: sync from openwrt v19.07 (#2938)
This commit sync ramips from openwrt master, and revert use caldata.sh
so that wireless for some devices can works.
2020-02-05 23:47:49 +08:00
LEAN-ESX
7ea08e97fe ramips: mt7621: add support for Netgear R6800 2019-12-13 08:25:54 -08:00
LEAN-ESX
6a4cddf7c2 target: sync with OpenWrt 19.07-rc2 2019-12-07 20:13:33 -08:00
LEAN-ESX
5d51ba13ef ramips: delete MTK 762x support 2019-12-07 07:51:55 -08:00
LEAN-ESX
c46095fd92 merge upstream flow offload patch 2019-09-26 05:40:29 -07:00
coolsnowwolf
c1c24e78b9 ramips: add MT7530 switch port-mirroring support 2019-04-25 01:17:59 +08:00
coolsnowwolf
f2966113d1 ramips: fix vlan retag on mt7621 2019-04-18 10:27:33 +08:00
coolsnowwolf
8db5e2cc02 ramips: update upsteam patch 2019-04-15 22:15:19 +08:00
coolsnowwolf
1933bc8bfa Revert "ramips: sync with upsteam target"
This reverts commit 9cd0dc0dc9.
2019-04-15 22:12:35 +08:00
coolsnowwolf
9cd0dc0dc9 ramips: sync with upsteam target 2019-04-15 15:58:00 +08:00
coolsnowwolf
031c8521c8 ramips: implement vlan rx offload on MT7621 2019-04-04 11:43:42 +08:00
coolsnowwolf
900fbaf8a5 x86:add kernel 4.19 support 2019-01-11 11:21:06 +08:00
coolsnowwolf
6e9299a6b3 ramips: add support for more model 2018-11-28 18:40:04 +08:00
coolsnowwolf
6906aa263a fix ramips mtk762x mmc/host/mtk-mmc/Kconfig drivers support 2018-10-21 18:12:38 +08:00
coolsnowwolf
51a3526595 drop ramips kenerl 4.9 support 2018-10-20 21:11:15 +08:00
coolsnowwolf
806f5db174 sync with OpenWrt trunk 2018-09-07 13:43:55 +08:00
coolsnowwolf
9ba04fd0d7 sync with OpenWrt v18.06.1 stable new R8.1 version 2018-08-23 17:40:23 +08:00
coolsnowwolf
fc170dfd79 update ramips target in 4.14 2018-06-15 00:17:33 +08:00
coolsnowwolf
2b27fd97d7 fresh kernel 4.14 patch 2018-06-15 00:15:46 +08:00
coolsnowwolf
ef299a8ec1 update MTK 7621 patchs 2018-06-04 16:01:52 +08:00
coolsnowwolf
e985e89cae update linux target patch 2018-05-22 18:44:30 +08:00
coolsnowwolf
8fe0636b8a Merge branch 'master' of github.com:lede-project/source 2018-04-23 18:50:49 +08:00
coolsnowwolf
accfddd339 switch ramips to kernel 4.14 2018-04-08 17:57:18 +08:00