From: Michal Kazior Date: Fri, 28 Feb 2014 14:19:42 +0000 (+0100) Subject: ACS: Fix VHT20 X-Git-Tag: hostap_2_2~535 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c3722e1241f75cf05acfaa391f7dee32442c277e;p=thirdparty%2Fhostap.git ACS: Fix VHT20 The center segment0 calculation for VHT20 ACS was incorrect. This caused ACS to fail with: "Could not set channel for kernel driver". Signed-off-by: Michal Kazior --- diff --git a/src/ap/acs.c b/src/ap/acs.c index 3e0155c7a..2491b78fa 100644 --- a/src/ap/acs.c +++ b/src/ap/acs.c @@ -639,23 +639,26 @@ acs_find_ideal_chan(struct hostapd_iface *iface) static void acs_adjust_vht_center_freq(struct hostapd_iface *iface) { + int offset; + wpa_printf(MSG_DEBUG, "ACS: Adjusting VHT center frequency"); switch (iface->conf->vht_oper_chwidth) { case VHT_CHANWIDTH_USE_HT: - iface->conf->vht_oper_centr_freq_seg0_idx = - iface->conf->channel + 2; + offset = 2 * iface->conf->secondary_channel; break; case VHT_CHANWIDTH_80MHZ: - iface->conf->vht_oper_centr_freq_seg0_idx = - iface->conf->channel + 6; + offset = 6; break; default: /* TODO: How can this be calculated? Adjust * acs_find_ideal_chan() */ wpa_printf(MSG_INFO, "ACS: Only VHT20/40/80 is supported now"); - break; + return; } + + iface->conf->vht_oper_centr_freq_seg0_idx = + iface->conf->channel + offset; }