https://android.googlesource.com/platform/external/wpa_supplicant_8/+/master/src/drivers/driver_nl80211.c
- /* crude heuristic */
- if (mode->channels[idx].freq < 4000)
- if (mode->channels[idx].freq == 2484)
- mode->channels[idx].chan = 14;
- else
- mode->channels[idx].chan = (mode->channels[idx].freq - 2407) / 5;
- else
- mode->channels[idx].chan = mode->channels[idx].freq/5 - 1000;
this code should implement 4.9G support, if my wifi driver register 184 channel support, driver_nl80211.c will get negative channel,because of (4920/5) - 1000 = -16, i think this code should implement as following:
else if (mode->channel[idx].freq < 4999)
{
/* handle 4.9G */
/* 4920 -> 184 channel, 4940 -> 188 channel, 4960 -> 192 channel, 4980 -> 196 channel */
mode->channels[idx].chan = (mode->channels[idx].freq - 4000)/5;
}
else
{ /* handle 5G */
mode->channels[idx].chan = mode->channels[idx].freq/5 - 1000;
}