summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDENG Qingfang <dengqf6@mail2.sysu.edu.cn>2020-06-04 12:00:44 +0800
committerPetr Štetiar <ynezz@true.cz>2020-07-11 15:15:04 +0200
commit23de93a5216bf1c24c4e4c71f6cad4455c3cfa2c (patch)
tree78f62ba431f81d954ccc18c71ddf72d24198a9b6
parentff8b8fee890dae345d6a5189a8633214f6a4da3a (diff)
downloadopenwrt-23de93a5216bf1c24c4e4c71f6cad4455c3cfa2c.tar.gz
openwrt-23de93a5216bf1c24c4e4c71f6cad4455c3cfa2c.tar.bz2
openwrt-23de93a5216bf1c24c4e4c71f6cad4455c3cfa2c.zip
ramips: mt7621: refactor set affinity script
The current one only looks for mt76x2e and mt7603e, and does not work for 2 or more same Wi-Fi chips. Refactor the script to cover those cases. Signed-off-by: DENG Qingfang <dengqf6@mail2.sysu.edu.cn>
-rwxr-xr-xtarget/linux/ramips/mt7621/base-files/etc/init.d/set-irq-affinity26
1 files changed, 7 insertions, 19 deletions
diff --git a/target/linux/ramips/mt7621/base-files/etc/init.d/set-irq-affinity b/target/linux/ramips/mt7621/base-files/etc/init.d/set-irq-affinity
index 9a3afefa5a..c118d928a7 100755
--- a/target/linux/ramips/mt7621/base-files/etc/init.d/set-irq-affinity
+++ b/target/linux/ramips/mt7621/base-files/etc/init.d/set-irq-affinity
@@ -2,30 +2,18 @@
START=99
-get_irq() {
- local name="$1"
- grep -m 1 "$name" /proc/interrupts | cut -d: -f1 | sed 's, *,,'
-}
-
-set_irq_affinity() {
- local name="$1"
- local val="$2"
- local irq="$(get_irq "$name")"
- [ -n "$irq" ] || return
- echo "$val" > "/proc/irq/$irq/smp_affinity"
-}
-
start() {
if grep -q 'processor.*: 2' /proc/cpuinfo; then
- mask1=4
- mask2=8
+ mask=4
elif grep -q 'processor.*: 1' /proc/cpuinfo; then
- mask1=2
- mask2=2
+ mask=2
else
return
fi
- set_irq_affinity mt76x2e $mask1
- set_irq_affinity mt7603e $mask2
+ for irq in $(grep "mt76..e" /proc/interrupts | cut -d: -f1 | sed 's, *,,')
+ do
+ echo "$mask" > "/proc/irq/$irq/smp_affinity"
+ [ $mask = 4 ] && mask=8
+ done
}