forked from openwrt/openwrt
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
airoha: an7581: backport ETS patch for Airoha ethernet
Backport ETS patch for Airoha ethernet and refresh affected patches. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
- Loading branch information
Showing
2 changed files
with
54 additions
and
1 deletion.
There are no files selected for viewing
53 changes: 53 additions & 0 deletions
53
target/linux/airoha/patches-6.6/039-v6.14-net-airoha-Enforce-ETS-Qdisc-priomap.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
From b56e4d660a9688ff83f5cbdc6e3ea063352d0d79 Mon Sep 17 00:00:00 2001 | ||
From: Lorenzo Bianconi <lorenzo@kernel.org> | ||
Date: Sun, 12 Jan 2025 19:32:45 +0100 | ||
Subject: [PATCH] net: airoha: Enforce ETS Qdisc priomap | ||
|
||
EN7581 SoC supports fixed QoS band priority where WRR queues have lowest | ||
priorities with respect to SP ones. | ||
E.g: WRR0, WRR1, .., WRRm, SP0, SP1, .., SPn | ||
|
||
Enforce ETS Qdisc priomap according to the hw capabilities. | ||
|
||
Suggested-by: Davide Caratti <dcaratti@redhat.com> | ||
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> | ||
Reviewed-by: Davide Caratti <dcaratti@redhat.com> | ||
Link: https://patch.msgid.link/20250112-airoha_ets_priomap-v1-1-fb616de159ba@kernel.org | ||
Signed-off-by: Jakub Kicinski <kuba@kernel.org> | ||
--- | ||
drivers/net/ethernet/mediatek/airoha_eth.c | 17 +++++++++++++++-- | ||
1 file changed, 15 insertions(+), 2 deletions(-) | ||
|
||
--- a/drivers/net/ethernet/mediatek/airoha_eth.c | ||
+++ b/drivers/net/ethernet/mediatek/airoha_eth.c | ||
@@ -2786,7 +2786,7 @@ static int airoha_qdma_set_tx_ets_sched( | ||
struct tc_ets_qopt_offload_replace_params *p = &opt->replace_params; | ||
enum tx_sched_mode mode = TC_SCH_SP; | ||
u16 w[AIROHA_NUM_QOS_QUEUES] = {}; | ||
- int i, nstrict = 0; | ||
+ int i, nstrict = 0, nwrr, qidx; | ||
|
||
if (p->bands > AIROHA_NUM_QOS_QUEUES) | ||
return -EINVAL; | ||
@@ -2800,7 +2800,20 @@ static int airoha_qdma_set_tx_ets_sched( | ||
if (nstrict == AIROHA_NUM_QOS_QUEUES - 1) | ||
return -EINVAL; | ||
|
||
- for (i = 0; i < p->bands - nstrict; i++) | ||
+ /* EN7581 SoC supports fixed QoS band priority where WRR queues have | ||
+ * lowest priorities with respect to SP ones. | ||
+ * e.g: WRR0, WRR1, .., WRRm, SP0, SP1, .., SPn | ||
+ */ | ||
+ nwrr = p->bands - nstrict; | ||
+ qidx = nstrict && nwrr ? nstrict : 0; | ||
+ for (i = 1; i <= p->bands; i++) { | ||
+ if (p->priomap[i % AIROHA_NUM_QOS_QUEUES] != qidx) | ||
+ return -EINVAL; | ||
+ | ||
+ qidx = i == nwrr ? 0 : qidx + 1; | ||
+ } | ||
+ | ||
+ for (i = 0; i < nwrr; i++) | ||
w[i] = p->weights[nstrict + i]; | ||
|
||
if (!nstrict) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters