From: Igor Mitsyanko <igor.mitsyanko.os@xxxxxxxxxxxxx> This patchset has a goal to make operational parameters (channel, BW, HT/VHT capabilities) configuration possible for qtnfmac driver. Basically the idea is to make driver level as thin as possible, and let everything to be handled by userspace/nl80211 and wireless device itself. Tested by trying various parameters combinations in hostapd.conf. Set channel=36, bw=20, HT=0, VHT=0: hw_mode=a channel=36 Set channel=36, bw=20, HT=1, VHT=0: ieee80211n=1 Set channel=36, bw=40 with secondary channel above, HT=1, VHT=0: ieee80211n=1 ht_capab=[HT40+][SHORT-GI-20][SHORT-GI-40][MAX-AMSDU-7935] Set channel=36, bw=40 with secondary channel below, HT=1, VHT=0: channel=40 ieee80211n=1 ht_capab=[HT40-][SHORT-GI-20][SHORT-GI-40][MAX-AMSDU-7935] Set channel=36, bw=40, HT=1, VHT=1: ieee80211n=1 ht_capab=[HT40+][SHORT-GI-20][SHORT-GI-40][MAX-AMSDU-7935] ieee80211ac=1 vht_capab=[SHORT-GI-80][MAX-MPDU-11454][MAX-A-MPDU-LEN-EXP-7][SU-BEAMFORMER][SU-BEAMFORMEE] vht_oper_chwidth=0 Set channel=36, bw=80, HT=1, VHT=1: ieee80211ac=1 vht_capab=[SHORT-GI-80][MAX-MPDU-11454][MAX-A-MPDU-LEN-EXP-7][SU-BEAMFORMER][SU-BEAMFORMEE] vht_oper_chwidth=1 vht_oper_centr_freq_seg0_idx=42 Igor Mitsyanko (27): qtnfmac: qlink: convert channel width from bitfiled to simple enum qtnfmac: make "Channel change" event report full channel info qtnfmac: retreive current channel info from EP qtnfmac: do not cache AP settings in driver structures qtnfmac: pass all AP settings to wireless card for processing qtnfmac: pass full channel definition to device on start_ap command qtnfmac: get rid of QTNF_STATE_AP_CONFIG qtnfmac: get rid of QTNF_STATE_AP_START usage qtnfmac: do not cache BSS state in per-VIF structure qtnfmac: do not cache channel info from "connect" command qtnfmac: make encryption info a part of "connect" command. qtnfmac: let wifi card handle channel switch request to the same chan qtnfmac: pass VIF info to SendChannel command qtnfmac: do not cache CSA chandef info qtnfmac: remove unused mac::status field qtnfmac: stop using private driver info about current channel qtnfmac: do not report channel changes until wiphy is registered qtnfmac: use per-band HT/VHT info from wireless device qtnfmac: initialize HT/VHT caps "can override" masks qtnfmac: get rid of PHYMODE capabilities flags qtnfmac: extend "IE set" TLV to include frame type info qtnfmac: SCAN results: retreive frame type information from "IE set" TLV qtnfmac: convert "Append IEs" command to QTN_TLV_ID_IE_SET usage qtnfmac: configure and start AP interface with a single command nl80211: look for HT/VHT capabilities in beacon's tail qtnfmac: include HTCAP and VHTCAP into config AP command qtnfmac: pass all CONNECT cmd params to wireless card for processing drivers/net/wireless/quantenna/qtnfmac/cfg80211.c | 234 ++-------- drivers/net/wireless/quantenna/qtnfmac/commands.c | 470 ++++++++++++++------- drivers/net/wireless/quantenna/qtnfmac/commands.h | 11 +- drivers/net/wireless/quantenna/qtnfmac/core.c | 3 +- drivers/net/wireless/quantenna/qtnfmac/core.h | 35 +- drivers/net/wireless/quantenna/qtnfmac/event.c | 134 +++--- drivers/net/wireless/quantenna/qtnfmac/qlink.h | 265 ++++++++---- .../net/wireless/quantenna/qtnfmac/qlink_util.c | 113 ++++- .../net/wireless/quantenna/qtnfmac/qlink_util.h | 7 + net/wireless/nl80211.c | 4 +- 10 files changed, 709 insertions(+), 567 deletions(-) -- 2.9.5