scan complete callback function is not
freeing scan request memory after scan completion.
Free the scan request memory after scan completion.
Change-Id: I2636e3b4576d2c86d88dc3e7684a196ed1838297
CRs-Fixed: 964244
In HDD, hdd_wlan_startup which is called by probe is beast of a
function to maintain. Over time it has grown to such an extent
that it is almost 800 lines of code with in a single function.
Divide the beast into logical smaller functions.
Fix style issues like conditional compilation with in the
function and other minor ones.
Change-Id: Iec2dc3aac934bbb90b87d4e8581e877e5b0a561c
CRs-fixed: 959287
In HDD, hdd_wlan_startup which is called by probe is beast of a
function to maintain. Over time it has grown to such an extent
that it is almost 800 lines of code with in a single function.
Divide the beast into logical smaller functions.
Create separate functions to update country code from module
parameter and initialize thermal mitigations settings in SME.
Change-Id: I84cf611347a5abadc16eeb46fed90934913e09ed
CRs-fixed: 959287
In HDD, hdd_wlan_startup which is called by probe is beast of a
function to maintain. Over time it has grown to such an extent
that it is almost 800 lines of code with in a single function.
Divide the beast into logical smaller functions.
Make separate function to open the interfaces at probe time.
Change-Id: Ia0044f5b0d0f009950d62556e09928ac578a1d4b
CRs-fixed: 959287
In HDD, hdd_wlan_startup which is called by probe is beast of a
function to maintain. Over time it has grown to such an extent
that it is almost 800 lines of code with in a single function.
Divide the beast into logical smaller functions.
This is the first phase of changes to add a separate function to
allocate and initialize HDD context.
Change-Id: I35b6c95c1b09f853e83752123c44e8d21c8af50a
CRs-fixed: 959287
Remove typedef tPowerdBm. Rename and use linux style for channel
enum, channel state, channel power and country source data
structures.
Change-Id: Iebc59e6f001ccdb403c7445f4cea02c6a8141366
CRs-Fixed: 856727
Remove the 4.9 GHZ channels from the driver stack.
4.9 GHZ channels are not being used for any country,
so remove them.
Change-Id: I135f997bb4c8ad7a536596b4e89eb037f41e0c73
CRs-Fixed: 856727
FEATURE_STATICALLY_ADD_11P_CHANNELS was a temporary solution for
builds that were not defining DSRC channels in db.txt. That
restriction no more holds true. Also correct the list of DSRC
channels in function cds_is_dsrc_channel.
Change-Id: I1146ec9702a8eec801b635a276e981962dd42817
CRs-Fixed: 856727
Change regulatory data structures and APIs to linux style.
Change the references to the data structures accordingly.
Leave data structures that would be deleted in subsequent
iterations as is.
Change-Id: I68dcd3485d3fb3d98f648b5844508356c3f3c29d
CRs-Fixed: 856727
Remove the local country to regdomain mapping in the driver.
Return a fixed regdomain index 0 to the caller. Also update
copyright for cds_regdomain.h for 2015.
Change-Id: I33e0a861b0a3bd95b20becb2d765b8300688ec4c
CRs-Fixed: 856727
Fix mangled API lim_cmp_s_sid() to lim_cmp_ssid() which were
introduced while converting the names programmatically.
Change-Id: I3a6d4b8678fc815fb8c8787bd080c9188ef98f67
CRs-Fixed: 882962
Keep track of how many times supesend resume succeeds and fails
also mark last busy on a failed runtime suspend or a successful
runtime resume.
Change-Id: I04df805429e3a9ce91bc3d7f27bfd598396257c9
CRs-Fixed: 935300
HTT messages do not have a tx complete and should
have their runtime puts done when the firmware response
come. Tag messages without responses so that the
put can be done after issuing the message. Also do
runtime put in error case.
Change-Id: I7253ace95ca6bb4fa17bc6d82ec52fc598d17712
CRs-Fixed: 935300
Check runtime pm status while sending messages.
Update runtime pm when sending messages to hif.
Update runtime pm when messages are tx completed.
Change-Id: I27840f57ff87d6d27b1e3611e7fe1f2cd933ddd0
CRs-Fixed: 935300
HDD interfaces with the platform driver. Runtime suspend
is a callback registered with the platform driver. Coordinate
runtime suspend from hdd since it is both the logical entry point
and knows what other layers need to participate in a runtime suspend.
Change-Id: I80b71e504d0cd31bd5a8e47895db7e0bd233f6c3
CRs-Fixed: 935300
wma has to do some extra steps that were part of 802.11 suspend
for runtime suspend.
Change-Id: I91fbdcacd6c557f30e0d4f422324f2db67cb96dc
CRs-Fixed: 935300
hif runtime suspend resume is identical to a regular bus suspend
resume, but provide a different api just in case this changes.
Change-Id: If069df7733d6a1ebe38d356ac5bdd4e2a250118b
CRs-Fixed: 935300
Introduce an enum for use by multiple layers to suspend slightly
differently when doing a runtime suspend versus a system suspend.
Change-Id: I753bbe909e53558fe592defdca021331ec6feb88
CRs-Fixed: 935300
Runtime pm opperations will be initiated in hdd, so hdd
needs an api to updated the runtime_pm state.
Change-Id: I783fc136777a56d8ea23f8b11617ebe92641221a
CRs-Fixed: 935300
Send one suspend indication message to wma after configuring
all the offloads. Reduce context switches and complexity.
Change-Id: I020fc8864dbf7378805361d54dc6cff60b2652e5
CRs-Fixed: 935297
SME holds config item in tCsrConfigParams structure as well as some of
the same items in tSmeConfigParams which makes tCsrConfigParams super
set of tSmeConfigParams. There are high chances if somebody misses
copying item from tSmeConfigParams to tCsrConfigParams and that will
result in config item not being set correctly.
In order to make it clean and easy, merge both config structure in one.
Change-Id: I8c93d9fae0986cb90b4ed4c4712b1e2b023b4be3
CRs-Fixed: 963752
qcacld-2.0 to qcacld-3.0 propagation
Currently, if SAP supports 40Mhz, then it sends the supported
channel width as 40Mhz irrespective whether STA supports or not.
Changes done to check the STA capability for supported channel
width and send it accordingly in Assoc Resp
Change-Id: I58ca44b6998d4712521a10285b9fd2a3f825d2ed
CRs-Fixed: 728676
Signed-off-by: Krunal Soni <ksoni@qca.qualcomm.com>
WLAN_FEATURE_MBSSID flag is originally added to support MBSSID,
specifically for the MOBILE ROUTER build, and is now enabled for all
builds, there is no longer needed to have a separate feature flag,
so that removing it.
This commit cleans up the following modules - cds/mac/sap/sme.
Change-Id: I79ad9767b7945af0c567b6294ac07e7697898e9e
CRs-fixed: 958154
This is qcacld-2.0 to qcacld-3.0 propagation
Deactivate and clean up the logging thread during driver load failure and
ensure that logging thread is not enabled for FTM mode
CRs-Fixed: 961865
Change-Id: I53f85a30f52fc5715705624bf515ab5e4666db8e
This is qcacld-2.0 to qcacld-3.0 propagation
Avoid logging of all module logs into kmsg during the driver load
phase. All module log level is set much before setting of the
flag that indicates whether multicast logging is enabled or not.
Because of this all module log levels are getting printed for a
brief duration in kmsg during driver load. Fix the same by
setting the multicast flag appropriately so that when multicast
logging is enabled, all the logs are multicast to user space
and only the error and fatal messages continue to get logged in
the kmsg.
CRs-Fixed: 958705
Change-Id: I260e38ef64f704dfd9ca1ca4dc68c56428526559
qcacld-2.0 to qcacld-3.0 propogation
Previously trace logging levels are set from cfg.ini for different
modules which again over written by code. Ultimately code logging
preference was taking place.
After changes if the log level for any module is set to DEFAULT(0xffff)
then only code logging preference will be used else cfg.ini logging will be
preferred.
CRs-Fixed: 875973
Change-Id: Ia3df86908cec1d5c487d614a418721c0cd98fc52
Add new IOCTL 'CHANNEL_SWITCH' which is used to move the operating
channel of SAP/P2P-GO. This IOCTL is supported only for SAP/P2P-GO
and not for STA/P2P-GC.
E.g., format to issue command through wpa_supplicant:
DRIVER CHANNEL_SWITCH <CH> <BW>
- <CH> is channel number to move (1 for ch1, 149 for ch149 etc.)
- <BW> is bandwidth to move (20 for BW 20, 40 for BW 40 etc.)
Change-Id: Ie65f2ceb9ece04053ab32ee60f83fd09cd232f77
CRs-Fixed: 955368
Add support to include channel bandwidth as one of the inputs to
decide the channel switch parameters. Currently only the target channel
is used as the input to decide the channel switch parameters. With this
fix, user specified channel bandwidth is also taken into consideration.
Change-Id: Ic49b24edde6cabc52aa2b38110763da82da6790d
CRs-Fixed: 955368
Fix invalid operating class calculation while sending out channel switch
frames. The operating class is getting wrongly calculated using the
channel width instead of the channel offset. Fix this by calculating and
passing the channel offset parameter instead of the channel width to the
necessary function to ensure that the operating class gets calculated
correctly.
CRs-Fixed: 955414
Change-Id: I011db65e57c477e381fd471a4a930a02e2a7ee21
Remove the CB mode usage in channel bonding since the center
center frequency is calculated using channel width and channel
number.
Change-Id: Ie9685a833750bf3b69cce40c5d9587fb9b232047
CRs-Fixed: 962174
The current roam sync propagation for LFR3.0 in the host driver is
based on queuing and message processing mechanism. This can lead
to many unknown sequence of operations as there might be other
messages sitting in the queue which may interrupt with this
operation. Hence, it would be good to introduce a callback mechanism
which take care of running the code to execution completely in case
of roam synch propagation.
It also improves to reduce the roam delay by 50 percent as compared
to the existing mechanism.
CRs-Fixed: 962290
Change-Id: I4af569b1e3020a64beb606e8bbffd7613775138f
qcacld-2.0 to qcacld-3.0 propagation
During SSR, since VDEV detach won't happen, some contexts saved in VDEV
may not get a chance to be freed. Add change to check these contexts
in SSR shutdown routine to make sure they are freed.
Change-Id: I36d12b3bb524ca107ece2441c1dc1d80293cb31b
CRs-fixed: 957587
qcacld-2.0 to qcacld-3.0 propagation
Currently only one level of information (file name and line number of
the caller who wants to allocate memory) is saved when each memory is
allocated. This may not be able to provide enough information for some
cases that multiple levels of callers are the same. Hence save call stack
as well for each memory allocation in SLUB builds for debug purpose.
Change-Id: I245d53ec3805217ca34d7c1f5e31b84cac73e395
CRs-fixed: 930557
pRoamInfo is not initialized in cds_force_sap_on_scc function.
This is resulting in build failure when FEATURE_WLAN_FORCE_SAP_SCC
flag is enabled. Modify cds_force_sap_on_scc function to fix the same.
CRs-Fixed: 953618
Change-Id: I136d33f108dab19c236c7bf1aadf7608c0673baf
sched_scan_lock and connection_status_lock's are using spin lock
APIs directly from kernel. Change to use CDF APIs for spin lock.
Change-Id: I0f56624df34682150b402fc36b9dfdba36a598f3
CRs-fixed: 959287
If DBS hwmode is not available from FW, return accrodingly in
wma_get_hw_mode_from_idx.
Change-Id: I603edd8a49bfd584300dcfc21c2b3c8c4c3c1892
CRs-Fixed: 934012
wma_suspend_req is rewritten in changes
I020fc8864dbf7378805361d54dc6cff60b2652e5
and I95876979652ab16976f23561038c877cee4c930a
Revert "qcacld-3.0: Fix the PNO WoW is not configured in concurrency case"
This reverts commit 3bf7846a5ee12e0641f90b9ff05a80a068cde777.
Revert "qcacld-3.0: Cleanup WOW_NLO_SCAN_COMPLETE_EVENT"
This reverts commit 8098644b8cbf89f23442c5bef02f186460cd9f8f.
Revert "qcacld-3.0: Find extscan_in_progress irrespective of connected or pno"
This reverts commit 7bb7f564b75965bfbf09fef6b5406aaa19c245a7.
Change-Id: If0953ad7ca8d7224c87f026e77d1a3f256c4f124
CRs-Fixed: 935297
The api is clearer without the abreviation. The api is
cleaner without an unused cdf_handle. Also remove
unnecessary cdf_schedule_work api. cdf_create_work
is also cleaner without cdf_handle.
Change-Id: Id8c32596a92184d6768e2bc3210c308b44da2a57
CRs-Fixed: 935297
Hif needs to guarantee that it frees the buffers that it doesn't
pass to upper layers.
Change-Id: I816d0a1b19a5a0c00e9669c18dfdf427c102c911
CRs-Fixed: 958124
This flag supports depricated emulation hardware.
Remove conditionally compiled code and dummy functions
that become unused as a result.
Change-Id: Ie21df7e39b196109acfb6b41afc6b8c22fecb822
CRs-Fixed: 958120
On M2M emulation platform we have a fixed mapping between macs, hence
vdev transition & MCC support is not possible on this platform. But MPR
platform doesn't have these limitations. This config allows at runtime
enable/disable vdev transition & MCC support depending on the platform
it is running on.
Change-Id: I17a92dce695ee30f7994f040d4bc612a38680f3e
CRs-fixed: 922181
qcacld-2.0 to qcacld-3.0 propagation
If ADDTS response timer is fired because of not receiving ADDTS RSP
within time then this timer handler posts SIR_LIM_ADDTS_RSP_TIMEOUT
command to LIM. But if deferring is enabled(say due to processing any
action frame) then SIR_LIM_ADDTS_RSP_TIMEOUT command will be added to
defer queue and as gLimAddtsSent is set to TRUE, including this
command all other defer commands will never be processed. This may
lead to active command timeout.
Hence process SIR_LIM_ADDTS_RSP_TIMEOUT command in defer state.
Change-Id: I48f09a7fd560702ac7701e0a1a41c77ad94626d4
CRs-Fixed: 919490
Fix compilation issues on MSM8998 RUMI platform caused by
CONFIG_CNSS not being defined and un-initialized local variable usage.
Change-Id: Iaf8bec493a42ec9fd09e1b2b6aa085be8de4bc8a
CRs-Fixed: 959249
qcacld-2.0 to qcacld-3.0 propagation
-In case CSR is already connected and it receives connect with the
same profile, csr will silently return and try to send the connect
success to HDD. But if roamInfo staId is 0 this roam command is not
removed from sme active list and leads to active list timeout.
This back to back connect to CSR can happen if HDD and CSR go out
of sync and is taken care already.
-Also if disconnect is received in case scan for ssid is in progress
it will be dropped and roam session state is set to disconnecting.
But this roam session state is not reset for the fresh connection
and thus if next connect also issue scan for ssid the connect
command will be dropped assuming disconnect is in progress.
This change removes roam cmd from sme active list in case of
above failure and resets roam session state for fresh connections.
Also does some cleanup in HDD disconnect command.
Change-Id: I222626f1da6bdad83a5264668dde9aafd3dda149
CRs-Fixed: 953196
qcacld-2.0 to qcacld-3.0 propagation
If connect is received with previous connect in progress, driver
doesn't abort the previous connect and process the new connect.
In csr if new connect is for same profile, sme directly indicate
connection success to hdd and thus hdd increment the active
session count twice for both connect.
Now if one more connect is received it will try to disconnect the
previous connection and decrements the active session count.
So the count is 1 though no session is active.
Eventually if same scenario happens again the active session
count will become 2 with no active session. As max active session
limit is 2, no more connect is accepted.
To avoid this, if fresh connect is received and previous connect is
in progress abort the previous connect.
CRs-Fixed: 958963
Change-Id: I1544bc6e7894ffeda1956a19a553b6fe4e35f988
qcacld-2.0 to qcacld-3.0 propagation.
If MC thread stall while waiting on any event, In case of WPS,
probe requests may get accumulated in PE message queue.
Now every time MC thread process a probe request,
eWNI_SME_MGMT_FRM_IND msg is posted in SME message queue. But
unless PE queue is fully processed SME queue won't be processed.
This will gradually use all vos message wrapper.
To avoid this register a callback to send management frame
indication directly to HDD from PE which avoids posting message to
SME queue.
Change-Id: Ib83700825112cc52dade594909bfa8993909ac29
CRs-Fixed: 944961
qcacld-2.0 to qcacld-3.0 propagation.
1.Use iw tool to let dut connect to remote ap, dut is working
on wlan0.
2.At same time, use hostapd to start sap also on interface
wlan0.
In item1, before connect to ap, dut will do an internal scan
to search ap, if scan result matched configured ap profile,
dut trys to connect to ap.
In item2, when starting sap, found it's sta mode it will try
to disconnect dut with remote ap and close sta session.
#1 If ap start action happened in item1's scan period, trying
disconnecting won't take effect as currently sta has not yet
connected with remote ap.
So after item1's scan finished, dut continues to do connection.
#2 During closing sta session, sme issued eSmeCommandDelStaSession,
as currently sta is doing connection, so session is in started
status, this cause closure failed, so there is no chance to remove
cmd in smeCmdActiveList.
While cmd pending in smeCmdActiveList for 120s, driver issued crash.
The solution is in item1 after scan complete to check whether it's
needed to start following connection. If stop action has been issued
during scan period, then don't do the connection.
Change-Id: If632e21cb13277fba371ff1bf8df97febf856d09
CRs-Fixed: 923375
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_driver_ops.c to use the unified set of APIs.
Change-Id: I5620e91797412c0dbf32c1071b3eefd54f54aca7
CRs-Fixed: 937590
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_lro.c to use the unified set of APIs.
Change-Id: I72bf2b55390e1c72706077d22f61e59d17d14f13
CRs-Fixed: 937662
Change "qcacld-3.0: Roaming enhancement to allow multiple ssid"
(Change-Id If4953e64f9e0485edec85167a7bc1dd6ca7c2047) added some
incorrect logging to function hdd_send_re_assoc_event(). The intent
was to perform a hex dump of the buf_ssid_ie and final_req_ie buffers,
but in reality the code actually uses these buffers as logging format
strings. Fix this by invoking the correct API to perform a hex dump.
Change-Id: Id861ececd119ea7247ce24c7c8ea9173f13703d3
CRs-Fixed: 958752
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_nan.c to use the unified set of APIs.
Change-Id: I4dcc61656f1cd45d3a2c9d63441c27a733385328
CRs-Fixed: 937673
In adrastea multithreaded firmware WMI logging infrastructure
is not yet ready. Disable WMI FW logging for adrastea and enable
it for ROME based targets.
Change-Id: I64c858681f57a2a013fd23bcd9204f59ff638102
CRs-Fixed: 959416
qcacld-2.0 to qcacld-3.0 propagation
There is a race condition between TX_RESUME opcode, where checks
pending_cons_req before sending WLAN_CONS grant notification to IPA,
and WLAN_CLIENT_CONNECT event where clearing the pending_cons_req.
We don't need to clear pending_cons_req from WLAN_CLIENT_CONNECT
event, which is actually cleared by TX_RESUME opcode.
Change-Id: Icc5d05bc77800251b031efd0c07b0feaa2ae921d
CRs-Fixed: 952171
qcacld-2.0 to qcacld-3.0 propagation
When CDS enable fails after IPA init, IPA cleanup is missed.
This will cause a system crash later as IPA resource is not properly
teared down.
Change-Id: I563e92e4ed5319b6489dcc8cffb6a802d54e8549
CRs-fixed: 949015
Driver state of loading, unloading, logp are maintained in
multiple modules like HDD, CDS. Change to maintain the driver
state in CDS and provide CDS APIs to find out the state of the
driver so that any of the module can query it.
Also rename the logp to recovery in progress for clarity purpose.
Change-Id: I8e1864e1bc7f3b1dd6f4eb804ce2578c6695967d
CRs-fixed: 958659
FTM initialization has conditional compilation within the
function. Clean-up and create separate functions to initialize
and remove FTM during driver probe and remove.
Change-Id: I04890f49447c22b6d7dd93baf0a266ea9f5a4ca7
CRs-fixed: 957630
cdf_mem_exit cdf_mc_timer_exit are missing from hdd_driver_exit.
Add them back so that wlan driver exits properly.
Change-Id: I571f65118a1755d2f43c29e8320563a43b49e713
CRs-Fixed: 951519
Add event handler for oem data response event from FW.
Add new boolean member to differentiate the response
generated internally and one coming from the FW.
Change-Id: Ia906c5dcbb7e560fd78ccd96fc47c7801b33aa6a
CRs-Fixed: 942261
Use assoc req from roam_sync_ind_ptr instead of ft_session_ptr in
condition statement.
assoc req from ft_session_ptr is not populated yet and hence will be
0 when the condition is invoked. This will cause if block to never
execute.
Change-Id: I9cd758674d13603087de013a0aea751032bc8603
CRs-Fixed: 957591
Do not allocate txrx descriptors for management
if management over WMI is enabled.
Change-Id: Iafb231bebe83b658940119ed13a41d64a10d4eb0
CRs-Fixed: 955450
rssi_raw should not be updated when the channel
in probe response does not match the channel in BD.
Added rx_channel field to beacon descriptor passed from LIM to
CSR. Channel check is performed in csr_remove_dup_bss_description()
before computing new averaged rssi.
CRs-Fixed: 873549
Change-Id: Iefacbf73f880e9d0c957ad83839dd2203fdf862d
qcacld-2.0 to qcacld-3.0 propagation
Add raw rssi in the beacon header from WMI to beacon descriptor.
Pass it up to SME and report it to supplicant through a call to
wlan_hdd_cfg80211_inform_bss_frame().
It can be enabled as a .ini configuration parameter "gInformBssRssiRaw".
Default is 1, it will report raw rssi by default.
Roaming decisions are based on rssi field of beacon descriptor,
its interpretation and usage are unchanged.
CRs-Fixed: 815344
Change-Id: I6dacdc0b333c093d16a74f8cf36471dfc183ce56
If rxthread is on, NAPI will call the kernel-thread context API (instead
of softirq context) API to transfer the packet to the stack.
Eventually, this part will be re-considered when multi-queue NAPI gets
in, which will eliminate the rx-thread.
Change-Id: Ib3d4d1450fb36f5c1e710802ceaab5d015e20c7d
CRs-Fixed: 957299
qcacld-2.0 to qcacld-3.0 propagation
This is to fix the regression in the case of suspend request.
Below patch overkills the case for PNO and extscan in progress.
Commit Subject: "Fix the PNO WoW is not configured in concurrency case"
change id: I97084cfde73025f0d09b60616959c9530ba82c80
The combined condition check should be maintained to check
the case for PNO or extscan in progress, otherwise the WoW would
be enabled in the case PNO in progress is not enabled,
and end up not setting PNO patterns and failed to reconnect
after resume.
Change-Id: Icc5f19d07abea9fb25479452ce1c467d7811317c
CRs-fixed: 953257
This is for FR23278: Runtime configuration of softAP Tx power.
The value that send by the vendor command will set the power levels
as below:
0 --- no scaling, 100%
1 --- 50% of max power
2 --- 25% of max power
3 --- 12% of max power
4 --- minimum power
Another vendor command is to decrease the power by actual db value.
CRs-fixed: 941772
Change-Id: I61d48299b4af361c214e2ab8bb1fa848161431de
qcacld-2.0 to qcacld-3.0 propagation
Line 118: CID 50610 (#3 of 3): Out-of-bounds access (OVERRUN)
Line 200: CID 50680 (#1 of 1): Out-of-bounds read (OVERRUN)
Line 367: CID 50732 (#1 of 1): Out-of-bounds write (OVERRUN)
add TID validation check in RX_IND to avoid tid >19 scenario.
Change-Id: I32a3339902e231a8193fb8ee984ef029e24bc7e5
CRs-Fixed: 836067
Propagation from qcacld 2.0 to qcacld 3.0
Due to a race condition, vdev is getting deleted in
ol_txrx_vdev_detach and after that in
ol_txrx_peer_unref_delete, as vdev->delete.pending
is not equal to 0 as it is some garbage value, vdev
is getting deleted again causing crash.
This fix release the lock after checking
vdev->delete.pending so that before vdev gets deleted
in ol_txrx_vdev_detach, this check has been made and as
vdev->delete.pending is 0, it will not delete the
vdev in ol_txrx_peer_unref_delete and so vdev will be
deleted only once.
Change-Id: I4a7362b0e226c66ccb7c72243276d77e8df60b20
CRs-Fixed: 949397
Propagation from qcacld 2.0 to qcacld 3.0
The atomic variables are of integer type but "cdf_atomic_read",
"cdf_atomic_dec_and_test" and "cdf_atomic_inc_return" APIs
have return type of unsigned int. Because of this, these APIs
return positive value even when it is negative.
This fix change the return value of "cdf_atomic_read",
"cdf_atomic_dec_and_test" and "cdf_atomic_inc_return" APIs
from unsigned int to int so that negative value remains negative.
Change-Id: I9c4077547e1e1370bbb401af77b248944cdf25fa
CRs-Fixed: 902636
qcacld-2.0 to qcacld-3.0 propagation
Extended Supported Rates are filled in Assoc req based on the
dot11mode and in Case dot11mode is 11A it's not filled.
Some AP have Basic rate in Extended Rate set in 11A mode.
Thus AP reject the association as Driver does not sent the extended
rate set in 11A mode.
Removed the dot11mode dependency for Extended Supported Rates.
With this change if AP have Extended Supported Rates driver will
add the Extended Supported Rates IE in Assoc req.
Change-Id: Ibd1c98a7cfae46988ff4434579edde7d4222841d
CRs-Fixed: 903270
qcacld-2.0 to qcacld-3.0 propagation
If preauth is in progress with too many APs in the roamable AP
list and at the same time disconnect is received from supplicant as
part of unload, the deauth req will be queued in sme pending list
till csr completes the preauth process.
Now as part of unload, driver may purge the sme pending command list
and with it the disconnect command may also get removed if preauth
takes too much time.
This will lead to DEL BSS missing before HAL STOP and thus crash.
To avoid this abort the preauth process once disconnect is received.
Change-Id: I1c35f0c7e38295cfadafdad69f0b9a99ba61404c
CRs-Fixed: 942579
Replace tSirMacAddr with cdf_mac_addr in tSmeIbssPeerInd and
tSirIbssPeerInactivityInd.
Change-Id: Ie83aa414e312431aeb7f730a3f8027ea960acc36
CRs-Fixed: 898864
Replace tSirMacAddr with cdf_mac_addr in sSmeMaxAssocInd and
tSirSmeGetAssocSTAsReq.
Change-Id: Ie36a22b5ee5c823833981b51ef91525f6c6af692
CRs-Fixed: 898864
qcacld-2.0 to qcacld-3.0 propagation
Currently while populating 11a and 11b rates, there is
no bound check for rateset array. This can result in buffer
overflow. As a part of fix add bound check to avoid any
buffer overflow for the rateset.
CRs-fixed: 798054
Change-Id: Ib42f5de642ad54d5c2a1ccdab37d88928b98af01
FW needs the debug mode from WLAN INI file. After parsing INI file,
WLAN driver passes the mode value to platform driver, which uses
QMI message to exchange information with FW.
Change-Id: Ifd01b18bcfafad2344196d80ab17c605cca35972
CRs-Fixed: 942237
In LFR3 reassoc frame is sent by firmware and host or supplicant is not aware
of its content. Because of this supplicant does not have complete information
to perform EAP exchange with authenticator if fresh EAP exchange is requested.
To fix this:
1) Take the reassoc req frame passed by firmware and save that to pe session
This frame will then be passed to supplicant through usual path.
2) In case of FT connection, do not pass key replay counter attribute to
supplicant.
Change-Id: I51dd8004c910b45c7f25e9cd140448e592b096b3
CRs-Fixed: 943711
Get rrm capab from mac_ctx in function sme_get_config_param().
This ensures that subsequent calls to this function will correctly
update rrm config.
Change-Id: Iddaae66b94ccaa127f08fd0a897bc986a959a0eb
CRs-Fixed: 955114
In case prefer 5 GHz preference is set, move the 5GHz channels ahead
of 2GHz channels in channel list as used in Early Stop Roaming Scan
feature. This ensures that while roaming, when these features are
enabled DUT will scan 5 GHz channels first and roam if a candidate
AP is found.
Change-Id: I96d997560a3eca5fd378aa3ed78c5766d097cafd
CRs-Fixed: 951959
qcacld-2.0 to qcacld-3.0 propagation
We suspect that the firmware indicator interrupt is being dropped when
the firmware indicator interrupt is disabled. Check the firmware indicator
after reenabling the firmware indicator interrupt.
Change-Id: I600bd9dfae99ab96dfaf7e3448cef9128f8b7357
CRs-Fixed: 925315
Initialization of completion_freeq_lock was removed as part of
removing the completion thread. The lock still protects the
variable num_sends_allowed for copy engines used for sending.
Change-Id: Ia52d2c1b839d2ccfedbd175f1b8f60f953d08203
CRs-Fixed: 951563
Since the wmi tx copy engine's completions can be
processed in both its tasklet context and through
ce_per_engine_servicereap on a polled basis, we
wish to be able to distinguish the when each is used.
Change-Id: I5892eeeab4e1c7e4c35b958d98db7ad0293ec24f
CRs-Fixed: 951569
qcacld-2.0 to qcacld-3.0 propagation.
This fix ensures that a response message is sent back to SME if
a DelBSS/DelSta failure is returned by firmware, without which SME
command can get stuck.
Change-Id: I42425809ef93d447af0b34aee05e601e30a18ccc
CRs-Fixed: 810491
qcacld-2.0 to qcacld-3.0 propagation
This change introduces 4 ini parameters to configure to firmware
- gEenableEGAP: forcely overwrite firmware feature capb
- gEGAPInactTime: inactivity timeout value
- gEGAPWaitTime: wait timeout value before enter EGAP mode
- gEGAPFeatures: the feature flag firmware would support
WMI_AP_PS_EGAP_F_ENABLE_PHYERR_DETECTION 0x1
WMI_AP_PS_EGAP_F_ENABLE_PWRSAVE_BY_PS_STATE 0x2
WMI_AP_PS_EGAP_F_ENABLE_PWRSAVE_BY_INACTIVITY 0x4
Integrate the hdd_wlan_kick_green_ap to execute the Green AP
and EGAP features, depending on the ini and also the tgt_cfg
capability flag,
Change-Id: Ic5db3990aa0a028ed700f6e2f60a11e75c0f1ed1
CRs-fixed: 929063
qcacld-2.0 to qcacld-3.0 propagation
The firmware reports the Enhanced Green AP (EGAP) service
(EGAP_SERVICE) feature flag to indicate the support of EGAP
feature.
The EGAP is to offload the legacy Green AP feature to firmware
in order to aggressively enable the Green AP other than wait
for host control latency.
Add the knob to hold the EGAP infomation when firmware support
it, also populate the information up to hdd target config.
And then add a SME interface to allow hdd layer to configure
the EGAP configuration.
Change-Id: I9be927369e7cf07731f8e9ba49d65224e05c340b
CRs-fixed: 929063
The condition #ifdef WLAN_FEATURE_LFR is used to include some of
the roaming code. It has been defined for all the recent driver
builds. Roaming code underneath is permanent part of the driver.
Remove #ifdef FEATURE_WLAN_LFR compiler flag from SME so that the code
will always be compiled in.
CRs-Fixed: 936683
Change-Id: I86b9e3dee6b92c89a54de6df769800c31fc3ad17
The condition #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING is used to include
some of the roaming code. It has been defined for all the recent driver
builds. Roaming code underneath is permanent part of the driver.
Remove #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING compiler flag from SME
and CSR so that the code will always be compiled in.
CRs-Fixed: 936683
Change-Id: I63a43b7cfd9360341d4ac4126cbf9fc8ac89071a
The condition #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING is used to include
some of the roaming code. It has been defined for all the recent driver
builds. Roaming code underneath is permanent part of the driver.
Remove #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING compiler flag from HDD so
that the code will always be compiled in.
CRs-Fixed: 936683
Change-Id: I777d48f26aea36383747281bd4fef2eadc7beefb
qcacld-2.0 to qcacld-3.0 propagation
The preauth session is not deleted if the deauth is from host
(eCsrForcedDeauth).
Adds the check to delete the preauth session and stop the
preAuthReassocIntvlTimer timer, in case of deauth from host.
Change-Id: I181344b0f3a41ff5c3a77f30b4c8cf80557c23b5
CRs-fixed: 649521
qcacld-2.0 to qcacld-3.0 propagation
Set TX_USAGE flag for default key (BSS key) when using WEP40 or
WEP140 encryption in AP mode.
Change-Id: Icb4411410d84b05a47f193ffbd632445f736246e
CRs-Fixed: 940725
qcacld-2.0 to qcacld-3.0 propagation
if AP has RSN IE and supports AES, driver goes on to check
WPA IE and if it contains only TKIP in unicast cipher, it
sets cbmode to 0 (20Mhz).
Added a check to ignore the WPA IE if RSN IE is present and take
decision on cbmode with respect to RSN IE only.
Change-Id: I4eaf8a2d6a9f3a43e74e606045af995fbaa800ad
CRs-Fixed: 739345
qcacld-2.0 to qcacld-3.0 propagation
In limSendSmeJoinReassocRsp API, assoc req, assoc rsp, ricData, tspecIes
are sent to SME layer if corresponding pointer in psessionEntry is
not NULL. There is bug here where the pointer is NULL but the length is
non zero. Because of this data is copied at incorrect offset and data
at SME layer is not at right offset leading to corrupted IE in
next re-assoc request.
Fix this by making length as zero whenever we free the data.
Change-Id: I4ba4ff49e56bc2f2758d869eae8ff9370b0c0489
CRs-Fixed: 932712
qcacld-2.0 to qcacld-3.0 propagation
Before transmitting the tdls mgmt frames the STA should be
connected to AP and it should be in authenticated state.
Change-Id: Id79d4e6ad55a6b80e2fac2369f48bedf6551bcd6
CRs-Fixed: 893784
qcacld-2.0 to qcacld-3.0 propagation
Currently, MTRACE logs are not captured for the events posted
from SME to HDD. So, add missing MTRACE log in hdd_smeRoamCallback()
and also add missing eRoamCmdStatus enums in get_eRoamCmdStatus_str().
Change-Id: I26ef8c651b7b873939341b643056ff977a40ea19
CRs-Fixed: 855875
qcacld-2.0 to qcacld-3.0 propagation
As a part of logging enhancement,to make logs more
interactive, changed pmcstate,scanType etc from
numerical values to human readable string in
Protocol stack.
Change-Id: I589088c2c5fd0afa106a1d0773a2ff525b0dd083
CRs-Fixed: 638916
qcacld-2.0 to qcacld-3.0 propagation
Currently for sta mode while sending management
frames such as auth, assoc, reasssoc,deauth,
diassoc driver sends selfStaId. This results
in frames going on the air with the self data
rate and not the data rate supported by peer.
As a part of fix, make sure that the peerStaId is
used for sending above management frames.
Change-Id: Ia368ff13aed1002600f5fb3ad55c3d20106d586a
CRs-Fixed: 826260
qcacld-2.0 to qcacld-3.0 propagation
Even though ADD_BSS fails the driver tries to send DEL BSS to
firmware which will crash upon receiving DEL BSS.
To avoid this crash do not send DEL BSS to Firmware if ADD BSS
fails and just do cleanup.
Change-Id: Ieabf241c8277ae76bb5f491f9d8a2b783d8ea47e
CRs-Fixed: 929249
Qcacld-2.0 to qcacld-3.0 propagation.
This fix contains the following changes
1. Ensure rx mgmt packet is freed in all cases.
2. Fail preauth if the pre-auth response timer
failed to start.
3. Correct some logging and remove unnecessary code.
Change-Id: Icd3a12ba8878de5bad7ff1125ba8be123dfae4eb
CRs-Fixed: 808756
Check if PE session passed to pe_delete_session is valid
before proceeding with the deletion.
Change-Id: Icfe54e8bc286f14ea757b0619c067cc74ce87492
CRs-Fixed: 948924
Initialize PMF comeback timer in PE create session.
Currenlty PMF comeback timer is initialized in join request and
destroyed in delete session. In offload cases, PE session is
created without join request resulting in destruction of timer
which was not initialized. Add timer initialization in
pe_create_session.
Change-Id: I3dba6713b2bf64cc69f0f2d8322293ff763c0989
CRs-Fixed: 948924
qcacld-2.0 to qcacld-3.0 propagation.
Log the RSSI info of the disconnect if the STA disconnection is
due to STA kick out event from FW.
Change-Id: I0fad3f8d0e7990f4211b7840bed7605a4b97f3cb
CRs-Fixed: 874197
qcacld-2.0 to qcacld-3.0 propagation
Add check to validate if non-DFS channel is passed as
TDLS off channel via driver command and INI config.
Change-Id: I6696c47d438bdcc1b8733241e60ca5c52fb1022f
CRs-Fixed: 915972
qcacld-2.0 to qcacld-3.0 propagation.
Ignore HT IE change if RoC is in progress because as
part of HT IE change we will try to change the channel
parameters which use the same callback as RoC. So if
we try to change the channel parameters if RoC is in
progress we will overwrite the callback causing problems
in the upper layers which are expecting a notification.
Change-Id: I6bace6dd2bd40728ece94e3efe59f3e7038a4e6a
CRs-Fixed: 710027
This is a qcacld-2.0 to qcacld-3.0 propagation.
A crash was observed internally where wlan_hdd_ipv6_changed() was
accessing unmapped memory. This function has logic which looks at key
fields in the netdev's private data area to make sure the netdev
belongs to this driver before it further utilizes the netdev. The
problem with this logic is when it is invoked with non-wlan netdevs,
if those netdevs were created with small private data areas, then the
offsets at which the key fields would exist in the wlan netdev may
fall outside the memory mapped for those other netdevs. In order to
avoid accessing unmapped memory in those cases, relocate the key wlan
netdev fields to the beginning of the wlan adapter structure.
Change-Id: Idb830fd18e5724a684505c9d110f6f1de5622eac
CRs-Fixed: 946373
HDD has a completion variable which is used to synchronize the sending
of an action frame with the send confirmation. Proper use of a
completion variable requires a specific sequence of steps:
- Initialize the completion variable
- Perform the activity that has asynchronous processing
- Wait on the completion variable
Currently HDD does not correctly follow this model for sending action
frames; it incorrectly initializes the completion variable after it
has invoked the UMAC function which sends the frame. This creates a
race condition whereby the TX could complete and set the completion
variable before the completion variable is initialized, and then when
the completion variable is initialized the fact that the activity has
already completed will be lost.
In order to prevent this race condition and conform to the sequence of
steps required for proper completion variable usage, relocate the
initialization of tx_action_cnf_event.
Change-Id: Ibc54b8dd62c3a828d1a43922d89e7970af325f6e
CRs-Fixed: 950132
qcacld-2.0 to qcacld-3.0 propagation.
The SME OEM DATA request API supports a callback function pointer,
however this callback functionality is obsolete. Therefore remove
this functionality.
Change-Id: Id06910841ad625412ba1f3222407e471f4d7edd7
CRs-Fixed: 911404
Remove the usage of fixed broadcast sta id of 1 for IBSS.
Fixed broadcast std id of 1 was getting used for IBSS since
no concurrency was supported for IBSS earlier and sta id 1
was always used as broadcast sta id. Now with concurrency
being allowed with IBSS, this fixed broadcast sta id cannot
be used. Make the broadcast sta id dynamic.
Change-Id: I79222e276fbdd41a8938a3a26e58af9335f17ade
CRs-Fixed: 953523
Ensure that wait for MC thread clean-up happens as part
of IBSS leave so that by the time upper stack calls the
change interface, we are all set to proceed further.
CRs-Fixed: 949956
Change-Id: Ib0ee79fe38cbf3c462bd8157c4e014c086f5c29f
With current code, as soon as change interface command comes to
convert interface type to AP, it removes p2p device adapter which
is not required. In new platform, various concurrencies are supported
which includes SAP+GO, SAP+STA+GO, and so on. To make these
concurrencies work properly, no longer remove the p2p device adapter
when SAP comes up.
Change-Id: Icb1729f25e0604e0c342a136d9b4cf332e50d7c8
CRs-Fixed: 953788
As per the requirement when IBSS connection co-exist with STA
connection and scan request is coming from STA adapter,
don't include those channels which fall in same band as IBSS
channel's band.
Change-Id: Ifb42ea6b463bd5020bf544eee504b9c3ceefcfc2
CRs-Fixed: 953788
Provide necessary code changes to support IBSS+SAP concurrency for
emulation platform only.
Change-Id: I76dc023bd48ee79ba706f5a7009b1d8462c6b712
CRs-Fixed: 953796
Make necessary changes to support IBSS+STA concurrency for SCC and
2G+5G MCC. Don't support intraband MCC due to known limitation
for this specific concurrency.
Change-Id: I325b5f51abeee3da0a75f90723c8b882f71dbef2
CRs-Fixed: 953788
During processing of rx mgmt frame, host try to get the
vdev using destination address but for BC frame it can't
find the vdev and iface too, so desired functionality will
not work.
As a part of this fix, host is getting vdev using bssid.
Change-Id: I52884faffc8c5fc8c2f9dcb4308e6f0739f80fe7
CRs-Fixed: 945583
Check for VHT caps in vendor specific IE only if the dot11mode
is set to 11ac or auto, so that the vht caps are included in
association reuest frame only if the dot11 mode is 11ac.
Change-Id: If72117e5a46a754ae602dabd596a2ad8aac33d2e
CRs-Fixed: 952134
Perform cfg download before the SME config update since the
SME config update operation accesses the cfg database.
Change-Id: Ic2d5b6d192ed164b20011b3eeaea6126951b87e8
CRs-Fixed: 948896
Currently the HDD code uses a variety of logging APIs. In qcacld-3.0
HDD should converge on a unified set of logging APIs. Due to the large
number of changes required, this will have to be done in a phased
approach, with conversions occurring one source file at a time.
One potential problem that could occur, in the absence of any
protection, is that once a particular source file has been converted
to the unified set of logging APIs, someone could introduce new code,
either as a new feature or as a change propagation from qcacld-2.0,
which re-introduces invocations of legacy logging APIs. In order to
help prevent this, add conditional compilation to the hddLog() API so
that it will not be available to source files which have been
converted to the unified set of logging APIs. This will cause a
compilation error if hddLog() is called from source files which have
been converted.
Once all of the source files have been converted, the hddLog() macro
itself can be removed from the source code.
Change-Id: I5debb0eb9cd89c08fdfcc4fc117776160ed34501
CRs-Fixed: 949529
qcacld-2.0 to qcacld-3.0 propagation
When transmitting a packet in OCB mode, the station does not need to
be associated to an access point.
CRs-Fixed: 863620
Change-Id: I71b7ad6afa10321a7c7cde597a727bed7454f644
qcacld-2.0 to qcacld-3.0 propagation
Process TX frame only when STA state is in Connected state
otherwise drop the frame.
Change-Id: Id384bb4a11bc2783b8017a8b4fac67ba4f708cb5
CRs-Fixed: 778274
qcacld-2.0 to qcacld-3.0 propagation
Driver would get the tx rate info from firmware and converts it
to mcs index or legacy rate for userspace.
The problem here is when firmware creates a valid ratesets,
it includes all the subset of lower grade rates.
e.g
- VHT80 would include VHT80/VHT40/VHT20, VHT40 include VHT40/HT20
- HT40 would include HT40/HT20
- NSS2 would include NSS2 and NSS1
So that firmware would not only use one rateset, but would use all
other valid rates, the fix is to go through all other possibilities
to make sure the rate look up can find the correct mcs index.
Change-Id: I5df9059b73954951c4adec56002a3eba80915752
CRs-fixed: 936078
Clean up the hddLog API and CDF_MODULE_ID_HDD with CDS_TRACE
misused in CDS module.
Change-Id: I786fa1ba216b42a6218f7eadba60ee7e5e82ebe5
CRs-fixed: 948327
This is a qcacld-2.0 to qcacld-3.0 propagation.
Currently WOW wake up event is processed in work thread which may be
delayed to schedule. Directly complete the event in tasklet in order
to proceed it in time. Also make sure the WOW wake up event handler
is in atomic context.
Change-Id: Ie6015d39321c7759b35f05acc7833ef8974c0157
CRs-Fixed: 900629
Record CE interrupt in CE event history since the interrupts
may come separately for the different interrupts.
Change-Id: I269a103054d3ab2015d67370c43f4af598871b8d
CRs-Fixed: 951569
qcacld-2.0 to qcacld-3.0 propagation
Record when descriptors are posted to or completed by the copy engine
in SLUB_DEBUG builds.
Change-Id: I78ee028a7a61ffd253092cbb530ce9ec2e5022d3
CRs-Fixed: 938120
qcacld-2.0 to qcacld-3.0 propagation.
WMM should be enabled if HT caps are present even if WMM ie is
not present in beacons/probe response frames. In few places it
is not taken care. This commit will address the issue.
CRs-fixed: 873761
Change-Id: I985b7721fc28c9b7d087123c6cff9d76f93696d5
qcacld-2.0 to qcacld-3.0 propagation.
Send tdls mgmt frames with VI tid to give more priority
to tdls mgmt frames.
CRs-Fixed: 873749
Change-Id: I9196680f09678185c1010b472851c1aca00b1635
We already know kernel version is more than equal to 3.10.
So remove static checks for any previous kernel.
Change-Id: I4e17614fae47782a02dd528c7b4adf3d2802ec69
CRs-Fixed: 920681
qcacld-2.0 to qcacld-3.0 propagation
Fix incorrect completion of pending CONS RM request/release
notification, which is sent when receiving PROD RM notification
from IPA. Also cleanup pending CONS request flag when IPA resource
loading/unloading is compelted.
Change-Id: Ie37b7d21e1ad016dbaf9aa0f89c97402911b4a02
CRs-Fixed: 943635
qcacld-2.0 to qcacld-3.0 propagation
When IPA requests WLAN CONS resource while IPA resource loading is in
progress, resource will not be granted even after the loading is
completed. This will eventually result IPA uC timeout.
Change-Id: Iae8373c43709cbbccef790973642f5992ddcd359
CRs-Fixed: 943635
qcacld-2.0 to qcacld-3.0 propagation
Since CLIENT_CONNECT message is sent to IPA before enabling WDI pipes,
CLIENT_CONNECT message count could be more than CLIENT_DISCONNECT
count, and this could cause an abnormal behavior in the IPACM.
Change-Id: I03d30c7f82aadf83979084b7e65b8ed14565588d
CRs-fixed: 941894
Module_init waits for probe to complete after registering the
driver. But this is unnecessary and module load is intended for
loading the module but probe would be called when hardware is
ready. Remove the wait during module_init.
Change-Id: Ic2fe7efa78a1527acf1fd5b7689d70f6d450ccd3
CRs-fixed: 950170
In module init, bunch of initializations are done which are not
required till probe call back gets called. Also in module exit,
some clean-up done which should wait till remove call back gets
called. Move the initialization done in module init to probe call back and
clean-up done in module exit to remove call back.
Change-Id: Id4a0cb21300de1ceab8ed043638b735f31d516d4
CRs-fixed: 950170
For statically linked driver, con_mode is used for moving from
machine mode to FTM mode but it has conditional compilation
issues. Fix the conditional compilation to properly compile when
FTM feature is enabled.
Along with it, unify the usage of con_mode such that
curr_con_mode is the variable which holds the connection mode
passed as part of module parameter as well as set by the driver.
Change-Id: I7d6a5c9b82d1dbb727208caca78089d6be357e71
CRs-fixed: 950170
Move module init/exit related implementation together and at the
end of the file.
Change-Id: I17a02e4fdddc17fc3a725c29e89a52f5bd9d49b9
CRs-fixed: 950170
qcacld-2.0 to qcacld-3.0 propagation.
FW checks the peer Rx LDPC capability in ht and vht capabilities
to do Tx LPDC. But host sets the Tx LPDC flag in peer_flags.
To disable Tx LDPC reset the Rx LDPC capability in peer ht
and vht caps based on Tx LPDC configuration in INI.
Change-Id: I211fd73fd70a35faaf4cfc2c5dc8d842c7ff1e5a
CRs-Fixed: 894306
LFR3 to indicate the change in IP subnet to user space (supplicant).
This enables the DHCP refresh in case of IP subnet change during
roaming.
Change-Id: I9842a28461346fe97ab39f5a11ae504f2e32fa16
CRs-Fixed: 876335
Add handler for gateway parameter request vendor command. The
request is issued to update the gateway parameters to be used
during subnet detection post roaming.
Change-Id: I848f24b36a1d65a0e8bb8465b2b6f2016cb2224c
CRs-Fixed: 876335
Add LFR subnet detection support to protocol stack and
device access layers. In LFR3, the device may perform multiple
roams (may be across multiple IP subnets) without the knowledge
of wlan host. The LFR subnet detection feature enables the device
to regain IP connectivity if the firmware has roamed across the
subnets which otherwise is not possible without disconnect and
reconnect.
Change-Id: I60959af8b6ed330313a7f08f8aa1edfb63938bb8
CRs-Fixed: 876335
Add an INI item to configure LFR subnet detection feature.
LFR subnet detection is enabled by default.
Change-Id: Ifb4bba60dfcd0347137f4a690db50b0c453d1ae8
CRs-Fixed: 876335
At present and going forward ESE and ESE_UPLOAD will be the
de-facto approach of supporting ESE.
There is no support for #ifndef FEATURE_WLAN_ESE_UPLOAD block of code.
Hence clean up this code.
Change-Id: I1e1307ec3430353496b1cf7aaa2eb5291ca1d5b2
CRs-Fixed: 949634
Currently tx STBC param sent to FW is taken from peer's response frame, which
is wrong if current hardware does not support 2x2 for given channel width.
Update the driver to check number of tx stream for current vdev and clear txSTBC
if needed.
Change-Id: If05e5de72ba5af95b343817d811db0f413493ee1
CRs-Fixed: 941217
qcacld-2.0 to qcacld-3.0 propagation
Fix soft AP to not send Assoc response for Assoc req which is
unprotected and initiated by an injector rather than a testbed
station.
If STAUT sends duplicate Assoc request, Assoc response should
be sent only in case of non-PMF connection.
Change-Id: I6fb4c139af333c937e767cb111df4d1d69bddbd9
CRs-Fixed: 902969
qcacld-2.0 to qcacld-3.0 propagation
Add configuration option for mpdu density through INI. Update
the default value of mpdu density from 0 to 7.
Change-Id: Ib97869d4aec160065c945cd62876d6fd191d63a5
CRs-Fixed: 941182
qcacld-2.0 to qcacld-3.0 propagation.
Current TDLS default teardown interval does not work in
all the scenarios. Hence, change the default teadown
interval to 5 seconds and default TDLS idle packet
threshold to 3 to support all TDLS use cases.
Change-Id: Idf8b4cd02963d24350a1322ac4c7465fbfc7204f
CRs-Fixed: 936003
qcacld-2.0 to qcacld-3.0 propagation.
Add new TDLS mode for TDLS external control operation to
achieve power save on the target. Firmware will use this mode
to control timers precisely and save the power.
Add configuration "gTDLSPeerKickoutThreshold" to fine tune
TDLS peer sta kick out operation.
Change-Id: Ie941f93b54983ca6323ef4384a66e0807a56a7b1
CRs-Fixed: 929749
qcacld-2.0 to qcacld-3.0 propagation.
Firmware uses same notification interval to send trigger to the
driver for both TDLS setup and TDLS teardown operations. In ideal
scenario firmware needs to have an option to configure different
values for TDLS setup and TDLS tear down operations. This change
will enable firmware to have different values for setup and
teardown operations.
Change-Id: I300350c56d4ef23993953338529f29df2ea122a1
CRs-Fixed: 920835
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_green_ap.c to use the unified set of APIs.
Change-Id: If58683a833b1650a6cbea147debcead2551697da
CRs-Fixed: 937202
Propagation from qcacld-2.0 to qcacld-3.0
- WLAN firmware does not support get/set operations for power
gating VDEV parameters
- Remove support for power gating VDEV parameters from WLAN host
driver
Change-Id: I5b262b71364c11f648b579a8bdb6fa993ecb4a81
CRs-Fixed: 880180
qcacld-2.0 to qcacld-3.0 propagation
Sometime the thread sleeps in kzalloc for long time, resulting in
thread stuck.
This change prints time taken by kzalloc, if time taken is more
than 3 seconds.
Change-Id: I027ab2ad4e93f8a02ba9e48e47d7aa3123785a31
CRs-Fixed: 926479
qcacld-2.0 to qcacld-3.0 propagation
Too many log prints are seen by default if unhandled action frame
are received.
This change lowers the log level for unhandled Action frame logs.
Change-Id: I4af258eed12c2f352f97df0f73e9ab0c6278a437
CRs-Fixed: 924661
qcacld-2.0 to qcacld-3.0 propagation
If connect is received and queued to sme pending list while scan
is in progress in sme, once scan is completed, again scan is
queued to get the scanned channel info with reason
eCsrScanGetScanChnInfo behind connect command.
Connect is executed next with scan command in pending queue.
Now if disconnect is received from hdd it is also queued in sme
pending cmd list behind scan.
Once connect is executed the wait for key state is set and wait
key timer is started. As only disconnect and set key command are
allowed in wait for key state, the pending cmd queue is not
executed with scan command at the head and thus the disconnect is
not executed. Also as supplicant has issued disconnect, no keys
will be set and pending command queue will not be processed till
wait for key timer expires.
If during this time unload starts all the commands including the
disconnect command sme pending queue are flushed and thus no
DEL BSS is sent to firmware before HAL STOP which leads to crash.
To avoid this add disconnect to the head of sme pending command
list so that disconnect can be processed after connect during
wait for key state.
Change-Id: I333e7b103ac10e368d34b5bf8b87cc360650cd50
CRs-Fixed: 930713
Since management frames have been added to the wmi pipe,
the wmi pipe may fill up before the driver schedules the
tx completion processing.
Make tx completion processing use the DDR ce index to
avoid register access durring reaping.
Change-Id: I213aa0274d3c66e583bcdb700ced1133c2c30ebc
CRs-Fixed: 945831
Fix WMI command path Tx failure case:
1) Current WMI command path frees the packet with dummy completion when hif
fails to send the packet down. Fix it by putting back cmd to endpoint
Tx queue for retry.
2) Also separate WMI mgmt command/event log buffer from control path
command logs
Change-Id: Icc3f7fde10a592de3c5354ba720d6810ce1b635a
CRs-Fixed: 940100
Ignore HTT_T2H_MSG_TYPE_MGMT_TX_COMPL_IND from firmware if
management over WMI is enabled.
Change-Id: Ic196d17526c251ae26dd59ca2f42b7bff9a46ffe
CRs-Fixed: 949946
Do not reserve tx descriptors for management packets
if management over WMI is enabled.
Change-Id: Iafe758d91d11f4875e3152d92538055784490a14
CRs-Fixed: 949917
Use list_for_each_entry_safe API to traverse list
while deleting list entry in cds_drop_rxpkt_by_staid
to avoid crash.
CRs-Fixed: 943767
Change-Id: I4d09fd88f0faefacfc886866d9045b09feeb4432
Remove per vdev tx descriptor pool feature as
it is applicable only for High Latency.
CRs-Fixed: 916724
Change-Id: I22ab3dd187518790694356bdde8475b194845bf5
a) Enabled flow control
b) Add small helper functions to avoid duplication of
code.
c) Fix thermal mitigation unpause issue with flow control.
CRs-Fixed: 916716
Change-Id: Ic02b66d1c23768a1c71dc08ed50dcedd02b647ce
This is a qcacld-2.0 to qcacld-3.0 propagation.
QCACLD firmware already addresses power concern during PNO scanning by
extending fast_scan_period, slow_scan_period and fast_scan_max_cycles
configuration which need to be set by the host driver.
Add the host driver support to do the same.
Description:
1. fast_scan_period: This is the fast PNO scan period. The scan interval time
sent down by the supplicant is assigned to this.
2. fast_scan_max_cycles: This parameter tells firmware to switch from
fast to slow scan period after this many number of fast_scan_periods
has elapsed.
3. slow_scan_period: This is slow PNO scan period with which scan happens
less frequently to save power. Once the FW switches from fast to slow period,
it remains in slow scan period until next PNO Start.
cfg.ini items:
1. Repurpose gPNOScanTimerRepeatValue to fast_scan_max_cycles.
2. Introduce new cfg.ini gPNOSlowScanMultiplier to act as multiplier of
fast_scan_period.
Change-Id: I453f09d42be3228ecc9c5023eca26eae1e589d6a
CRs-Fixed: 902381
qcacld-2.0 to qcacld-3.0 propagation
Add new RTT related wmi interface changes to support
TLV based messaging.
Change-Id: I0591907984c3c58039a06ce123dca777d24c590f
CRs-Fixed: 865207
Fix mangled APIs sme_configure_ext_wo_w,
sme_process_ready_to_ext_wo_w and
lim_remove_timeout_pbc_sessions which were introduced
while converting the names programmatically.
Change-Id: Ie0a79b476a99bf1be0411dae0542359e7d58141a
CRs-Fixed: 882962
qcacld-2.0 to qcacld-3.0 propagation
During SSR, Host is sending packets to firmware before WMI_READY_EVENT.
Fix is to avoid sending tx when logp_in_progress & clean ll-queue
packets in shutdown.
Change-Id: Ib6b9f4d51f2aa7f85d384831818b45763c702c88
CRs-Fixed: 834887
qcacld-2.0 to qcacld-3.0 propagation
Multicast packets using different sequence number space
gets dropped on the host due to the existing logic of
running duplicate detection check and out-of-order packet check
on all non-aggregation (legacy) TIDs, since f/w uses a
special (non-aggregation) TID (18) to indicate these packets
to the host, irrespective of sequence number space.
The fix is in 2 parts:
1) Do only duplicate detection on mcast packets & not out-of-order check
(Also do dup-detection only if retry bit is set)
2) Instead of using mcast TID indicated by f/w, use the actual
packet TID from the Rx descriptor to perform the duplicate detection
and use a separate (new) field in rx_reorder_array to store
the last successful mcast sequence number. On the next mcast packet
perform the duplicate detection against mcast sequence number, rather
than the ucast sequence number.
Change-Id: I4c3542e82a1917b4ed27513e9244702bb212df88
CRs-FIXED: 788954
qcacld-2.0 to qcacld-3.0 propagation
In Low-latency interface, to avoid 1d2 happening during roaming
test, host need to send HTC header to fw, by setting SendFlags
to zero to avoid deadlock situation.1d2 happened during roaming
test.
Change-Id: Ib3d16deadf038708fb75bcba692bd6adf3959c4e
CRs-Fixed: 807505
qcacld-2.0 to qcacld-3.0 propagation
STA gets disconnected with AP IPTIME N904NS when AP is configured
for WPA1 + TKIP on CH 161.
Return value of memcmp function must be checked with NOT operation.
Change-Id: Ic866a70917c1e713855c28a8f156ffe7c381fa07
CRs-Fixed: 642070
qcacld-2.0 to qcacld-3.0 propagation
Current implementation defers all the received frames
when ADD TS request is sent out over the air. This,
in addition, to check for pMac->lim.gLimAddtsSent
incurs delay, till ADD TS response timeout, in processing
of the ADD TS response received if SET_LIM_PROCESS_DEFD_MESGS
is set to FALSE. As there is no rationale defer processing
of Rx frames while waiting for ADDTS response, changes are
made to not defer processing of RX frames for the same.
Change-Id: I1d1a41a0e3555ae19548a0cabf3b9569af775f72
CRs-Fixed: 839546
qcacld-2.0 to qcacld-3.0 propagation
STA gets disconnected with AP IPTIME N904NS when AP is configured
for WPA1 + TKIP on CH 161.
Change-Id: Ifa30ed624c1f9f3c549def45cdb9e5f8ebfae233
CRs-Fixed: 627650
qcacld-2.0 to qcacld-3.0 propagation
This reverts Change-Id I858cd3cbd536ec189ea808c5d637abffe388f7aa.
With change id I858cd3cbd536ec189ea808c5d637abffe388f7aa,
host is not sending WMI_STA_UAPSD_AUTO_TRIG_CMDID command to firmware
during disable UAPSD per AC.
Change-Id: Ifdbcd6926ca86b1baeeadcf7a4720e460d41a6e5
CRs-Fixed: 911229
This is qcacld-2.0 to qcacld-3.0 propagation
Avoid invoking vfree inside spinlock during logging service
activation and deactivation. Since vfree is prone to sleep, this
disables the IRQs for duration longer than the acceptable limit.
vfree can be done without spin lock here, as there is no
synchronization issue in this scenario.
CRs-Fixed: 914363
Change-Id: I4d69431a98a4e4301dfc1e2b3b4c40c408a7ef99
For OEM to do OTA tests, power save, background scan, and low RSSI
scanning need to be disabled and it should be done dynamically.
Implement a vendor command to enable and disable OTA test mode.
CRs-fixed: 941776
Change-Id: Ic9da11cf5f4bb19a01d9b55c50c0aea196abbfb6
In P2P GO + GO concurrency case, only DBS mode is supported for
the two interfaces. Second P2P GO interface startup is blocked
if its channel is on the same band as the first P2P GO interface.
Change-Id: Ic85bd8f92983c8c08f61fdaf09be1ad13a17cd8f
CRs-fixed: 945804
qcacld-2.0 to qcacld-3.0 propagation
Default value of Tx beamformee is 0.
As as part of fix, enable the default value
of Tx beamformee.
Change-Id: Ib4b30f2a925e95cd96cc789ac7bc223274fa6a67
CRs-Fixed: 921834
qcacld-2.0 to qcacld-3.0 propagation
Currently tpAniSirGlobal pnoOffload value is initialized with
FW caps first time only and resetting to 0 while starting a bss in
go mode. Existing value of pnoOffload is not retained while
getting config for tSmeConfigParams.
Added changes to retain current value of pnoOffload from
tpAniSirGlobal while getting config for new tSmeConfigParams.
Change-Id: I0eda12ec1c69aeca4465d41f3e3ba96b8e1944cb
CRs-Fixed: 913994
qcacld-2.0 to qcacld-3.0 propagation
Add support to parse operating class from xcsa frame and select
channel bandwidth on basis of new operating class.
Change-Id: I33d794e77220ef82cca793767d459979eb940669
CRs-Fixed: 942104
qcacld-2.0 to qcacld-3.0 propagation
Currently there are many LL stats related logs
which doesn't provide any useful information.
As a part of fix, remove all those redundant logs.
Change-Id: Id1a89f209cfb57646828c5ee059f6f3790aac1c0
CRs-Fixed: 903941
qcacld-2.0 to qcacld-3.0 propagation
In Stop Adapter IBSS mode is not handled properly and
no DEL BSS is sent for the connected IBSS before DEL SELF STA.
This may lead to crash in FW.
As part of fix handle the IBSS mode and send DEL BSS if IBSS is
connected.
Change-Id: Ice1304aced1a158c7b589a95337412cda0183a04
CRs-Fixed: 908990
qcacld-2.0 to qcacld-3.0 propagation
If deauth is received just after Assoc rsp from AP in addSTA
response Re/assoc confirm is sent with status failure.
But protStatusCode in assoc confirm is not updated and thus the
pRoamInfo->reasonCode may have garbage value.
In case of Wep connection failure reason code,
pRoamInfo->reasonCode, is sent to the supplicant in connect
result. Now if pRoamInfo->reasonCode is 0 supplicant receives
connection success though connection have actually failed.
To avoid this update protStatusCode, before sending Re/assoc
failure.
Also properly derive if connection is WEP from roamProfile before
clearing it.
CRs-Fixed: 926572
Change-Id: I5ae0832d37746be16696f521bddd5b67307b1ee4
wdi20 enable implementation for hsoffload. Large physical address
support and wdi20 interface propagate to IPA.
part of HDD and CDS
Change-Id: Iaccab3ae233e0b9a8e4942bee0ebaa40ce94fc16
CRs-fixed: 941041
wdi20 enable implementation for hsoffload. Large physical address
support and wdi20 interface propagate to IPA.
This is part of HIF and DP.
Change-Id: If898f03a8a75689c98c70d1e55910f476d8fe329
CRs-fixed: 941041
qcacld-2.0 to qcacld-3.0 propagation
IPA pending_event list keeps IPA events arrived while IPA resource
loading/unloading.
This list is freed only when TX/Rx resume/suspend OP code from FW.
This change is to limit the pending event list size and free up the
pending event list when WLAN driver is unloaded.
Change-Id: Id0489a59bd3c2b04d2faba1069df7b2244a2a730
CRs-Fixed: 937765
qcacld-2.0 to qcacld-3.0 propagation
In the case of SAP + STA mode we fail to enable PNO on the STA interface,
and as a result the PNO feature will fail to find a network and wake the
host. Fix this by making sure PNO is configured in all appropriate
concurrency cases.
Change-Id: I97084cfde73025f0d09b60616959c9530ba82c80
CRs-fixed: 921150
qcacld-2.0 to qcacld-3.0 propagation
While processing GET STATES IOCTL, in a while loop, HOST prints PE, LIM
and MLM states of each session. Normally while loading, HOST allocates
memory for five sessions, but while processing this IOCTL, it iterating
in a loop assuming there are 255 sessions allocated, leading to crash
because of invalid memory access.
Hence while printing PE, LIM and MLM states iterate only for allocated
number of sessions.
Change-Id: I29c9a627615a1983d23831578f45aefe116dac25
CRs-Fixed: 879950
qcacld-2.0 to qcacld-3.0 propagation
Add support in driver for a new vendor command to get
the link properties nss, rate flags and operating
frequency.
Change-Id: Ie3b8d5b2c3886055d303441c5d8b2f2a0a2719bd
CRs-Fixed: 834199
qcacld-2.0 to qcacld-3.0 propagation
PE generated disassoc request is not serialized in SME queue. This
results in corrupting 'lim.limDisassocDeauthCnfReq.pMlmDisassocReq'
which is a global context to save disassoc request.
Address the above by indicating all the PE generated disassoc requests
to SME and process disconnection request only after receiving
eWNI_SME_DISASSOC_CNF from SME(similar to that of processing disassoc
request from peer).
Change-Id: I2b93925ba64c4d9ff22b071dd2e5c7681be59e15
CRs-Fixed: 934183
qcacld-2.0 to qcacld-3.0 propagation
Honor NL80211_SCAN_FLAG_FLUSH scan flag by flushing
sme and lim scan cache entries.
Change-Id: I1ff59e583f815bfec2df458c58a40b30b7bffa00
CRs-Fixed: 934979
Currently as part of application triggered channel switch both the
channel bandwith and bonding mode are limited to 20MHz.
Change made to properly update the channel width and bonding
parameters.
Change-Id: I48297eed74c9e3bfed6fefa67f664f3503fac1f6
CRs-Fixed: 944647
qcacld-2.0 to qcacld-3.0 propagation.
Too many log prints are seen if mtrace are dumped and this cause
WD bark.
To avoid this lower the log level of mtrace to Info.
Change-Id: I05d3fa8b3494785a1933f159280b6c9ba6923c0d
CRs-Fixed: 926416
Propagation from qcacld-2.0 to qcacld-3.0
Added sanity checks for below variable before accessing in the
driver exit path.
nl_srv_sock
pdev_txrx_ctx
Change-Id: I793db21e1a6d1eded027ecbd2805494ea7610852
CRs-Fixed: 846457
qcacld-2.0 to qcacld-3.0 propagation
Create a configuration item to program the first bucket
threshold of the scan results to have the flexibility to
adjust the first bucket threshold.
CRs-Fixed: 922979
Change-Id: I6fad27a2990f7555173e4735131e8392d0277009
1) Check for bssid if it is NULL, before dereferencing it.
2) Check for hal_ctx if it is NULL, before dereferencing it.
CRs-Fixed: 940721
Change-Id: I836416a4717b15902e8b8f27fa2e5e5e7935c12f
Target_lock was a global lock for all target and copy engine data
structure access. Replacing target_lock with a per copy engine
lock permits paralel completion handling for different copy engines.
Change-Id: I9c09d557c85f9e48beafe5e3f936e105183ddd3f
CRs-Fixed: 941355
This is called by the platform driver in case of kernel panic.
Replacement syncronization might be needed here if the kernel
panic doesn't stop the other host cpus before the platform driver
calls this.
Change-Id: Ic6d4eb1cb08f6363029463994ec7e3837212e271
CRs-Fixed: 941355
If watermarks are going to be used, the should be set as part of a
single threaded initialization sequence.
Change-Id: I3e1e9cd0f55f46d9f46718c139963931311fe8ae
CRs-Fixed: 941355
No other thread should modify the copy engine indexes while we
are cleaning up the data structures.
Change-Id: I324286c3a8eed24ddd94aa868dbaac425cc30dbf
CRs-Fixed: 941355
Remove ce_disable_any_copy_compl_intr and
ce_enable_any_copy_compl_intr since they aren't
used and give a false sense of thread safety.
Modifying copy complete interrupt currently needs
to be synchronized with completion handling.
Change-Id: Ieb27a8c71363ebd56f16eda9e1037a161a5eeb62
CRs-Fixed: 941355
Send and recv callback registration currently occurs durring init
and after bmi download is complete. In either case no transactions
are in progress and no race condition can exist.
Similarly watermark callback registration would happen at the same time
if it were used.
Change-Id: Ia77bf30fb3bcefa500465cea9ad9927990bb7ced
CRs-Fixed: 941355
Download length should be set before messages are recieved, so
no race condition should exist.
Change-Id: I92de4b3c4077f23032df45ceca6e169616351b8b
CRs-Fixed: 941355
FW is asserted, dont service the messages. The hif completion
thread used to prevent processing of messages when firmware crashed.
Change-Id: I42a5a285056e989d302e766f2922bb7c114634dc
CRs-Fixed: 941358
ce_enable_msi should happen before interupts are enabled. Therefore
we should be single threaded here and don't need to protect access
with a spin lock.
Change-Id: I24feec02003bdb402201d71d1cd5254dacae0b72
CRs-Fixed: 941355
ce_init should happen before interupts are enabled. Therefore
we should be single threaded here and don't need to protect access
with a spin lock.
Change-Id: I5e1cfd32860eeda8a403744cf1589e35c57ee6df
CRs-Fixed: 941355
We want to process the completions in parallel.
Upper layer should take care of its own thread safety.
hif_completion_thread is a legacy function that does in
context serialization of hif completions. Bypass it.
Change-Id: I7953545b55dae093931741359bbf985e2fb9faca
CRs-Fixed: 941358
This patch enables gEnableTxSUBeamformer by default in config ini
which will help to uncover some of the bugs in default DEV testing.
Change-Id: Ib64d53d307aced8f5384d691a3d7f4b383d52a0f
CRs-Fixed: 930322
This is qcacld-2.0 to qcacld-3.0 propagation
Currently in SAP mode, if max STA connected a operation to turn off
SAP will result in more than SME queue length cmds being enqueued.
To fix, this patch:
1) Makes the SME cmd queue length, 3 times the max STA.
2) Because of increased SME cmds, the allocation for all cmds
together will fail, hence allocate each SME cmd individually
and free them accordingly.
Change-Id: Ia1dfc5b00eacd9bdb503ce18927c62f1edd15320
CRs-Fixed: 928840