wifi-scripts: add default channel to board.json in wifi-detect.uc

Preparation for avoiding iw calls in /lib/wifi/mac80211.sh

Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
Felix Fietkau 2024-06-11 11:34:27 +02:00
parent 33420f039d
commit 31aa61503e

View File

@ -53,6 +53,26 @@ function wiphy_get_entry(phy, path) {
return wlan[phy]; return wlan[phy];
} }
function freq_to_channel(freq) {
if (freq < 1000)
return 0;
if (freq == 2484)
return 14;
if (freq == 5935)
return 2;
if (freq < 2484)
return (freq - 2407) / 5;
if (freq >= 4910 && freq <= 4980)
return (freq - 4000) / 5;
if (freq < 5950)
return (freq - 5000) / 5;
if (freq <= 45000)
return (freq - 5950) / 5;
if (freq >= 58320 && freq <= 70200)
return (freq - 56160) / 2160;
return 0;
}
function wiphy_detect() { function wiphy_detect() {
let phys = nl.request(nl.const.NL80211_CMD_GET_WIPHY, nl.const.NLM_F_DUMP, { split_wiphy_dump: true }); let phys = nl.request(nl.const.NL80211_CMD_GET_WIPHY, nl.const.NLM_F_DUMP, { split_wiphy_dump: true });
if (!phys) if (!phys)
@ -80,8 +100,10 @@ function wiphy_detect() {
band_name = "6G"; band_name = "6G";
else if (freq > 4000) else if (freq > 4000)
band_name = "5G"; band_name = "5G";
else else if (freq > 2000)
band_name = "2G"; band_name = "2G";
else
continue;
bands[band_name] = band_info; bands[band_name] = band_info;
if (band.ht_capa > 0) if (band.ht_capa > 0)
band_info.ht = true; band_info.ht = true;
@ -124,6 +146,16 @@ function wiphy_detect() {
if (he_phy_cap & 0x2) if (he_phy_cap & 0x2)
push(modes, "HE40"); push(modes, "HE40");
for (let freq in band.freqs) {
if (freq.disabled)
continue;
let chan = freq_to_channel(freq.freq);
if (!chan)
continue;
band_info.default_channel = chan;
break;
}
if (band_name == "2G") if (band_name == "2G")
continue; continue;
if (band_info.vht) if (band_info.vht)