IPA callbacks need to be processed in tasklet
context in NON-SMP configuration as rx thread
is not used in NON-SMP context.
Hence Process IPA uc response in tasklet context
for NON-SMP configuration.
CRs-Fixed: 960302
Change-Id: I98d69dbdc1083f43035fe264bbee668e5efd5eee
Introduce DFS-3 support changes in DFS layer.
Add support for per segment based queuing, processing
and pattern matching of the radar events in 80+80 channel
width mode, when both segments are dfs.
Also, add support for parsing the new DFS-3 radar summary
report and extract the segment ID on which a phyerror is
seen. Report the segment ID on which the radar has been
detected to the WMA layer to add only radar detected 80MHz
segment channels to be added to NOL in 80+80 MHz channel
width mode.
Change-Id: Ib9ed2122844cef5fde2b632accc8c798e86bf7a3
CRs-Fixed: 964262
Adding support for parsing the WMI_PHYERR_EVENTID
for DFS-3 in WMA event handler. Configure the hw
board id to DFS module fetched from the wmi service
ready event.
Change-Id: I003fab790c7f46b54e5d41bcf1bbfa16f0cdc722
CRs-Fixed: 964262
qcacld-2.0 to qcacld-3.0 propagation
The sap Context related phyMode should be used
instead of the phyMode in hal. Otherwise, the incorrect
channel width will be reported to supplicant.
Change-Id: Ic0ce7861a786de5aef8b43c6aa0fde9f600b08b2
CRs-Fixed: 909668
hif_claim_device does not serve a purpose in copy engine.
The usage and implementation of hif_claim_device need to be
reexamined for sdio and usb. It should not store the device
in a ce specific data structure.
Change-Id: I0847e152ae3a1ca57d5c6937d6929918063cc362
CRs-Fixed: 967244
cds_get_context was not supporting epping. Allow epping to manage its
own global context since it is a top level module.
Change-Id: Ic5faf885c83109162be141788a5f8871a4e35cef
CRs-Fixed: 967244
Currently Tx beamformee feature is enabled only in STA mode.
Add knob to enable or disable the Tx beamformee feature in SAP
mode
Change-Id: I6ea218b3bff6c973688aad716a3f1a3c8acc469b
CRs-Fixed: 963034
Fix memory leak in case of txrx_fw_st_rst command where
we are not expecting any response from firmware.
CRs-Fixed: 964465
Change-Id: Iad91cb5557ef167d126ef68e07f02445ad7a0b97
Remove unnecessary acquiring of SME lock in sme_roam_free_connect_profile
since this function does not access any SME structures.
Change-Id: I0ddafc4276ef5028b48fda0ae3ea4e6a0c23245e
CRs-Fixed: 958839
Add new argument for mac_ctx in definition of tx_timer_create macro
so that its caller can use any local variable name for mac context.
Currently pMac is hardcoded as first param in definition of the macro
which prohibits caller of that function from using any other name.
Change-Id: Id901424ba16846eab62c00a80d48a5c85c73bea6
CRs-Fixed: 824222
In case kmalloc fail goto end of function and properly free
other possible allocated memory buffers.
Change-Id: I41d7577471b475b0a2a0daa83c6ffc845314ceb4
CRs-Fixed: 958755
Rename API cds_is_load_unload_in_progress() to
cds_is_load_or_unload_in_progress() for clarity purpose.
Change-Id: I209c661ccee760f822d5df53577d822f3c741b37
CRs-Fixed: 964217
cds_is_load_unload_in_progress is checking for both driver
load AND unload states. This is leading to all external threads
still enter in driver when driver has already started unload
clean up process. Fix this API to check either load OR unload
in progress driver states.
Change-Id: I4cd446393346bc5c085bc9a92ee68f46f1ec5097
CRs-Fixed: 964211
Driver unload is not waiting for external threads to exit
before starting clean up process. Add CDS SSR ready check
for driver unload such that driver unload waits for all
external threads to exit before cleaning up driver data
structures.
Change-Id: Ic5ac1b770dea8e470ed8dcce50a4f66451f918f1
CRs-Fixed: 964151
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