When application issues NDP end to terminate an NDP connection,
host driver sends a request to the firmware and firmware
terminates the NDP by sending NDP end frame to the peer.
Currently, driver returns immediately after posting request to
the firmware. Application might issue NDI delete immediately
after returning from NDP_END request.
But firmware might take some time to complete the NDP termination
and send NDP_END indication to driver.
When driver tries to delete the NDI before receiving NDP_END
indication from firmware, it causes inconsistency in firmware as
the NDI on which the NDP is parked is freed.
So, wait till the NDP_END indication comes from
firmware(or timeout happens) before returning from ndp_end request
context.
Change-Id: Ied7ed36451ef007e38f67d48c54290b9dd674f54
CRs-Fixed: 2616018
Add feature flag DROP_RXDMA_DECRYPT_ERR to not process or drop
frames coming with error code as rxdma decrypt error.
Change-Id: I9ca8905c6487051f57a5203e5fe1a530a74a951a
CRs-Fixed: 2617442
Currently there is no inis for NAN component:
1. To configure the keep alive period for the
NDI interface.
2. To enable/disable discovery of NAN cluster with
Master Preference (MP) as 0 when a new device is
enabling NAN.
Add ini support to configure above mentioned values.
Change-Id: I47b67eb89fb8849960a9f492d2909e45b96308f3
CRs-Fixed: 2617839
For ADDROAMSCANCHANNELS command, always append user given channels
into the existing preferred channels list in driver. If the preferred
channel list exceeds SIR_ROAM_MAX_CHANNELS i.e. 80 then overwrite
oldest entries with new channels.
Change-Id: Ifa12b1e4d75dd927bdbceea9a076ed1bcbd91f4f
CRs-Fixed: 2618318
In hdd configure sar index api if the FW supported version is not
SAR_VERSION_2, in that case there is a mem leak issue as the
memory is allocated for sar_command is before the fw sar version
check and in case of fw sar version check failed, memory allocated
for sar command is not freed.
To resolve above issue, move the version check before the memory
allocation for sar command.
Change-Id: I1d5e6bad63134c89ac456c3247eebad79e8f8c79
CRs-Fixed: 2618648
Currently there are unnecessary/duplicate logging. Identify and
reduce those logs that are not necessary.
Change-Id: I648b84786f9009d45e54fa67c21c834a1eae1608
CRs-Fixed: 2617648
This patchset adds the FTM TIME SYNC component in
target_if to register the ftm time sync wmi events/cmds.
Change-Id: I4ea14266a912c9d261a67809556774860b5ddab1
CRs-Fixed: 2617055
Add pld API to get audio timestamp needed in FTM wlan
timesync feature to synchronise the audio clocks of
master and slave devices
Change-Id: I6f08e33904e26728492286f516ce5a8074afd1ea
CRs-Fixed: 2616917
Presently, there is a very narrow race condition that causes
scheduler_thread to remain in a suspended state for undefined period of
time. The race condition occuers between idle_psoc_timeout and
wlan_hdd_cfg80211_resume_wlan.
As a part of idle_psoc_timeout, the driver calls hdd_wlan_stop_modules
that sets the flag "stop_module_in_progress" and checks if driver is in
suspended state. If yes, it resets the flag and returns. But in the case
of a race condition, before this reset and return is carried out,
wlan_hdd_cfg80211_resume_wlan is invoked. The validate_context inside
the resume function fails due to the above mentioned flag being set. As
a result, resume fails and the driver stays in suspended state. This
causes the driver to enter a infinite loop of stop_modules not being
successful.
To close this small window of contention, remove the validate_context
check. hdd_ctx is always guranteed to be valid and also DSC takes
care of synchronizing the operation, thus the check is redundant.
Change-Id: I723f78e4c33bdc531776c46eff2428dbd869493f
CRs-Fixed: 2616177
Currently there are unnecessary/duplicate logging. Identify and
reduce those logs that are not necessary.
Change-Id: I5473db8cf2406aa6aa2f8531cf5a0cc8b7bd2188
CRs-Fixed: 2614121
Currently, wma->peer_macaddr is passed as peer mac address for
NDP peer removal. This gets filled only when PEER_STATS_INFO is
queried from firmware. This is not the right mac address to be
sent for peer removal. Driver might attempt to remove an invalid
peer(or NULL) which leads to assertion in wma_remove_peer.
Get the peer mac address from tpDeleteStaParams which is
sent from lim and pass it to wma_remove_peer.
Change-Id: I90beb7edc1d6ad5790ed972dcb9d3ac42bc04ea7
CRs-Fixed: 2617918
Currently there is no SAR index is configured to the FW
before device goes into suspend mode.
with the new requirement, configure the sleep mode index
as sar power limit to the FW before device goes into
suspend mode and configure safety mode index to the FW
on wakeup.
Change-Id: Icedbab047ec3bb252f0ed9c1b2baf04d2726a60e
CRs-Fixed: 2617102
Currently there are lot of duplicate logging. Identify and
reduce those logs that are not absolutely necessary.
Change-Id: I649ce3bec8c3c8542fe9edd08907da9ab01fa948
CRs-Fixed: 2617504
lim_sta_send_add_bss_pre_assoc, sta_send_add_bss and
wma_send_peer_assoc have duplicate logs.
Also send_peer_assoc_cmd_tlv print all the required info with
flags and other params.
So remove the duplicate logs and keep only missing info in
sta_send_add_bss and wma_send_peer_assoc, which is not printed
anywhere.
Change-Id: Ic5aa63f1a4296553b584bcc768d8c5cb04ddddf3
CRs-Fixed: 2616910
Add support SAR request-response event. When
sar_unsolicited_timer expires driver sends
QCA_NL80211_VENDOR_SUBCMD_GET_SAR_LIMITS_EVENT event to
user space and expects user space to set sar power limits
with the vendor command
QCA_NL80211_VENDOR_SUBCMD_SET_SAR_LIMITS.
Add a request-response event to wait for
QCA_NL80211_VENDOR_SUBCMD_SET_SAR_LIMITS vendor command from
user space. If driver does not get
QCA_NL80211_VENDOR_SUBCMD_SET_SAR_LIMITS command from user space
for a specified number times, driver configures the sar safety
index to the FW.
Change-Id: Ic2b9e0b7fe06093ce849fb46df7bfce5da409ef6
CRs-Fixed: 2615519
Add SAR unsolicited timer to the driver. This timer starts
on every data tx (if not already running) and stops on
command QCA_NL80211_VENDOR_SUBCMD_SET_SAR_LIMITS.
If this timer expires, a vendor event
QCA_NL80211_VENDOR_SUBCMD_GET_SAR_LIMITS_EVENT is sent to the
user space to issue the QCA_NL80211_VENDOR_SUBCMD_SET_SAR_LIMITS
command.
Change-Id: Ic30e5ac606d2b6b0cbc9209174adcd5213eac08e
CRs-Fixed: 2615510
Add SAR safety timer to the driver. This timer starts
when first QCA_NL80211_VENDOR_SUBCMD_SET_SAR_LIMITS
vendor command is recived. This timer gets
reset on every sar set vendor command.
When this timer expires, configure sar safety index to
the FW and restart the timer.
Change-Id: I0536ab88baf962e1bc2aef39478380534e0e1401
CRs-Fixed: 2615442
As part of new requirement add ini configurations
gSarsafetyTimeout, gSarSafetyUnsolicitedTimeout,
gSarSafetyReqResTimeout, gSarSafetyReqResRetry,
gSarSafetyIndex, gSarSafetySleepIndex,
gEnableSarSafety, gConfigSarSafetySleepIndex.
Change-Id: I18df23896b52aa1bbf8e071e27703d4e9e1738f1
CRs-Fixed: 2612843
As per the logic implemented in the FW, it will send a dummy event for
link layer stats in case the buffer allocation fails. In this case,
there can occur a scenario in host wherein we are not properly freeing
the previously allocated memory.
In the event handler wma_unified_link_radio_stats_event_handler, if the
event is dummy, we are updating the value of the num_radios inside
wma_handle->link_layer_results. This num_radios is later used to free
any allocated memory. On setting it to zero, we are preventing that
memfree to occur; leading to a memleak.
To fix this, in case there is a dummy event, first free any possible
previous results before setting the num_radios to be zero.
Change-Id: Ibe4ddf1a137a33130100483cefb004b7dae4ce02
CRs-Fixed: 2610754
The INI param gDot11Mode is used to indicate the support that the driver
should advertise. Currently the behavior of the driver is out of sync
with the mode supported over the air and the mode provided to the
framework.
In one particular case, the driver sends VHT supported as
true to the framework even though the INI gDot11Mode is set to 11n only.
This results in the frames to be transmitted with 11n capabilities while
the mode advertised is different.
To rectify this, check for the dot11 mode before setting the
corresponding supported bit in the wiphy. The value being advertised
should be the intersection of gDot11Mode INI and the driver and
firmware capability.
Change-Id: Ic2f1558c72fc801df9d7ca6b3a0182619b93cf0d
CRs-Fixed: 2612620
Add support to customize DSCP-to-UP map table and send the
customized map values to FW to update its corresponding
map table.
Change-Id: Ibe9704a90468c898dd2e60fdf83a271152f654ce
CRs-Fixed: 2616247
Roaming logs are logging to kmsg, so unused diag log
sending API can be removed.
Remove unused roaming diag logs.
Change-Id: Idd5cfd2ad1f63394cb6b1872512bcc17307a78e6
CRs-Fixed: 2617079