Propagation from qcacld2.0 to qcacld3.0.
The WMI CMD and EVENT of "get antenna isolation" are already defined,
but not used before in qcacld3.0.
Now, The host driver uses vendor command to get this information
instead of iwpriv command in qcacld-2.0.
The attribution of this feature is already defined in file
"qca_vendor.h". The name is "QCA_WLAN_VENDOR_ATTR_ANTENNA_ISOLATION".
So host driver will use vendor command
"QCA_NL80211_VENDOR_SUBCMD_GET_HW_CAPABILITY" to get the information
from lower layer.
Change-Id: I915768f622ddc9a70a95ce4fe952f19917a8f901
CRs-Fixed: 2447363
DTIM related commands do not have to be sent with WOW sequence as
they are able to be sent from other paths during runtime PM suspend
or resume, hence remove their runtime PM tagging. Besides, also tag
HPLB WMI_HB_SET_ENABLE_CMDID command for runtime PM.
Change-Id: Ib6cc8a9b8296dbba4d9e9017cfa75856cc9a29c9
CRs-fixed: 2469489
Clean up of CONFIG_MCL and optimise memory of peer_assoc_param
structure by use of bit fields instead of bool type
Change-Id: I4b06af69b7fd9af981a250c881d163ddb1f68fa7
CRs-Fixed: 2450763
Add WMI commands:
1) WMI_PDEV_PARAM_SET_MGMT_TTL
Enable/Disable/Set MGMT_TTL in milliseconds.
2) WMI_PDEV_PARAM_SET_PROBE_RESP_TTL
Enable/Disable/Set PROBE_RESP_TTL in milliseconds.
3) WMI_PDEV_PARAM_SET_MU_PPDU_DURATION
Set global MU PPDU duration for DL (usec units)
4) WMI_PDEV_PARAM_SET_TBTT_CTRL.
Set TBTT CTRL value BITS 0 - 2
(refer to WMI_TBTT_CTRL_CFG enum)
Change-Id: Iedda500fdb7bdedcc11fef31f0b29ad3f1812a43
CRs-Fixed: 2415745
Channel RF info contains metrics that signify the throughput
availability of all the supported channels. This information
is sent in as discrete TLVs (per channel) as part of the WMI
extended service ready event.
Each TLV contains the frequency, bandwidth represented and
the actual channel metric.
Add support to read the above-mentioned TLVs from the extended
service ready event
Change-Id: If947e179c1ca41466997cc48840a8d36b6236780
CRs-Fixed: 2441921
Add interface API to send reject ap list to FW,
also add the blacklist manager UMAC, and QDF component
for the same.
Change-Id: I826e537683441762043003d71dc2b79ceebebbcb
CRs-Fixed: 2460770
Clean up of CONFIG_MCL flag and introduce
WMI_INTERFACE_EVENT_LOGGING_DYNAMIC_ALLOC, new speicific-feature
flag for dynamically allocated buffers for debug logging.
Change-Id: Iec4c26faa28400d257332f72dcdf77e18d0fda31
CRs-Fixed: 2450565
Implement the interface to transfer the info between
host driver and firmware about the ap which has interop
issues with the DUT. It is detected by firmware and
forwarded to user sapce for persistent storage. User
space configs these APs to firmware when the DUT
starts up next time.
CRs-Fixed: 2425197
Change-Id: I3857d2a605baa2673af333a7a0412f1690b59769
We have a case in which user context was reading
wmi debugfs entries and then an interrupt context
waits on same lock resulting in deadlock and cpu stall.
Disable bh to prevent cpu stall.
Change-Id: I8e2b443317950b4cf2c8c228a98f638dd165ca2b
Remove one possible reachable assertion in case tainted FW
easily trigger the assert and perform a denial of service.
Change-Id: I913d619ab6268c0a843d93ed35c63c79b96ac488
CRs-Fixed: 2428205
Power related WMI commands need to be tagged for runtime PM so that
they will not invoke runtime PM "get" and can be sent to firmware
without causing a resume right after suspend (WOW_ENABLE WMI command).
Change-Id: If9476ade9adff898847916fcf6bbd05e9c58f5a8
CRs-fixed: 2451973
When NDP v2 support was implemented, event buffer validation check
related to TLV wmi_ndp_channel_info was added. But this check is
breaking legacy NDP confirm path.
To address this, avoid above mentioned check when firmware does not
indicate support for WMI_SERVICE_NDI_DBS_SUPPORT.
Change-Id: Iedd2e0de756111cfeaa94504db36376eee440574
CRs-Fixed: 2427911
While processing WMI_BPF_GET_VDEV_WORK_MEMORY_RESP_EVENTID,
in wma_apf_read_work_memory_event_handler() apf read callback is
invoked after wmi_extract_apf_read_memory_resp_event_tlv().
During extraction of apf attributes there is no NULL check of data
tlv when data length is non-zero. If the firmware message is wrongly
crafted with non-zero length in fixed param and NULL data then NULL
pointer dereference is seen in apf read callback.
To address this, avoid copy when data is NULL and data length is
non-zero.
Change-Id: Ie054c487ead5c929e5a293651a65383d6f87dc71
CRs-Fixed: 2446019
Convert host param id to target param id using arrays
instead of switch case. This enables removal of CONFIG_MCL
compile time macro and use specific macro
ENABLE_HOST_TO_TARGET_CONVERSION for conversions
Change-Id: I223141d47e92521e6600fc0e160ab2deef43d7d2
CRs-Fixed: 2418030
Currently, If invalid pdev_id is passed to
convert_target_pdev_id_to_host_pdev_id it results into Assert.
Fix is to remove QDF_ASSERT(0) in convert_target_pdev_id_to_host_pdev_id.
Return WMI_HOST_PDEV_ID_INVALID if convert_target_pdev_id_to_host_pdev_id
receives invalid pdev id.
Change-Id: Icb6a75c3f3664596fbba4532f5b29ed626ba28f2
CRs-Fixed: 2428787
SAP configured in hidden ssid mode sends probe response to
BC probe requests after force SCC. In send_vdev_start_cmd_tlv,
triggered as part of set_channel on SAP interface, host does not
set the hidden_ssid flag in vdev_restart scenario which results
in the aforementioned behavior.
Fix is to set the hidden ssid flag in vdev_restart scenario
as well for channel switch on SAP interface.
Change-Id: I6c8126f6df05b8794a89690a6fe320be1f02c356
CRs-Fixed: 2442872
The target advertises adaptive 11r service capability over
WMI_SERVICE_ADAPTIVE_11R_ROAM. Enable RSO for adaptive 11r
connection only if firmware advertises this service capability.
Change-Id: Iea78b63d19d1177fe092fc9916ddc5280d00de4b
CRs-Fixed: 2441975
Replace qdf_bug by error log becasue when using wow unit test
framework its very common for higher layer components to send wmi
commands and in this case WMI should fail the request rather than
asserting.
Change-Id: Ie09e4b6014468bcd6b5d75e7f64a78d069855f4f
CRs-Fixed: 2442275
In send_log_supported_evt_cmd_tlv, events_logs_list in
wma handle is freed if previously allocated. If the
num_of_diag_events_logs exceeds the max size, we exit
from the function early without allocating memory for
events_logs_list. This can result in potential double
free scenario if we receive another DIAG_EVENT_LOG_SUPPORTED
event from firmware.
Fix is to set events_logs_list pointer to NULL after
freeing memory.
Change-Id: I9d6148dfc064d87e2947d1b5ec4492c08913dd4c
CRs-Fixed: 2433802
FW assigns the pdev_id to lmac_id mapping for each platform(HK, CYP, etc).
This information is passed on to host via WMI_MAC_PHY_CAPABILITIES tlv.
Instead of hard-coding the mapping again in host, use the info sent by FW.
Change-Id: I01ad81e97a1b4aa1f0fea3951f6e8285a0f0c039
Host driver sends pmk key over psk_msk buffer on the
wmi_roam_11r_offload_tlv_param fixed param.
For SHA 384 based FT AKMs, the xx_key length will be higher than
32 bytes. So new psk_msk_ext array is introduced at interface
to sent the remaining 16 bytes.
Fill the last 16 bytes of xx_key to psk_msk_ext for FT
sha384 based AKMs.
Also add support for FT-SAE, FT-SuiteB and FT-FILS firmware
service capability also. If the firmware doesn't advertise
support for FT-SAE or FT-SuiteB or FT-FILS, firmware roaming to
that AP will not be enabled.
Change-Id: Ibe64fb346a24962e59ca461c3099270d8766adc5
CRs-Fixed: 2400773
Add command support for NAV register update and
configuration of the threshold value.
Change-Id: Idbdb030f75dc98db652e6b53604a3ceaaff1106b
CRs-fixed: 2389803
The below ini values are added to enhance roaming in firmware:
1. "minimum_btm_candidate_score"
2. "roam_scan_inactivity_time"
3. "roam_inactive_data_packet_count"
4. "roam_scan_period_after_inactivity"
5. "btm_roam_score_delta"
6. "idle_roam_score_delta"
7. "btm_roam_trigger_min_rssi"
8. "idle_roam_trigger_min_rssi"
The values of "roam_scan_inactivity_time" ,
"roam_inactive_data_packet_count" and
"roam_scan_period_after_inactivity" will be sent over the
WMI_ROAM_SCAN_PERIOD wmi command.
"minimum_btm_candidate_score" value will be sent in the
WMI_ROAM_BTM_CONFIG_CMDID command.
The values of "btm_roam_score_delta", "idle_roam_score_delta"
"btm_roam_trigger_min_rssi" and "idle_roam_trigger_min_rssi"
will be sent over the WMI_AP_PROFILE command in new tlv.
Add WMI support to send the introduced ini values to
firmware.
Change-Id: I117ed7490d14730423654513f416115822230486
CRs-Fixed: 2435676
To identify the reason for recovery, add parameter
"reason" for qdf_trigger_self_recovery.
And revise comment for qdf_hang_reason, replace "CDS"
with "QDF".
Change-Id: I8b388b5e83dbbdf29246c264ada56290f0dd3bfc
CRs-Fixed: 2431282
Send idle roam trigger monitor command to firmware based on
the SET SUSPEND mode command received from the user space.
The set suspend mode value sent will be used by firmware as
one of the parameters in determining if the device is in
idle state. When set suspend mode is 1, device is not in
idle state else the device is considered idle if idle state
data packet count, idle rssi, inactivity time criteria are met.
Add changes to send the idle trigger monitor value over the
wmi command WMI_IDLE_TRIGGER_MONITOR_CMDID.
Change-Id: I34632814a1e653fa87cfbab90c72ee1622dfd63c
CRs-Fixed: 2436222
Add wmi service bit: wmi_service_sta_plus_sta_support.
When this wmi service bit is set, firmware shall support simultaneous
connections on multiple STA interfaces.
If firmware doesn't set this service bit and if the host driver
doesn't check this bit before second STA connection, then firmware
shall reject connection by returning failure in VDEV_START_RESP_EVENTID.
Change-Id: I9e20911af5372b651586f25d9f13e4364c672435
CRs-Fixed: 2427202
Add support for new wmi command WMI_ROAM_DEAUTH_CONFIG_CMDID to
send disconnect roam trigger parameters and the new wmi command
WMI_ROAM_IDLE_CONFIG_CMDID is used to send the idle roam trigger
parameters.
Update the idle roam and disconnect roam parameters and send them
on the new wmi commands over wmi.
Change-Id: I57acb90266d506d37dcbb58d50ef23fadc439e46
CRs-Fixed: 2431502
Many of the fields in struct add_ts_param use camelCase which is
frowned upon by the Linux coding standard, so rename them to be
compliant.
Note that change I829ad0abb864f0a05047894bab9977d8529074dc
("qcacld-3.0: Align with the refined struct add_ts_param") is
interdependent with this change.
Change-Id: I421b670b86a7e1cecbe5a2686efefbbb6c455267
CRs-Fixed: 2433927
The correct element number of param_tlvs->stats_per_channel_list is
actually param_tlvs->num_stats_per_channel_list and thus the
qdf_mem_copy() can actually copy more bytes than are in the buffer
causing a buffer overread.
Fix it by checking fix_param->num_channels against the actually
param_tlvs->num_stats_per_channel_list before doing memory copy.
Change-Id: I610920ac1d0a927a52de83935616e8e8fdfec7e7
CRs-Fixed: 2428212
Currently capability information and RX multicast broadcast
packet count of the connected peer is not getting
cached.
Add support to cache the capability info from assoc request and
RX multicast broadcast packets from FW.
Change-Id: I105e055b1e440852e8e6b508c25e45f79db2d062
CRs-Fixed: 2409521
If both INI and FW capability is set,
enable capability flag in twt enable command.
Change-Id: I1c070256c4b672b09a1323665fc5a2f166f951fb
CRs-Fixed: 2423718
Currently the key information i.e the key, and the number of keys
are not getting cleared on wifi link disconnection from wifi
driver memory, which can lead to information disclosure.
Clear the key information i.e the number of keys and
keys from wifi driver memory to avoid any potential information
disclore after wifi is turned off.
Change-Id: I2a3ea56d4e876b48dd7a5e456ed7d139600fab01
CRs-Fixed: 2415421
'hecap_info_internal' has been added to indicate support for 11ax
proprietary PHY features: 400ns SGI support in 1X/2X LTF and 2X LTF
support in 160/80+80MHz modes. Added the corresponding peer assoc
and service ready parameter.
Change-Id: I34ead9278d8d84ecbc5525867f1584f8c8a4d7b8
CRs-fixed: 2414163
Add support to get the various Coex data from the debugfs.
This commit adds the support to get the various coex data:
* COEX STATE
* COEX DPWB STATE
* COEX TDM STATE
* COEX IDRX STATE
* COEX ANTENNA SHARING STATE
The specific state information can be read via the debugfs.
Example to read the COEX STATE logging:
sm6150:/ # echo "1" > /d/wlan/mws_coex_status_info
sm6150:/ # cat /d/wlan/mws_coex_status_info
Reading for command MWS_COEX_STATE.
vdev_id = 0
coex_scheme_bitmap = 0
active_conflict_count = 0
potential_conflict_count = 0
chavd_group0_bitmap = 0
chavd_group1_bitmap = 0
chavd_group2_bitmap = 0
chavd_group3_bitmap = 0
Change-Id: I92272ad7edf44df22730ac0fa992d876840ba632
CRs-Fixed: 2413955
Currently, whenever roaming is triggered after a successful roam scan
firmware sends a BTM query to current connected AP when it is 11v
capable. Driver completes roaming with candidates received as part of
BTM request from AP. STA respond to AP with BTM response after
successful initiation of roaming.
Now the requirement is driver could send "BTM query with a preferred
candidate list" after a successful roam scan for some roam scan reasons
like PER, LOW_RSSI, HIGH_RSSI, MAWC, DENSE etc. Preferred candidate list
is obtained as part of roam scan based on firmware bss scoring logic.
New ini "btm_query_bitmask" is introduced to configure the bitmask for
roam scan reasons which is sent to firmware as part of RSO start via
wmi btm config cmd. Fw sends "BTM query with preferred candidate
list" only for those roam scans which are enabled through this bitmask.
New INI: btm_query_bitmask
Min: 0
Max: 0xFFFFFFFF
Default: 0x8
Bitmask : 0x8 (LOW_RSSI) refer enum WMI_ROAM_TRIGGER_REASON_ID.
Add a new parameter "btm_query_bitmask" into wmi btm config
command in order to pass a value of btm_query_bitmask to fw while
BTM offload
Change-Id: I1b0a973bc5b2b50773aa82c7f8cc1dd080d66d86
CRs-Fixed: 2408112
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within wmi replace any such comparisons with logical
operations performed on the pointer itself.
Change-Id: Ida6b1b32330d97392bd879f84929782a64f4fc85
CRs-Fixed: 2418250
Add the necessary support for peer_extd2 stats in the WMI layer. The
stats contain rx_bytes, rx_err and rx_mpdus
Change-Id: I9f787e28a8e128471489c8f47ac03fef77dae930
CRs-Fixed: 2395636
Convert pdev and vdev param conversion array to pointers
and allocate them only if conversion is required.Use run-time
NULL check of pdev and vdev param pointers for conversion
and remove CONFIG_MCL compiler flag.
CRs-Fixed: 2393422
Change-Id: Ica1c81f5f3c3a4b7e31dcb70c63471898c36933d
Add Diag log support for logging cold boot calibration
data sent by firmware via cold boot cal wmi event.
Change-Id: I932fd5f87667498b77ee13ca5b3ce08d6001cdf0
CRs-Fixed: 2413451
Add modules and API's to issue command WMI_NDP_CMDID. This
command, for now, can request Firmware to terminate all NDP's
associated with the given vdev. Add module that extracts
event information from event WMI_NDP_EVENTID. This event acts
as a response to command WMI_NDP_CMDID, and carries NDP
related status information for the host. Extract mac_id from
the updated TLV of NDP confirm and schedule update events.
Add modules and API's to support new NDP command and event.
Change-Id: Ibf6312cb3669b5e62ada3f4ad852be87f14ae09f
CRs-Fixed: 2384535
Allow SSR during driver resume. Assume firmware goes down during driver
is in suspend state. Avoid get into bad state and wmi access during driver
resume.
Change-Id: Ie1689e0b080f940666fbbb19c9f0e3b0fecfe564
CRs-Fixed: 2390031