mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-27 01:11:14 +00:00
32 lines
530 B
Plaintext
32 lines
530 B
Plaintext
|
#!/bin/sh /etc/rc.common
|
||
|
|
||
|
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
|
||
|
elif grep -q 'processor.*: 1' /proc/cpuinfo; then
|
||
|
mask1=2
|
||
|
mask2=2
|
||
|
else
|
||
|
return
|
||
|
fi
|
||
|
|
||
|
set_irq_affinity mt76x2e $mask1
|
||
|
set_irq_affinity mt7603e $mask2
|
||
|
}
|