PM suspend and FW interrupt handler is running at same time
which is leading to multiple race conditions and host is missing
FW wake up interrupt which is causing APPS not waking up reliably.
Define .suspend_noirq and .resume_noirq callbacks and make
sure there is no pending FW interrupt before allowing PM
suspend to complete. Kernel PM suspend framework gives guarantee
that suspend_noirq and device interrupt handler can't run
simultaneously. This helps WLAN driver to reliably detect FW
wake up interrupt during PM suspend and fail PM suspend gracefully
if FW has requested for initial wake up.
Change-Id: I9e55f58aee29017fe09efeb5231b8be23053f7b7
CRs-Fixed: 1060748
Country code comparison result is checked against true value,
but the comparison result is non-zero if the country code is
valid, hence checking the result against true fails and do
not set the country code.
Correct the conditional logic to check if the given country
valid or not.
Change-Id: Id893cfec8571939e4e455fa35ea95310f4c77263
CRs-Fixed: 1060242
If AP's channel width is greater than 80MHz and
AP supports Nss > 1 in 160MHz mode then connect the
STA in 2x2 80MHz mode instead of connecting in 160MHz
mode.
Change-Id: Icf179b34603397642f517944e45714d830f909e7
CRs-Fixed: 1059532
qcacld-2.0 to qcacld-3.0 propagation
As per the current logic during start bss failure scenario
SAP/GO session is not closed resulting in vdev leakage.
Due to above leakage new interface creation with same MAC
address results in target assert.
Make change to cleanup SAP/GO session on start bss failure.
Change-Id: I785b4486f439646e2119adc87895ed95c6b80de6
CRs-Fixed: 954601
Register suspend_noirq/resume_noirq callbacks to kernel. It will
make sure no wake up is pending from FW and if initial wake up is
received then failing it should trigger resume.
CRs-Fixed: 1060669
Change-Id: Ifce8edc5db8c0410c5cddd24aceb88675f8ced42
WLAN HDD IPA logging is enabled by default, due to this
cnss deamon is spending a lot time in big cluster and
resulting in less cpu quantum for rx processing. Move IPA
data path logs to HDD_DATA module ID from HDD module ID.
Propagation from qcacld-2.0 to qcacld-3.0.
Change-Id: Ied13b8655d9e2831fb097156c8fb72239b443f94
CRs-Fixed: 1031987
qcacld-2.0 to qcacld-3.0 propagation
Currently, we are not waiting for tdls_mgmt_comp since supplicant doesn't
consider return status but if discvery request/response are sent and
mgmtTxCompletionStatus is not set to return status from FW then next
consecutive TDLS request's from supplicant are denied which will lead
to TDLS connection failure.
Fix is to wait for tdls_mgmt_comp for TDLS discover request/response and
then return success/failure status to supplicant.
Change-Id: I5e825b615095231412f3a82367babaa89e1ab5b3
CRs-Fixed: 973947
qcacld-2.0 to qcacld-3.0 propagation
During WPS registration process the psession encryption type is 0.
Now if AP's beacon have RSN IE, while processing beacons security
mismatch is detected and DUT sends unicast probe request without
WPS IE.
To avoid this ignore security mismatch during WPS registration.
Change-Id: Ic1b4de116ec6a99749ec3d8ba28b29d52190c344
CRs-Fixed: 967553
qcacld-2.0 to qcacld-3.0 propagation
After connection, driver process beacon to detect any change in
AP's capabilities. Currently if privacy bit is set in beacon and
if rsn or wpa bit is not set, driver issues disconnect command.
In case of HS2.0, all security capabilities are part of vendor
specific information. Hence, both wpa and rsn bit is 0, though
privacy bit is set. Since driver considers it as a change in AP
security params, it issues disconnect. As a part of fix, make sure
that for OSEN capabilities disconnect is not issued.
Change-Id: I800bea0448256f663f61bccf6b0ec6b0f71d824b
CRs-Fixed: 796397
Ensure that the channel state is checked to see if it is a DFS
channel before stopping the transmission on the interface. Currently,
on radar detection, transmission is getting stopped for all the
SAP/P2P-GO interfaces. This affects SAP+SAP case where one SAP is on
a DFS channel and the other SAP is on a non-DFS channel. On radar
detection, the transmission is getting stopped for both the SAP
interfaces. But, the transmission should be stopped only for the
interface that is operating on DFS channel. Fix the same by checking
the channel state before stopping the transmissions.
Change-Id: I564980534bc0d943db8da300439e1d072715f462
CRs-Fixed: 1061559
When inactivity timer on the interface's expires it closes all the
cds modules, when rmmod is given after the modules are closed hif_ctx
will be null. There is a invalid check during the driver remove for
valid hif_ctx which is blocking from the proper cleanup of the driver.
Since hif_ctx is not used any more during the driver remove function.
Remove hif_ctx validation during the driver unload.
Change-Id: I32dce7a0b503cc4fe028d4e5992402fe7b4886a7
CRs-Fixed: 1060810
In qcacld-3.0 HDD has converged on a core set of service level logging
APIs. However hddlog() extensively used in wlan_hdd_tdls.c file.
Replace hddlog instances with corresponding hdd_* api's.
Change-Id: I3fde4c08488a395c974508b54b21f7e92bfc0a4a
CRs-Fixed: 937688
Fix the address compare operation that is used for defragmentation.
Also add hook to release the debug qdf node.
Change-Id: I782e0234d5b61bb118578788947aa8b13e8e189c
CRs-Fixed: 1059538
Get channel width from supplicant and update channel params in
pRoamProfile so that IBSS can be configure in VHT channel width
and rates from supplicant.
Change-Id: Iffd3b7160ec2c6c5343bd26144d47afbbbd87ccd
CRs-Fixed: 1051254
In case of dynamic mode driver load/unload, a timer is started
whenever driver is loaded. If some iface don't come up in certain
amount of time, this timer expires resulting in cleanup of hif_softc
structure. This structure has LRO flush callback stored in it which
also gets removed as part of cleanup. As this callback is stored only
at the time of driver load, this cause a break in LRO functionality
and also an assert in HOST driver as driver is trying to remove the
callback at the time of driver unload which has already been removed
at the time of timer expiration.
Do LRO enable and disable at the time of ifconfig up and ifconfig
down. This ensures that even after the modules are cleaned when
timer expires, the callback is registered again at the time of
ifconfig up.
Change-Id: I91116d4ff4fe8f24671f63b2c73759fe9e088172
CRs-Fixed: 1059720
Currently, for BPF wakeup reason, there is no log statistics.
Add BPF wakeup reason stats.
Change-Id: I469370fc576b83c8118bb73a5679d0f529555047
CRs-Fixed: 1060615
qcacld-2.0 to qcacld-3.0 propagation
Before sending the unsafe channel list to the application, first
update the platform driver so that other driver who is reading
the channel list from platform driver will get the correct channel
list.
Change-Id: I72421f80e1e354039eee2fc87b5f988592e33c9c
CRs-Fixed: 998048
qcacld-2.0 to qcacld-3.0 propagation
Currently the max value supported for ini gEGAPWaitTime is 5000.
Changing this value to 300000 (5 min).
Change-Id: I93c57fbf2bb9ba2d8a9d02290e95b8fe3d996968
CRs-Fixed: 971446
qcacld-2.0 to qcacld-3.0 propagation
Currently there are many logs which adds new line
explicitly. As part of logging enhancement, remove
such extra space lines.
Change-Id: Idee9ff6a2e0452991f7d50a986c26f36303defd1
CRs-Fixed: 974415
qcacld-2.0 to qcacld-3.0 propagation
IEEE P802.11-REVmc require VHT TX POWER ENVELOPE IE in the beacons.
Extract VHT TX POWER ENVELOPE IE from hostapd beacon template
passed through start/change cfg80211 API and include it in driver
beacon template.
Change-Id: I8ef00ebbd44e71219d47f5a8cec6496e78cb7c66
CRs-Fixed: 984779
qcacld-2.0 to qcacld-3.0 propagation
In some case when complete preferred channel list is unsafe,
SAP won't be able to pick any channel as operating channel.
This will lead to SAP start failure.
Fix this issue by making first channel from preferred channel
list as operating channel.
Change-Id: Id2bd177b15bd7089250a49019a9c751a691dac01
CRs-Fixed: 1026420
qcacld-2.0 to qcacld-3.0 propagation
In lim_process_mlm_deauth_ind API , peerMacAddr is used to
search the session. For AP mode we cannot get the session
based on peer mac address. Because of this there is false
error print to kmsg .
Fix is to call lim_process_mlm_deauth_ind API only for STA
mode as for SAP mode there is no functionality in this API.
Change-Id: I2043b1e35e93b049ca1b73dae702a257780b2d0f
CRs-Fixed: 1056746
qcacld-2.0 to qcacld-3.0 propagation
Curretly driver doesn't add ext IE in unicast probe request which
it gets from supplicant.
Add the changes to add ext IEs in unicast probe request and
assoc request.
CRs-Fixed: 977188
Change-Id: Idacfa287d17a2409f054421229d04ff087aa28d8
qcacld-2.0 to qcacld-3.0 propagation
SoftAP should check gEnableVhtFor24GHzBand ini variable before
enabling vht mode in 2.4Ghz mode.
Added changes to turn off vht mode if gEnableVhtFor24GHzBand is
disabled for 2.4Ghz.
Change-Id: I135e5449f95342a98abfa0b9cd5b1849a84c5c4c
CRs-Fixed: 988240
qcacld-2.0 to qcacld-3.0 propagation
DUT sends continuous GO Negotiation Response for the request
while ROC is in progress. These frames increase timeout of
cancel ROC timer and ROC is not removed from the active timout.
This can cause ROC to be in active cmd list even after current
timeout value.
Add changes to return from active timeout handler in case of ROC.
Change-Id: I58577b5d2addf7614d8ee458df0ce4632dafa7c0
CRs-Fixed: 990808
qcacld-2.0 to qcacld-3.0 propagation
Memory allocated for dfs filters in dfs_attach() API
does not get freed in failure case.
Add changes to fix memory leak issue.
Change-Id: Icdd4a382685471c0d3cf8115cec30fcb307eedfb
CRs-Fixed: 1038603
qcacld-2.0 to qcacld-3.0 propagation
It may be possible to have random data in re_flag which may
cause extra processing of the phy error in case of dfs event.
Add change to initialize re_flag variable with zero.
Change-Id: I1f38bed9471de60cb32da3ac31eb1e08011c2074
CRs-Fixed: 1028556
qcacld-2.0 to qcacld-3.0 propagation
Currently few MTRACE logs are logged repetitively which leads to
overwriting of other important MTRACE logs.
To avoid this,
1. Remove MTRACE logs which are seen repetitively in scan,
connect/disconnect path and few timer functions.
2. Remove MTRACE log in lim_process_mlm_req_messages() and
lim_process_sme_req_messages() as few enums already logged in
lim_process_messages().
Add MTRACE log in lim_post_mlm_message() and lim_post_sme_message() for
the rest of enums which are not logged in lim_process_messages()
Change-Id: I1478f3e9ab8fb57d8b8b2f65cf2eb3450eb7b64c
CRs-Fixed: 855840
qcacld-2.0 to qcacld-3.0 propagation
MTRACE logs are not present in SME, for messages tx/rx WMA.
So add missing MTRACE logs in SME before transmitting and
after receiving messages to/from WMA.
Change-Id: Iac45ffc1736eecc40e203174888e296767b50a0d
CRs-Fixed: 855871
qcacld-2.0 to qcacld-3.0 propagation
Dereference of 'roamSession' pointer before NULL check in
sme_is_sta_smps_allowed().
Fix to move dereference statements after NULL check.
Change-Id: I04d72a4b8fbc4ba68850ae665e2248a386fa4c10
CRs-Fixed: 992082
qcacld-2.0 to qcacld-3.0 propagation
1) Currently we notify connect event to CFG80211 module even
though there is disconnect request from upperlayer being
queued in case of disconnect timeout.
2) Cancel ongoing ROC to avoid defer processing of disconnect
command until ROC completion.
change made to address the same.
Change-Id: Ib824c07e25f9f7ced0279faddc3d958d1c92b1eb
CRs-Fixed: 884364
In function csr_roam_chk_lnk_disassoc_ind frame size
exceeds 1024 bytes. Because of this compilation fails
on 32 bit systems as there is stack check flag on
32-bit compilation.
Fix is to convert stack allocations to dynamic memory
allocation.
Change-Id: I7c91bc0ed91796ba4dac9c85ea4b1b6f2d8a6ee5
CRs-Fixed: 1055344
qcacld-2.0 to qcacld-3.0 propagation
Add TPC IE by default in probe requests of STA scans as this
required for VE cert.
Git-commit: e50d4b5c607d4d563d6c85f4e8e9a21859c940c4
Change-Id: I196e22e3e5ceea2a18bfd5137589b16c5e6d8e08
CRs-Fixed: 1006608
qcacld-2.0 to qcacld-3.0 propagation
Due to incorrect configuration of channel width to FW, TDLS
session has sluggish video.
Fix is to configure minimum of AP and TDLS peer channel width
to FW.
Git-commit: b963bf7b5e48db5de7422f3fab6870192516dbd8
Change-Id: I57d90310c9c90086016359509de17aa25d665fbd
CRs-Fixed: 996556
qcacld-2.0 to qcacld-3.0 propagation
In SAP mode, while sending Probe response template to HAL from driver,
ext cap IE should be merged only if it is present or received from hostapd.
In function limSendProbeRspTemplateToHal, extcap_present bool is wrongly
initialized to true which leads to updation of the extended Cap IE with
junk values in Probe response even for the cases where driver is not
supposed to update it, i.e. cases where the ext cap IE is not present or
not received from hostapd
Git-commit: a7256f3483c0a26c8715f2ae6166289de6da6b1e
Change-Id: If82fbba4c20b5e96dbe1b11c97ab557ded488f3e
CRs-Fixed: 995545
qcacld-2.0 to qcacld-3.0 propagation
Currently STA advertising the max. measurement duration of RM
capability as half the beacon interval. When STA receives beacon
report request frame, it is not using measurement duration
indicated if it is above the advertised max. measurement duration
However, firmware expects a minimum of one beacon interval to
find the AP.
Modify the max. measurement capability of RRM as one beacon interval.
Also engineered the code to make use of the INI parameters for
adjusting the max measurement duration.
Git-commit: 0a18af7723c58987944780bad0ff7f35605413ac
Change-Id: Idc0b4f15f2b7464507aacfaefb99e1ba48ad1eca
CRs-Fixed: 1030590
qcacld-2.0 to qcacld-3.0 propagation
Regardless of phy mode in ini, 5Ghz band is configured to wiphy
which was leading to scan on 5ghz even though phy mode was set to
11b/g.
Fix will ensure to configure 5Ghz band if ini supports for 5ghz.
Git-commit: 7b6f426ea4cbe304bc4c99ceca6d2d620186084f
Change-Id: Ie7735b06ca5ae370077c962a645296ba054ac5d4
CRs-Fixed: 1018993
Host is not handling target initial wake up properly which is
leading to resume failure. Fail PM suspend request if target
has sent initial wake up message.
Change-Id: I7ac757dd7968f541935519da0689d7672f72d19b
CRs-Fixed: 1059543
With Dynamic mode changes there can be a new race-condition
a user-request comes during start/stop modules.
When any request from the North bound add check to see if we are
in any driver state transition and return failure to the upper layer
during the starting/stopping of the modules.
Change-Id: I8718bd2293b05a825a791775118d2379cf8f33d2
CRs-Fixed: 1058938
Currently the HDD code uses a variety of logging APIs. In
qcacld-3.0 HDD should converge on a unified set of logging APIs.
Update wlan_hdd_wmm.c to use the unified set of APIs.
Change-Id: I325c55caa269356e4780ab940aca20ec50e82e80
CRs-Fixed: 937691
In qcacld-3.0 HDD has converged on a core set of service level logging
APIs. However there are instances in wlan_hdd_cfg80211.c of the
hdd_log() helper API being called directly instead of using the
service level APIs. Replace those instances.
Change-Id: I89d589a35b188c7be373ee0ec3dfd73bc88d6aa0
CRs-Fixed: 1058338
In qcacld-3.0 HDD has converged on a core set of service level logging
APIs. However there are instances in wlan_hdd_main.c of the hdd_log()
helper API being called directly instead of using the service level
APIs. Replace those instances.
Change-Id: I36ccc64005a571d3d658211fea5711261bcff8f3
CRs-Fixed: 1058338
In qcacld-3.0 HDD has converged on a core set of service level logging
APIs. However there are instances in wlan_hdd_tdls.c of the hdd_log()
helper API being called directly instead of using the service level
APIs. Replace those instances.
Change-Id: I02569a6d7f876d47232eea5a37312896d4e06617
CRs-Fixed: 1058338
Use QDF_MAC_ADDR_SIZE instead of VOS_MAC_ADDR_SIZE while copying
bssid given by supplicant for active scan.
Regression Change-Id: I97886b1dbd63fbca21fa410252df572f819df207
Change-Id: I55cf956dc6dca68790d2ff69ad5c3e5cacd0f6ae
CRs-Fixed: 1060356
With the latest changes for dynamic mode change, adapter status to
user space sent even if session ID is invalid. Check to make sure
indication is sent only when session ID is valid.
Change-Id: I2df6aff0874f37ec934dd9071daf305d8289492c
CRs-fixed: 1058267
During the driver load cds_cfg memory is allocated during the
hdd_Wlan_startup and cds_open. Since the memory allocated by the
cds_open overwrites the pointer of memory allocated by hdd_wlan_statup
during memory free only memory allocated by cds_open is freed resulting
in memory leakage.
To migitate this issue, allocate the memory for the cds config only once.
Change-Id: I01bf0e8110a2519a2e11da398be3c98f9ca4db8f
CRs-Fixed: 1055648
Start the pre cac adapter after opening the it.
Earlier, opening of adapter starts the adapter as
well. With the recent design changes, start
adapter needs to be explicitly issued after
opening the adapter.
Change-Id: I3cfa7f74bb121ab74fa18f2237069f41bf3fe736
CRs-Fixed: 1058745
wma_wow_wakeup_host_event already logs wake up reason at
the begining of the function. Remove duplicate logging for
wake up reason.
Change-Id: I1b3a3099c395dcf050e0c1c42677686c2c4911ef
CRs-Fixed: 1059065
Trying to free a null WMI TLV struct leads to confusing error message.
Do not try to free WMI TLV struct if it was not allocated.
Change-Id: Ic9607179aa5b7dd517f3187716279d0c02199117
CRs-Fixed: 1059077
APPS wake can happen:
1) For a piggy backed WMI event ID for example SCAN, ROAM etc
2) OR for a wake up reason which does not have a piggy backed
event ID for example BPF, pattern match, auth/assoc/deauth
wake up.
3) Auth/Assoc/Deauth etc management wake up reasons do not carry
piggy backed WMI event ID. Actual management WMI event ID comes
as a separate WMI event from target.
Change-Id: Ie7b2b902b646375f21467211f1a4a61361144f3f
CRs-Fixed: 1059088
qcacld-2.0 to qcacld-3.0 propagation
If host issues extscan get cache results, while gscan is not in
progress then buckets_scanned mask comes as zero. To handle this
issue now firmware sends the buckets_scanned mask as part of
wmi_extscan_rssi_info instead of fixed_param.
Change-Id: I5923a5fc642dd722bf6cc9f5496c7cedcf75e1a5
CRs-Fixed: 1001733
Update incorrect conditional check in hdd_set_fw_params.
Without this fix, even when we support 2x2 mode RX/TX chain mask
will be set for 1x1 mode. Fix the condition to update the chain
mask correctly and also some other FW parameters which are
independent of antenna mode will be updated correctly.
Change-Id: Iaa51a6eb22c6970d294f503159f98d50ca7a0000
CRs-Fixed: 1057742
Fix incorrect memory comparison cds_is_mmie_valid.
In cds_is_mmie_valid(), while processing Rx Robust Management Frame
invalid condition usage results in incorrectly tagging the Rx packet for
replay attack. Similar invalid condition results in incorrectly
tagging the packets for MIC mismatch. This change will update the checks
so that Rx packets will not be dropped incorrectly.
Change-Id: I50974232db034029747e0af8c8b5b70959c4dcb7
CRs-Fixed: 1057261
Propagation from qcacld-2.0 to qcacld-3.0.
Add a capability in service bitmask to indicate that fw also supports
this feature of marking first packet after wow wakeup to maintain backward
compatibility.
Change-Id: I3d41f5425e3a170c046941a439d17e06df0c6bef
CRs-Fixed: 1021382
Propagation from qcacld-2.0 to qcacld-3.0.
Add support to mark the highest bit of the skb->mark for the first
packet after wow wakeup event from firmware
Change-Id: I877dd7af9a58ebc02d73461cc2a29e86a3945dec
CRs-Fixed: 989984
Propagation from qcacld-2.0 to qcacld-3.0
Current implementation has support for IPv6 addresses of type
unicast for NS offload to firmware.
As part of this change add anycast addresses for NS offload.
Change-Id: I1151c8af3bbc815216c4ffd9668dd0b6561f222e
CRs-Fixed: 954880
Propagation from qcacld-2.0 to qcacld-3.0
Add support to enable/disable NS offload to firmware from HAL
vendor command.
As part of this fix when NS offload is set to disable from HAL
command, NS will not be offloaded when wlan goes to suspend state
even if NS offload is enabled in cfg ini.
Change-Id: Iffaaa9be2e62ea03fcbe3e32d2cc654d3e7334f5
CRs-Fixed: 954880
In case of dense roam scenario, Host should set initial dense
status if roamable AP count is more than minimum dense AP count.
Current implementation checks for the number of channels in roam
cache list instead of AP count.
Add changes to set the flag if roamable AP count is more than
configured value.
Change-Id: I4d5f7c6c69b1a9a527aace1677050373065af213
CRs-Fixed: 1058211
gtraffic_threshold is needed to determine traffic condition for roam
scan.
Add changes to update default value of gtraffic_threshold in kbps.
Change-Id: I844903225ec178de7b88cf63b92531e46bdd9fe3
CRs-Fixed: 1056787
As part of MBO(MultiBand Operations), Station should not
initiate connection with BSS if association disallowed
subattribute in MBO IE of Beacon, Probe response frames
is SET.
Parse MBO IE and dont initiate connection if association
disallowed subattribute is present.
Change-Id: I6580b646c97b409453eade527285c97ed8cf86e4
CRs-Fixed: 1039969
qcacld-2.0 to qcacld-3.0 propagation
Currently RRM scan results are sent out to the requesting AP, but
are not updated to the kernel.
Update the results to the kernel so that it will be useful in future
in the userspace if a BTM request is received and the lookup of
scan cache can fetch a result for the target AP and an additional
scan can be avoided.
Git-commit: 3075ac910c015ce525bf8badd1eb4a277286b28f
Change-Id: Ie56b86e5c54910648cb2ae8bf2a7dac2ee873e00
CRs-Fixed: 1010596
qcacld-2.0 to qcacld-3.0 propagation
Currently all the scan requests going from the host to the
firmware pass a rest time to the firmware. The firmware
waits for the rest time before starting the scan. This is
not needed in the case of RRM beacon requests with single
channel request to make it more optimal.
Configure the rest times to minimum and start the scan
right after receiving the request
Git-commit: b0132824baeceb25bbc80d0e82ed6693b783b4dd
Change-Id: Ia5c5a1c2c765d13611b901742910325954ce3d8a
CRs-Fixed: 1010596
qcacld-2.0 to qcacld-3.0 propagation.
Presently, supplicant does not send bssid parameter as part of scan
command to driver. Since that support is added, use the bssid received
from scan command for active scan ie add the bssid as part of scan
offload command to firmware so as to send probe request with bssid
set with the one received as part of the scan command.
Git-commit: 5ad6cc46eda9e6d7195c353730a22427b9937283
Change-Id: I97886b1dbd63fbca21fa410252df572f819df207
CRs-Fixed: 1010596