intval = ucv_int64_get(ucv_object_get(info, "oper_chwidth", NULL));
if (errno)
intval = hostapd_get_oper_chwidth(conf);
- if (intval)
- csa.freq_params.bandwidth = 40 << intval;
- else
+ switch (intval) {
+ case CONF_OPER_CHWIDTH_80MHZ:
+ case CONF_OPER_CHWIDTH_80P80MHZ:
+ /* 80+80 uses an 80 MHz primary segment plus center_freq2 */
+ csa.freq_params.bandwidth = 80;
+ break;
+ case CONF_OPER_CHWIDTH_160MHZ:
+ csa.freq_params.bandwidth = 160;
+ break;
+ case CONF_OPER_CHWIDTH_320MHZ:
+ csa.freq_params.bandwidth = 320;
+ break;
+ default:
csa.freq_params.bandwidth = csa.freq_params.sec_channel_offset ? 40 : 20;
+ break;
+ }
if ((intval = ucv_int64_get(ucv_object_get(info, "frequency", NULL))) && !errno)
csa.freq_params.freq = intval;