#
fb01be6d |
|
09-Jul-2022 |
Jilin Yuan <yuanjilin@cdjrlc.com> |
wifi: qtnfmac: fix repeated words in comments Delete the redundant word 'the'. Signed-off-by: Jilin Yuan <yuanjilin@cdjrlc.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20220710041005.10950-1-yuanjilin@cdjrlc.com
|
#
55bb8a2b |
|
07-May-2020 |
Gustavo A. R. Silva <gustavoars@kernel.org> |
qtnfmac: Replace zero-length array with flexible-array The current codebase makes use of the zero-length array language extension to the C90 standard, but the preferred mechanism to declare variable-length types such as these ones is a flexible array member[1][2], introduced in C99: struct foo { int stuff; struct boo array[]; }; By making use of the mechanism above, we will get a compiler warning in case the flexible array does not occur last in the structure, which will help us prevent some kind of undefined behavior bugs from being inadvertently introduced[3] to the codebase from now on. Also, notice that, dynamic memory allocations won't be affected by this change: "Flexible array members have incomplete type, and so the sizeof operator may not be applied. As a quirk of the original implementation of zero-length arrays, sizeof evaluates to zero."[1] sizeof(flexible-array-member) triggers a warning because flexible array members have incomplete type[1]. There are some instances of code in which the sizeof operator is being incorrectly/erroneously applied to zero-length arrays and the result is zero. Such instances may be hiding some bugs. So, this work (flexible-array member conversions) will also help to get completely rid of those sorts of issues. This issue was found with the help of Coccinelle. [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html [2] https://github.com/KSPP/linux/issues/21 [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour") Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org> Reviewed-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Link: https://lore.kernel.org/r/20200507191926.GA15970@embeddedor
|
#
44d09764 |
|
13-Feb-2020 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: support WPA3 OWE in AP mode Enable WPA3 OWE support in AP mode. Driver currently supports cards that offload OWE processing to userspace. This patch adds all the required tools for such offloading. Firmware requests OWE processing sending new UPDATE_OWE event to driver, which uses cfg80211_update_owe_info_event to notify userspace software. After OWE processing is completed, userspace sends calculated IEs to firmware using update_owe_info cfg80211 callback. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
b3860e7a |
|
13-Feb-2020 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: support WPA3 SAE in AP mode Enable WPA3 SAE support in AP mode. Driver currently supports cards that offload SAE authentication to userspace. So allow userspace software to subscribe and to send AUTH frames. Besides, enable AP mode support in external_auth cfg80211 callback. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
501c3be1 |
|
27-Jan-2020 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: drop unnecessary TLVs from scan command Most part of scan command data is always present, so no need to keep it in TLV. Simplify scan command processing moving most part of its parameters into a fixed part of qlink_cmd_scan message. Use fixed dwell time values for normal scan when device is not connected, and allow wireless card decide on dwell times by itself if it's operating as a STA and is connected. When connected, card can select dwell times dynamically based on traffic conditions to get best results. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
5edadc5a |
|
27-Jan-2020 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: update channel switch command to support 6GHz band With an addition of 6GHz band support, channel number can no longer be used to uniquely identify a specific channel. Modify channel switch command to use chandef data. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
8b0b5f1b |
|
27-Jan-2020 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: cleanup alignment in firmware communication protocol Make sure that all elements in QLINK protocol message are aligned to 4 bytes. For this purpose add necessary amount of padding bytes to each message. Besides, add padding for non-aligned variable length fields, e.g. SSID, so that the first byte of the next variable length element is aligned. to 4 bytes. Finally, introduce TLV parsing helpers to reduce boilerplate TLV parsing code. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
0d18a9c0 |
|
27-Jan-2020 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: pass max scan SSIDs limit on per-radio basis Each radio on a given wifi device may have different max scan SSIDs limitation, so take this information from a per-radio info structure. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
601ce21f |
|
27-Jan-2020 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: implement extendable channel survey dump Switch to extendable implementation of channel survey dump to make sure that any new channel statistics can be added in the future without any backwards compatibility issues. For this purpose use a separate variable length bitmap to pass the list of valid statistics in firmware response. Besides, switch to using channel frequency instead of IEEE channel number to prepare for adding support of 6GHz band. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
bc5db734 |
|
27-Jan-2020 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: drop QTN_TLV_ID_NUM_IFACE_COMB TLV type Information about interface combinations is now available in a fixed portion of struct qlink_resp_get_mac_info. Use that information to get interface combinations. TLV type QTN_TLV_ID_NUM_IFACE_COMB is not needed anymore and can be dropped. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
e70cf22b |
|
27-Jan-2020 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: merge PHY_PARAMS_GET into MAC_INFO QLINK_CMD_PHY_PARAMS_GET command does not need to be separate, it can be included into GET_MAC_INFO command. Merge these two commands adding all the missing wiphy data. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
310cd5dd |
|
27-Jan-2020 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: pass hardware capabilities in TLV element To support any number of capabilities bits in the future, replace u32 capabilities bitmask by array. Pass capabilities from firmware using TLV element. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
a3ebb033 |
|
27-Jan-2020 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: use MAJOR.MINOR format for firmware protocol Use MAJOR.MINOR format for QLink firmware protocol. MAJOR part is incremented when backward compatibility is broken. Normally this part should not be incremented unless there is a good reason for that. MINOR part is incremented each time when new features are added to qlink.h, e.g. new TLVs, events, commands. These changes should not break backward compatibility. For instance, older firmware versions may not be able to parse new flags or send new types of events, but this does not impact normal system operations. As part of initialization sequence, driver requests protocol version from firmware and refuses to start in case there is a mismatch in MAJOR part of the version. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
ed7791d9 |
|
09-Jan-2020 |
Mikhail Karpenko <mkarpenko@quantenna.com> |
qtnfmac: add support for TWT responder and spatial reuse Add support for 11ax features: TWT responder and spatial reuse. Add separate structure for spatial reuse parameters and pass this structure to firmware along with other parameters in start_ap command. Pass TWT responder value to firmware. Bump qlink protocol version. Signed-off-by: Mikhail Karpenko <mkarpenko@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
b73f0aac |
|
09-Jan-2020 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: add support for STA HE rates Add HE rates into STA info. Report HE Rx/Tx MCS if STA supports them. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
155b424c |
|
09-Jan-2020 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: add module param to configure DFS offload Firmware may support DFS offload. However the final decision on whether to use it or not should be up to the user. So even if firmware supports DFS offload, it should be enabled only if user explicitly requests it. For this purpose introduce kernel param dfs_offload which is disabled by default. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
be4f00cf |
|
18-Nov-2019 |
Mikhail Karpenko <mkarpenko@quantenna.com> |
qtnfmac: add TLV for extension IEs Extension information elements have additional field for ID. This commit adds TLV for such elements and a structure for interface HE capabilities communication with firmware. Signed-off-by: Mikhail Karpenko <mkarpenko@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
decfc5c7 |
|
18-Nov-2019 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: track broadcast domain of each interface If firmware reports that it supports hardware switch capabilities, driver needs to track and notify device whenever broadcast domain of a particular network device changes (ie. whenever it's upper master device changes). Firmware needs a unique ID to tell broadcast domains from each other which is an opaque number otherwise. For that purpose we can use netspace:ifidx pair to uniquely identify each broadcast domain: - if netdev is not part of a bridge, then use it's own ifidx as a broadcast domain ID - if netdev is part of a bridge, then use bridge netdev ifidx as broadcast domain ID Firmware makes sure that packets are only forwarded between interfaces marked with the same broadcast domain ID. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
0756e913 |
|
13-Nov-2019 |
Mikhail Karpenko <mkarpenko@quantenna.com> |
qtnfmac: add support for getting/setting transmit power Add new command for getting/setting current transmit power and propagate requests from user space to firmware. Signed-off-by: Mikhail Karpenko <mkarpenko@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
239ce8a7 |
|
13-Nov-2019 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: handle MIC failure event from firmware Report MIC failure from firmware to cfg80211 subsystem using dedicated callback cfg80211_michael_mic_failure. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
888f1564 |
|
09-Apr-2019 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: allow to control DFS slave radar detection In ETSI region DFS slave device can operate in two modes on DFS channels: - do on-channel radar detection and use higher Tx power - don't do radar detection and use lower Tx power as a consequence Allow user to control that behavior through qtnfmac module parameter. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
b63967ca |
|
20-Mar-2019 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: use scan duration param for different scan types Use scan duration param for both active and passive scan dwell times. Document what different types of dwell times are used for. Explicitly specify that if unset, automatic selection by device firmware will be used. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
bc70732f |
|
20-Mar-2019 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: send EAPOL frames via control path Use control path to send EAPOL frames to make sure they are sent with higher priority with aggregation disabled. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
438fb43b |
|
20-Mar-2019 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: pass DFS region to firmware on region update Pass DFS region as requested by regulatory core directly to firmware so it can initialize radar detection block accordingly. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
c698bce0 |
|
20-Mar-2019 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: allow each MAC to specify its own regulatory rules Currently driver uses the same regulatory rules to register all wiphy instances. This is not logically correct since each wiphy may have different capabilities (different supported bands, EIRP etc). Allow firmware to pass regulatory rules for each MAC separately. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
a2fbaaf7 |
|
20-Mar-2019 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: include full channels info to regulatory notifier Before regulatory notifier is invoked by a wireless core, it will update band information for the wiphy. Pass this information to firmware together with new region alpha2 code. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
47b08e75 |
|
05-Feb-2019 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: enable WPA3 SAE support In the case of SAE AP, drivers offload authentication to user-space software, e.g. hostapd. For FullMAC drivers the procedure is as follows. If auth_type is SAE and user space indicates external authentication capability, then driver requests authentication offload to user-space software using cfg80211_external_auth_request call. From that point, auth frame exchange is performed transparently for driver: user-space software sends/receives mgmt frames using mgmt_tx/mgmt_frame_register cfg80211 callbacks. As soon as authenitcation is completed, user-space software notifies driver about its status using external_auth cfg80211 callback. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
524d6323 |
|
05-Feb-2019 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: enable WPA3 OWE support In the case of OWE, STA should be able to pass DH IEs from AP assoc responses to wpa_s for processing. For this purpose DH IEs are received from firmware in BSS_JOIN events and passed to wireless core and then to wpa_s as additional optional rsp_ies parameter for cfg80211_connect_result. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
23781af7 |
|
14-Jan-2019 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: add missing bss record to host scan cache Make sure that valid BSS entry exists in wireless core record even in the case of successful connect reported by firmware. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
ff233cb5 |
|
14-Jan-2019 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: convert to SPDX license identifiers Replace textual license with SPDX-License-Identifier. Add an SPDX-License-Identifier for the Makefile. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
9fe504a1 |
|
14-Jan-2019 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: switch to 32bit values for RTS/FRAG thresholds Host wireless stack uses u32 type for RTS/FRAG threshold values. Switch to u32 in driver: pass u32 values to firmware and let firmware properly adapt these values according to its internal representation. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
de624a35 |
|
14-Jan-2019 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: add support for 4addr mode Advertise WIPHY_FLAG_4ADDR_STATION capability to wireless core. Send use4addr interface change flag to firmware in change_virtual_intf cfg80211 callback. In order to enable adding wireless station interface to bridge one should turn on 4addr mode using the following command: $ iw dev wlan0 set 4addr on $ brctl addif br0 wlan0 If this commands succeeds, then interface can be added to bridge. Note that when wireless interface is added to bridge, wpa_supplicant should be started with appropriate -b <brname> parameter, e.g: $ wpa_supplicant -Dnl80211 -iwlan0 -c/path/to/wpa.conf -b br0 Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
126824f5 |
|
14-Jan-2019 |
Andrey Shevchenko <ashevchenko@quantenna.com> |
qtnfmac: support EBUSY errcode for QLINK protocol Add support of EBUSY error code for remote procedures over QLINK protocol. Signed-off-by: Andrey Shevchenko <ashevchenko@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
2525f188 |
|
05-Oct-2018 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: add support for scan dwell time configuration Firmware supports scan dwell time tuning for various types of scans. Enable support for this feature: - advertise capability to configure channel dwell time to host - pass scan dwell parameters to wireless card in scan request Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
6d85930f |
|
05-Oct-2018 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: add support for scan flush Notify firmware to flush cache before scanning when needed. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
92246b12 |
|
05-Oct-2018 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: request userspace to do OBSS scanning if FW can not In case firmware reports that it can not do OBSS scanning for 40MHz 2.4GHz channels itself, tell userpsace to do that instead by setting NL80211_FEATURE_NEED_OBSS_SCAN flag. Signed-off-by: Igor mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
28b91884 |
|
02-Aug-2018 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: implement basic WoWLAN support This patch implements basic WoWLAN support in qtnfmac driver, including processing of WoWLAN features reported by firmware and implementation of cfg80211 suspend/resume/wakeup callbacks. Currently the following WoWLAN triggers are supported: disconnect, magic packet, custom pattern packet. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
8f1180e0 |
|
30-May-2018 |
Andrey Shevchenko <ashevchenko@quantenna.com> |
qtnfmac: enable multiple SSIDs scan support Enable support for multiple SSIDs scans. Get max number of supported SSIDs from firmware and report to cfg80211 core. Signed-off-by: Andrey Shevchenko <ashevchenko@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
4775ad06 |
|
30-May-2018 |
Sergei Maksimenko <smaksimenko@quantenna.com> |
qtnfmac: implement cfg80211 power management callback Implement set_power_mgmt() callback that forwards power saving settings to the device firmware. Signed-off-by: Sergei Maksimenko <smaksimenko@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
6fbef954 |
|
30-May-2018 |
Andrey Shevchenko <ashevchenko@quantenna.com> |
qtnfmac: enable source MAC address randomization support Enable support for source MAC address randomization of probe request frames. Pass addr/mask randomization parameters to firmware. Signed-off-by: Andrey Shevchenko <ashevchenko@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
36e8c538 |
|
29-May-2018 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: decode error codes from firmware replies Introduce a function that will map an error code reported in reply to a firmware command, into one of standard errno codes. Use additional error codes to improve error reporting for MAC address changes. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
fbb93020 |
|
26-Mar-2018 |
Dmitry Lebed <dlebed@quantenna.com> |
qtnfmac: add DFS offload support DFS offload support implemented: - DFS_OFFLOAD feature is advertised depending on HW capabilities - CAC_STARTED event forwarding from HW implemented - start_radar_detection() callback now returning -ENOTSUPP if DFS_OFFLOAD is enabled Signed-off-by: Dmitry Lebed <dlebed@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
537faf26 |
|
22-Jan-2018 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: modify supported interface combinations Update existing code handling configuration of supported interface combinations. Current implementation is not complete since it does not report multiple interface combinations which are incompatible with each other. Instead current implementation packs all the supported combinations into single entry. In fact currently qsr10g wireless card supports the following two distinct interface combinations: 1. STA/repeater: 1 STA and/or 1 AP { { .max = 1, .types = NL80211_IFTYPE_AP}, { .max = 1, .types = NL80211_IFTYPE_STA}, } 2. AP/mBSS { { .max = 8, .types = NL80211_IFTYPE_AP}, } The list of supported configuration is reported by firmware during wireless card bring-up. Communication protocol between firmware and host has been updated accordingly in order to accommodate passing multiple interface combination entries. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
5ec5b532 |
|
22-Jan-2018 |
Vasily Ulyanov <vulyanov@quantenna.com> |
qtnfmac: get more hardware info from card Various bits of hardware and firmware versions are useful for debug and troubleshooting. Get more information from the wireless card. Signed-off-by: Vasily Ulyanov <vulyanov@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
33f98992 |
|
22-Jan-2018 |
Vasily Ulyanov <vulyanov@quantenna.com> |
qtnfmac: remove struct qlink_cmd_set_mac_acl TLV is used to pass ACL data to firmware in start_ap cfg80211 callback. Use the same approach in set_mac_acl cfg80211 callback. Signed-off-by: Vasily Ulyanov <vulyanov@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
f1398fd2 |
|
19-Dec-2017 |
Vasily Ulyanov <vulyanov@quantenna.com> |
qtnfmac: support MAC address based access control This allows a running AP to blacklist STAs by their MAC addresses respecting the configured policy (either accept or deny unless listed). It can be setup on .start_ap or with .set_mac_acl commands. Signed-off-by: Vasily Ulyanov <vulyanov@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
4d2a7a1c |
|
19-Dec-2017 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: modify GET_STA_STATS cmd format for back/forward compatibility A set of per-STA statistics can potentially change quite often. To ensure backwards and forward compatibility, modify GET_STA_STATS command format: - introduce two TLV types - first TLV is a variable-sized bitmap of statistics values that are filled by firmware - second TLV is a structure with statistics itself Only values specified in first TLV are valid. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
9cbd5999 |
|
19-Dec-2017 |
Vasily Ulyanov <vulyanov@quantenna.com> |
qtnfmac: fill wiphy's extended capabilities These are needed to inform userspace about features the hardware supports (e.g. BSS Transition Management 802.11v) Signed-off-by: Vasily Ulyanov <vulyanov@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
fbad963a |
|
19-Dec-2017 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: fix rssi data passed to wireless core Fix RSSI values passed to wireless core by qtnfmac driver: - fix RSSI values in scan results: driver registers wiphy with CFG80211_SIGNAL_TYPE_MBM signal type, so mBm should be passed using DBM_TO_MBM macro - accompany firmware changes fixing RSSI values in received mgmt frames update qlink message format and pass correct signed values to core Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
b05ee456 |
|
19-Dec-2017 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: add support for radar detection and CAC Implement two parts of radar handling logic: - cfg80211 .start_radar_detect callback to allow nl80211 to initiate CAC - radar event to allow wlan device to advertize CAC and radar events Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
5bf374ab |
|
19-Dec-2017 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: pass complete channel data between driver and firmware Center frequency is not enough to describe the channel in HT and VHT modes. For 40MHz and 80MHz channels both primary channel and center frequency should be specified in order to qualify channel completely. This change adds primary channel info into qlink_chandef structure. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
c9889671 |
|
30-Oct-2017 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: pass all CONNECT cmd params to wireless card for processing Specifically, following parameters are needed for wireless device configuration but were not available to it before: - HT/VHT capabilities and capabilities masks. - full channel info (not just IEEE number) - BSSID hint - previous BSSID for reassoc request Move Management Frame Protection setting from common encr info structure into STA-specific .connect command parameters. Make sure that all new qlink structure definitions are alignment-safe. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Reviewed-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
17011da0 |
|
30-Oct-2017 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: configure and start AP interface with a single command Current logic artificially divides "start AP" procedure into three stages: - generic interface configuration (security, channel etc) - IE's processing - enable AP mode on interface This separation would not allow to do a proper device configuration as first stage needs to use information from IEs that are processed on a second stage. Which means first and second stages have to be meged. In that case there is no point anymore to keep third stage either, so merge all three into a single command. This new command carries all the same info as contained in "struct cfg80211_ap_settings". Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
4d1f0fab |
|
30-Oct-2017 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: convert "Append IEs" command to QTN_TLV_ID_IE_SET usage Data contained within "Append IEs" command (QLINK_CMD_MGMT_SET_APPIE) duplicates QTN_TLV_ID_IE_SET TLV. Convert the command to use that TLV instead. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
5face518 |
|
30-Oct-2017 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: SCAN results: retreive frame type information from "IE set" TLV "IE set" TLV carries the same information as qlink_event_scan_result::frame_type. Convert the event to make use of TLV and drop frame_type member. While at it, make qlink_event_scan_result structure alignement-safe. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
18b7470f |
|
30-Oct-2017 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: extend "IE set" TLV to include frame type info Specifying frame type for "IE set" TLV will allow to use several TLVs in a single message. Modify users accordingly. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
d1398b5b |
|
30-Oct-2017 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: get rid of PHYMODE capabilities flags Supported WiFi operation modes are now identified per-band based on HT/VHT capabilities of each band. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
d42df85f |
|
30-Oct-2017 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: initialize HT/VHT caps "can override" masks Information on which HT/VHT capabilities can be overridden is reported per-MAC by wireless device. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
e294cbfd |
|
30-Oct-2017 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: use per-band HT/VHT info from wireless device HT/VHT capabilities must be reported per each band supported by a radio, not for all bands on a radio. Furthermore, driver better not assume any capabilities and just use whetever is reported by device itself. To support this, convert "get channels" command into "get band info" command. Difference is that it may also carry HT/VHT capabilities along with channels information. While at it, also add "num_bitrates" field to "get band info" command, for future use. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
db5c6d4a |
|
30-Oct-2017 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: advertise support of inactivity timeout Wireless device may implement a logic to kick-out STA due to inactivity for a certain period of time. This feature needs to be advertised to higher layers if supported. Timeout value is still taken from parameters to START_AP command, nothing changes here. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
d23d1361 |
|
04-Oct-2017 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: make encryption info a part of CONNECT command. Encryption info is a constant part of STA settings, no point to pass it as an optional TLV. Remove QTN_TLV_ID_CRYPTO type as it's not used anymore. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
f99201cb |
|
04-Oct-2017 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: pass channel definition to WiFi card on START_AP command Introduce "channel definition" TLV containing full channel description (center frequence for both segments + BW) and pass it to wireless card in a payload to START_AP command. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
8b5f4aa7 |
|
04-Oct-2017 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: pass all AP settings to wireless card for processing Modify QLINK START_AP command payload to pass all AP settings contained within struct cfg80211_ap_settings. Make most of settings a constant part of "config AP" command instead of passing it as an optional TLVs. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
9e5478b6 |
|
21-Sep-2017 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: retrieve current channel info from EP Do not try to cache current operational channel info in driver, this is a potential source of synchronization issues + driver does not really need that info. Introduce GET_CHANNEL command and process it appropriately. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
fac7f9bf |
|
21-Sep-2017 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: make "Channel change" event report full channel info Specifically, it has to report center frequency, secondary center frequency (for 80+80) and BW. Introduce channel definition structure to qlink and modify channel change event processing function accordingly. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
77d68147 |
|
21-Sep-2017 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: convert channel width from bitfiled to simple enum This will allow to use qlink channel width values to specify BW setting corresponding to enum nl80211_chan_width. Current user is converted to apply BIT() macro manually to each individual qlink_channel_width enumeration value. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
805b28c0 |
|
27-Jul-2017 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: prepare for AP_VLAN interface type support Modify qlink command structures and interface types handling to prepare adding AP_VLAN support to qtnfmac driver. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Avinash Patil <avinashp@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
41c8fa0c |
|
27-Jul-2017 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: fix handling of iftype mask reported by firmware Firmware sends supported interface type rather than mask. As a result, types field of ieee80211_iface_limit structure may end up having multiple iftype bits set. This leads to WARN_ON from wiphy_verify_combinations. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Avinash Patil <avinashp@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
97883695 |
|
27-Jul-2017 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: implement cfg80211 channel_switch handler This patch implements cfg80211 channel_switch handler enabling CSA channel-switch procedure. Driver performs only basic validation of the requested new channel and then sends command to firmware. Beacon IEs are not sent since beacon update is handled by firmware. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Avinash Patil <avinashp@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
fd19eceb |
|
27-Jul-2017 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: fix station leave reason endianness Use proper endianness conversion for client station leave reason. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Avinash Patil <avinashp@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
27894448 |
|
27-Jul-2017 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: implement reporting current channel Implement current channel reporting functionality. Current operating channel can be obtained either directly using cfg80211 get_channel callback or from stats reported by cfg80211 survey_dump callback. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Avinash Patil <avinashp@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
7c04b439 |
|
27-Jul-2017 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: implement cfg80211 dump_survey handler This patch implements cfg80211 dump_survey handler enabling per-channel survey data reports. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Avinash Patil <avinashp@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
4dd07d2b |
|
27-Jul-2017 |
Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> |
qtnfmac: updates for regulatory support On startup driver obtains regulatory rules from firmware and enables them during wiphy registration. Later on regulatory domain change can be requested by host. In this case firmware is notified about the upcoming changes. If the change is valid, then firmware updates hardware channel configuration and host driver receives updated channel info for each band. Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Avinash Patil <avinashp@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
#
98f44cb0 |
|
11-May-2017 |
Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> |
qtnfmac: introduce new FullMAC driver for Quantenna chipsets This patch adds support for new FullMAC WiFi driver for Quantenna QSR10G chipsets. QSR10G (aka Pearl) is Quantenna's 8x8, 160M, 11ac offering. QSR10G supports 2 simultaneous WMACs - one 5G and one 2G. 5G WMAC supports 160M, 8x8 configuration. FW supports up to 8 concurrent virtual interfaces on each WMAC. Patch introduces 2 new drivers: - qtnfmac.ko for interfacing with kernel wireless core - qtnfmac_pearl_pcie.ko for interfacing with hardware over PCIe interface Signed-off-by: Dmitrii Lebed <dlebed@quantenna.com> Signed-off-by: Sergei Maksimenko <smaksimenko@quantenna.com> Signed-off-by: Sergey Matyukevich <smatyukevich@quantenna.com> Signed-off-by: Bindu Therthala <btherthala@quantenna.com> Signed-off-by: Huizhao Wang <hwang@quantenna.com> Signed-off-by: Kamlesh Rath <krath@quantenna.com> Signed-off-by: Avinash Patil <avinashp@quantenna.com> Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|