Abstract CDS's use of CPU hotplug events by using the new QDF CPU
hotplug APIs.
Change-Id: Id37ef9028f710a55938539c8e00bb63ffeb86495
CRs-Fixed: 2139720
cds_open() currently returns success for a large subset of its failure
paths. Ensure a failure reason is returned for every failure path in
cds_open().
Change-Id: I857ffce4eac30ce3fc332c5392c1e859217c414f
CRs-Fixed: 2132715
Fix the maximum permissible length for Keyname NAI and also
perform a check for the same.
Change-Id: Ib6eaa11a470202fcde7495f788ab6d3c0272cefe
CRs-Fixed: 2126720
Packet log ops are protected against load-unload and SSR, but not
against module stop. Take care to add check for module stop.
Also takecare to NULLing of wdi_event_list and NULL check before accessing.
Change-Id: I20d49ff587719fc14f60a53e86092383de6ef5b8
CRs-Fixed: 2082135
Ignore target suspend timeout if fw is down such that
system can recover gracefully.
Change-Id: I26c3a1fb34483a46cd4f9d48d17408b688e5ad6c
CRs-Fixed: 2130097
SAP Rx TPUT is bounded by host network stack, which is running in the
context of IPA work-queue, when IPA offload data path enabled.
However RPS shouldn't enabled for legacy Rx data path, where NAPI is
enabled. So, we dynamically enable RPS for SAP interface when the vdev
comes up and IPA was enabled only.
Send RPS enable indication to CNSS daemon to enable RPS only when SAP
interface comes up and disable RPS when SAP interface is closed.
Change-Id: Ia669b2c3ae814d0577f5226d8acbf026740ad760
CRs-Fixed: 1113202
When cds_open fails after calling cds_sched_open, cleanup is attempted.
However, cds_sched_close is currently protected by a faulty
conditional. Remove the conditional so the scheduler context can be
cleaned up appropriately for all cds_open failure modes.
Change-Id: I709e8d2af06ffdf1a2910d81d23fa3a33ffbe074
CRs-Fixed: 2129677
LRO rx jumbo packets cannot be forwarded to other vdev and kernel drops
them with warning message:
"skbuff: wlan0: received packets cannot be forwarded while LRO is enabled"
So disable LRO capability during concurrency.
Change-Id: Ib35e1ee5f9c18a846e21ce1eb293e12e17761fa8
CRs-Fixed: 1092193
FW ready state guarantees the completion of 2nd stage power on
reset sequence of wcn3990 target.
Add fw ready uevent to update driver state, which is required
to check if target registers are accessible or not, while
recovery is in progress.
Change-Id: I78d56644d4d4ac3a0371be625a2debed8ac7cebf
CRs-Fixed: 2058451
Provide an interface to propagate the feature
specific config parameters to Lithium datapath.
Change-Id: Iec6f2205a87a02806933abf7538a95bddd82d5a0
CRs-Fixed: 2097229
If probe failed because of no memory, the return values are
not properly perculated up the call stack.
Fix this to return error values properly up the call stack.
CRs-Fixed: 2124159
Change-Id: Iba20a73555c86c26f3f07fe89e9030159e3974c0
Add FILS roaming support changes as follows:
- Update ERP info in RSO Start
- Update HLP info in a new command WMI_PDEV_UPDATE_FILS_HLP_PKT_CMDID
- Set/Delete PMK cache info with WMI_PDEV_UPDATE_PMK_CACHE_CMDID
- Process FILS TLV in Roam Synch Indication and update the FILS info
[seq number,PMK, KEK, realm] to Supplicant.
Change-Id: I78c3bdde080701deb8d2bdb92d8d57d18cceb864
CRs-Fixed: 2081252
Introduce a new parameter in the ini file for the maximum
number of MSDUs per HTT_RX_INORDERIND message.
This parameter is now sent over to the FW through the RFS
configuration message.
Change-Id: Id0057861bc172a36483804170274b202198b6824
CRs-Fixed: 2106760
STA is roaming to 2G AP even though 5G
only is configured through ini.
Set weightage of the 2G social channels
to zero so that firmware will not roam
to 2G channels.
Change-Id: I7dea8413618265e0f1fe353da4b858583c1921af
CRs-Fixed: 2117614
Add ini param 'gtsf_ptp_options' to control
PTP options, it's a bitmap:
bit0 - PTP_OPT_RX(0x1)
set this bit to enable RX time stamping
bit1 - PTP_OPT_TX(0x2)
set this bit to enable TX time stamping
bit2 - PTP_OPT_RAW(0x4)
set this bit to use raw time as timestamp
bit3 - TSF_DBG_FS(0x8)
set this bit to add device attriubte 'tsf' for iface
The default value of gtsf_ptp_options is 0xf
Propagated from qcacld-2.0.
Change-Id: Ie53d503bdd2e85790502583a238ee138f4bcf6c6
CRs-Fixed: 2079466
Update ini param g_auto_detect_power_failure_mode to incorporate below
values,
0 - Don't register wow wakeup event and FW crashes on power failure
1 - Register wow wakeup event and FW sends failure event to host on
power failure
2 - Don't register wow wakeup event and FW silently rejuvenate on
power failure
3 - Don't register wow wakeup event and the auto power failure detect
feature is disabled in FW.
Change-Id: I8a704954ecbacadbc035c1523fa41a18b6300f66
CRs-Fixed: 2087144
Add Vendor Event to get the driver hang reason indicating to the
user space that the driver has detected an internal failure.
This event carries the information indicating the reason that triggered
this detection.
Change-Id: I3934f2a18c796ed3b53175dcbe7efd7f4d1409b9
CRs-fixed: 2098498
As part of the last interface down, driver starts the interface
change timer to close the modules of 15seconds, if there is no
request to use the interfaces from upper layer during this time
the timer expiers and closes modules. There can be SSR/PDR triggered in the
different context which during shutdown tries to call the
respective module notifiers which can be purged/freed
in the timer context.
Synchronize the interface change timer callback with the shutdown
using the interface change timer lock. Following steps are taken
to make sure one thread is completed before other thread starts
execution:
* Set the respective flag of recovery inprogress or fw_down
so that access to firmware is blocked.
* Take the interface change lock, so if the timer callback
is running it will complete the closing the modulkes,
or if the uevent gets the lock it completes the calling
notifiers and purges the same.
* Release the interface change lock.
Change-Id: I1d7f62cd0ce7268cc9a5bda2a72dae384b70a6e2
CRs-Fixed: 2100846
Provide an interface to propagate the feature
specific config parameters to Lithium datapath.
Change-Id: I852b14cb04b1c2c01a697434bc5fe8b29dbfe9ea
CRs-Fixed: 2097229
cds_get_global_context() is the only remaining API which uses
the v_CONTEXT_t typedef. It was always strange to have an
abstraction for (void *) since that is an integral part of C99
and hence does not require abstraction, so replace the return
type of cds_get_global_context() from v_CONTEXT_t to void *.
Change-Id: I836994bf7405db54eea333bbb29785e606fb0196
CRs-Fixed: 2117092
Currently cds_init() returns a pointer to the CDS Global Context. At
one time this was necessary since it was required to subsequently pass
this context pointer to other CDS APIs. But now CDS internally
maintains a pointer to its context, and no CDS APIs now require this
pointer, so no longer return the pointer. The ultimate goal is to keep
all references to the CDS context inside CDS.
Change-Id: Id068a2d351e492eca7b84ef23f277939104c8b46
CRs-Fixed: 2117004
Currently hdd_context_create() directly dereferences the global CDS
context pointer in order to save a pointer to the HDD context. This is
a layering violation. Instead update cds_set_context() to handle the
HDD context, and call that from hdd_context_create() to save the
pointer to the HDD context.
Change-Id: Ie54725225a7dd5653eeb35e94aa3f3a752edc62a
CRs-Fixed: 2115513
Update driver for the latest reg domain info according to
Regdomain_23 and Regdomain_24 excel sheets.
Change-Id: I6b259be20de650886a16c32b69f8ed82b96dbcd8
CRs-Fixed: 2112485
During probe if htc_wait_target fails with any error status, driver will
BUG_ON except when the FW_DOWN bit is set. This is to let probe fail
gracefully in case of recoverable errors and BUG_ON for fatal errors.
So driver will BUG_ON for NOMEM errors as well, even though recovery is
possible in this case with a driver load retry.
Do not BUG_ON in case of error status is NOMEM or FW_DOWN is set.
Change-Id: I0e7cbd4db8263765f0d97709ec30de6aefb6fae5
CRs-Fixed: 2102844
Country codes IQ and GI are not recognized by driver.
Add driver support to recognize country code IQ and GI.
Change-Id: I76997d4426718a57fee23c9774153f1adc597c44
CRs-Fixed: 2104094
qcacld-2.0 to qcacld-3.0 propagation
Currently the crash can be injected by iwpriv command and FW
gets crashed.
Changes are done to add the gEnableCrashInject ini parameter
1) This ini param is disabled by default.
2) If this param is disabled the crash inject is ignored.
Change-Id: I7e908be1e37090a9d343dc04411fe387f776a937
CRs-Fixed: 864932
Currently cds_sched_close() takes a cds_context param. However CDS
already maintains its own context, hence this param introduces an
unnecessary coupling, so remove it.
Change-Id: Ic7ceb85653acd2acdb700ae9d2ef15f4e09b81c7
CRs-Fixed: 2109435
Currently cds_close() takes a cds_context param. However CDS already
maintains its own context, hence this param introduces an unnecessary
coupling, so remove it.
Change-Id: I9c5231ef5d1e2ca969ff01c3fa0dc9b202e1aabd
CRs-Fixed: 2109430
Currently cds_disable() takes a cds_context param. However CDS already
maintains its own context, hence this param introduces an unnecessary
coupling, so remove it.
Change-Id: I539b3c19a52a9c663268bade6a0acfaa411906dd
CRs-Fixed: 2109429
Currently cds_enable() takes a cds_context param. However CDS already
maintains its own context, hence this param introduces an unnecessary
coupling, so remove it.
Change-Id: I13a9a0cbdb8b869f8f543c4f7f89cffbcf4fd210
CRs-Fixed: 2109427
Currently cds_alloc_context() & cds_free_context() take a CDS context
parameter. However CDS already maintains its own context, hence this
parameter introduces an unnecessary coupling, so remove it.
Change-Id: I4501a0fea7acc7b4a764b0d425da386922b93bcb
CRs-Fixed: 2109265
Currently wma_open() takes a cds_ctx parameter. All of the other WMA
functions which previously took a cds_ctx no longer use that
parameter, and those functions have been modified to remove the unused
parameter. wma_open() still needs the cds_ctx, but it can get that
context by calling cds_get_global_context(), so remove the cds_ctx
parameter to be consistent with the other WMA functions.
Note: the fact that wma_open() needs the cds_ctx, and then
dereferences it, is a layering violation that needs to be addressed in
the future.
Change-Id: I176e2ac68cc2e8081645a4ce3c158b41d3018587
CRs-Fixed: 2109263
Currently wma_wmi_service_close() takes a cds_ctx parameter. All of
the other WMA functions which previously took a cds_ctx no longer use
that parameter, and those functions have been modified to remove the
unused parameter. wma_wmi_service_close() still needs the cds_ctx, but
it can get that context by calling cds_get_global_context(), so remove
the cds_ctx parameter to be consistent with the other WMA functions.
Note: the fact that wma_wmi_service_close() needs the cds_ctx, and
then dereferences it, is a layering violation that needs to be
addressed in the future.
Change-Id: I02564bae87077314fea58c1509b3a50b8d567a7a
CRs-Fixed: 2109262
Currently wma_wmi_work_close() takes a cds_ctx parameter. At one time
this was needed for the call to cds_get_context(), but that is no
longer the case, so remove this unused parameter.
Change-Id: Ibc64cd1398babc899c21a1ee4c0fc280769c4d9e
CRs-Fixed: 2109261
Currently wma_close() takes a cds_ctx parameter. At one time this was
needed for the call to cds_get_context(), but that is no longer the
case, so remove this unused parameter.
Change-Id: I31d1016cff580f9330027f8104348466df9f01dd
CRs-Fixed: 2109259
Currently cds_wma_complete_cback() takes a parameter that is a pointer
to the CDS context. However CDS already maintains its own context,
hence this param introduces an unnecessary coupling, so remove it.
Change-Id: I1b4588f18f807008fd212a8e5d04e3895a12922c
CRs-Fixed: 2109257
Currently wma_pre_start() takes a cds_ctx parameter. At one time this
was needed for the call to cds_get_context(), but that is no longer
the case, so remove this unused parameter.
Change-Id: Ic4582ecafbee6fc1d0f8ebbf3c62ed8c7b47a179
CRs-Fixed: 2109255
Currently wma_stop() takes a cds_ctx parameter. At one time this was
needed for the call to cds_get_context(), but that is no longer the
case, so remove this unused parameter.
Change-Id: Iba40ac86e5916be3b8c2a62cf5483c9b7a242be5
CRs-Fixed: 2109254
Currently wma_start() takes a cds_ctx parameter. At one time this was
needed for the call to cds_get_context(), but that is no longer the
case, so remove this unused parameter.
Change-Id: If6756ca37a7e4ec4ade1c72eea080f3bc89ad7e4
CRs-Fixed: 2109253
Currently wma_setneedshutdown() takes a cds_ctx parameter. At one time
this was needed for the call to cds_get_context(), but that is no
longer the case, so remove this unused parameter.
Change-Id: I65f2af2e97b09523f5cf00369b5cf95ad01194d9
CRs-Fixed: 2109252
Currently wma_needshutdown() takes a cds_ctx parameter. At one time
this was needed for the call to cds_get_context(), but that is no
longer the case, so remove this unused parameter.
Change-Id: I31fd07480719bf3401ed52b57951e19ccb4d143c
CRs-Fixed: 2109251
Currently cds_pre_enable() takes a cds_context param. However CDS
already maintains its own context, hence this param introduces an
unnecessary coupling, so remove it.
Change-Id: I5a33859583ea4245c79daf42addd62ecedfd11df
CRs-Fixed: 2109242
Driver unload and SSR waits for all driver entry point to exit.
Log driver active entry point in every alternate attempt such
that debugability is improved.
Change-Id: I36558b473401b86f1fafcdc0346e4f42f264c203
CRs-Fixed: 2106140
The Linux Coding Style frowns upon mixed-case names and so-called
Hungarian notation, so rename pHddCtx to align with the Coding Style.
Change-Id: I1d5be4ab122f3e179cabbd94c24b6f10a437b153
CRs-Fixed: 2103651