cds_cfg is assigned the return value from function
cds_get_ini_config. cds_cfg may be null pointer. Add
null pointer check before cds_cfg is
dereferenced.
Change-Id: I184c0a589fa660c5c49cd951986ad918cbc42bcd
CRs-Fixed: 2518433
For runtime PM if the bus is suspended driver need to consider
extra 6 sec time for bus resume.
Thus add 6 sec extra in WMI timeouts if runtime PM is supported.
Change-Id: I5515cc889a0315382bac11a33ea6f901b7af1c46
CRs-Fixed: 2507029
Support monitor mode enablement by changing driver mode, and also
remove the support that enable monitor mode with insmod parameter
"con_mode_monitor = 4", use "con_mode = 4" instead.
enable monitor mode steps for reference:
(1) change driver mode
a. svc wifi disable
b. echo 4 > /sys/module/wlan/parameters/con_mode
c. ifconfig wlan0 up
d. iwpriv wlan0 setMonChan 11 0
(2) insmod with kernal parameter way
a. insmod /vendor/lib/modules/qca_cld3_wlan.ko con_mode=4
b. ifconfig wlan0 up
c. iwpriv wlan0 setMonChan 11 0
Change-Id: Ie615533d060261d545b3b92bea9916099ccccadd
CRs-Fixed: 2494158
RDDM can be collected during kernel panic and pld_collect_rddm is
a blocking call that will cause WLAN watchdog if the caller is from
scheduler thread. Hence revert this change and collecting FW dump
inside kernel panic handler.
CRs-Fixed: 2506844
Change-Id: I8667896e61b856fc2e03e1c8278a6451b6a04c24
In standard linux kernel, struct dma_iommu_mapping is not defined for
arm64, while in qualcomm linux kernel, struct dma_iommu_mapping is
defined for arm and arm64.
To fix build error in standard linux kernel, use struct dma_iommu_mapping
only when ENABLE_SMMU_S1_TRANSLATION is defined.
Change-Id: Ib02073163f2a38c47f864c6592fe2470046868ce
CRs-Fixed: 2496733
Post rx mic error information to HDD via new HDD mic
error callback(hdd_rx_mic_error_ind) registered to
.rx_mic_error member in dp_ol_if_ops.
Change-Id: Ia1e2b78a94dddba48937995ecf62fb5a7ae4139d
CRs-Fixed: 2488452
In cds_sched_find_attach_cpu function, change calls to functions
cpumask_clear, cpumask_set_cpu, and cpumask_setall to instead use the
QDF abstraction of these functions qdf_cpumask_clear,
qdf_cpumask_set_cpu, and qdf_cpumask_setall.
Change-Id: Ibd62e4d0f38ad3b8f2483e6cf40d56fcb70cba10
CRs-Fixed: 2486827
This is to Remove CONFIG_MCL in qcacmn code.
Related qcacmn change is
Ie231e966229789bcd8fa69aef1bc20e9b07a88ae.
Change-Id: I7b9500bc5de74be20d404758b43fca590bbf7caa
CRs-Fixed: 2484900
This is to remove CONFIG_MCL from qcacmn code.
Related qcacmn change is
Ia417c90060b20b004b1e5408be654ff392a8113d.
Move cds_is_fatal_event_enabled from
wlan_logging_set_fw_flush_complete to
cds_logging_set_fw_flush_complete.
Change-Id: I709c1f9be40d0b09df512d995a72edd5e7a5c820
CRs-Fixed: 2484843
Affine DP RX Threads to perf cluster in high throughput scenarios.
High throughput is detected using existing logic from the bandwidth
timer.
Change-Id: Ieb98c6930807ba42be7f5b4d0b8a78dfb197ba27
CRs-Fixed: 2474322
qcacld-2.0 to qcacld-3.0 propagation
This change adds support for driver supported TCP
delayed ack to increase TCP RX performance in
third-party platform which does't support kernel
TCP delayed ack feature.
TCP delayed ack is dependent on count and timer
values. Whatever is achieved first will trigger
sending TCP ack.
This feature can be controlled through ini values.
gDriverDelAckTimerValue - timer value in ms
gDriverDelAckPktCount - delayed ack count
gDriverDelAckEnable - enable/disable feature
Change-Id: I8105bbb90965295b5a4aefeb00d344a90155974d
CRs-fixed: 2414224
When Rome host F/W out of sync, cds_trigger_recovery_handler is
called, but pld_collect_rddm is added in it by change
Id9f1dfefe1560affff6c4ecfca1b8fdba3eb0928,
Rome doesn't support RDDM, panic will always happen without F/W
dump.
With this change and ini gEnableSelfRecovery=1, when host F/W out
of sync happens, crash inject is sent to F/W to trigger F/W dump,
if subsystem restart level is "system", panic will happen,
If subsystem restart level is "related", SSR will happen.
Change-Id: I3c714e6b2750ef3305b0f4c64ea5fe8fdc74c1d8
CRs-Fixed: 2472484
Add QCA_LL_PDEV_TX_FLOW_CONTROL for both
QCA_LL_LEGACY_TX_FLOW_CONTROL and QCA_LL_TX_FLOW_CONTROL_V2
disabled platform, avoid frame drop in driver which leads to bad TCP
TX throughput. Change NUM_TX_QUEUES to 5 for this case to avoid invalid
memory access in wlan_hdd_netif_queue_control().
Change-Id: Ifa649e31a41d1bf89eadc8cc7e9520f0e27b9fe4
CRs-Fixed: 2466996
Use new API pld_smmu_get_domain in place of
pld_smmu_get_mapping, which is to be deprecated.
Change-Id: I7a083cd3c0deecdbf774b57121866cd72fc157dc
Crs-Fixed: 2464850
Host need to fill netbuf with qtime instead of tsf. So
host need to add tsf64 enable/disable related functions
and definitions to sync with FW.
The tsf64_time is new added to fw/host structure, so host
need to add parse functions to get tsf64_time from tx_desc.
Change-Id: Ieea0d8f905eb57629d279f8da0e811857b760b1f
CRs-Fixed: 2444456
Add stop_th and start_th for QCA_LL_TX_FLOW_CONTROL_V2 disabled
platform, which is pdev based tx_desc pool. Change pdev tx_desc pool
size from 1056 to 900, default stop_th is 15% start_th is 25%, this
setting is exactly same as QCA_LL_TX_FLOW_CONTROL_V2. Pause netif tx
queues for all vdevs when stop_th reached instead of dropping frames.
Reduce pdev pool size could significantly reduce firmware wmm drop. Both
of host and firmware frame dropps lead to bad TCP throughput.
Change-Id: I77daf8c9fdef624f8ec479885b7705deb1fef142
CRs-Fixed: 2436772
When the ready event is received from the firmware, hdd callback
is called to create the pdev and update the capabilties. If
there is any error the error is not propogated back to hdd
which can result in the accessing the invalid memory.
Propagate the status correctly from hdd to wma to resolve this issue.
This will result in the probe failure until the resources are available
or reference leaks are fixed.
Change-Id: I97ec062893216e25e285d95d6bfb5cf3e91a4005
CRs-Fixed: 2426612
HLP data extracted from FILS association response frame needs to
be sent to upper layer. When association success is posted to
sme, HLP data is copied from lim pe_fils_info structure to
sme_join_rsp->roam_fils_info. But the hlp data is parsed from
association response frame but its not copied to pe_fils_session
This resuts in hlp data not sent to hdd and upper layers.
Copy fils data from parsed association response frame into the
pe_fils_info for FILS connection.
Currently there is pointer to hlp_data in pe_session also. But
it is not used and memory allocation is also not done for this
hlp_data. Cleanup this unused hlp data in pe_session and only
use the hlp data from pe_fils_session structure.
Change-Id: I0ef6df6e55130e18a85e2ddf49f8293d8672ac0b
CRs-Fixed: 2424493
Scan queue isn't unregistered, lead to scheduler queue leakage,
after driver module start/stop several times, scheduler queues
are used out, can't register any more.
Change-Id: I98d81591aee25a5e18e560766fb077733eb1b671
CRs-Fixed: 2431696
When WLAN_CONV_CRYPTO_IE_SUPPORT enabled, pmkid should be
saved to crypto component by crypto API. Otherwsie RSN ie
construction will have no pmkid info to add to rsn ie buf.
Change-Id: I8643aca794dcb42323d3d051e7a15a0597167ed6
CRs-Fixed: 2402775
Add INI option to control consecutive WMI writes. Setting this 1
will essentially serializes the HTC WMI command writes.
Change-Id: I8e28990127f3e4dac2fa91ac9b9df87eed321a2a
CRs-Fixed: 2424795
With the addition and integration of the Driver Synchronization feature,
it is no longer necessary to keep track of whether the driver modules
are starting or stopping. Remove the driver modules starting/stopping
flags.
Change-Id: I4718eedfaa1305780c5fcf6a2ff04114b210a911
CRs-Fixed: 2423618
Per the Linux Kernel coding style, as enforced by the kernel
checkpatch script, pointers should not be explicitly compared to
NULL. Therefore within cds replace any such comparisons with logical
operations performed on the pointer itself.
Change-Id: Ib542e8e26c16dd0d6afccb0fd94bca75a89b21e1
CRs-Fixed: 2418395
lim_is_system_in_scan_state was used when scan was handled by host
and with scan offloaded the API always return false and thus is
of no use. Also the SCAN state used by it are never set.
Thus remove the unused scan state and lim_is_system_in_scan_state.
Change-Id: Ie9b78340035d85805cc9416f557b683a0a3be232
CRs-Fixed: 2417851
driver module has been stopped since long time no interface is up
and dp_soc handle has been freed, but one virtual interface operation
still try to access invalid dp_soc from gp_cds_context, panic
happened.
set gp_cds_context->dp_soc to NULL if dp_soc is detached.
Change-Id: Icb2aa8bb15e309d8fcc749bafe37253c82a21f36
CRs-Fixed: 2413720
Fix resume issue while SSR in progress. When firmware goes down
while driver is in suspend state, fix driver resume(wmi fail) issue.
Change-Id: I5521b92a0a14382a8e1e4b4172e3ed91ad5d93a8
CRs-Fixed: 2412130
To address kernel control flow integrity (CFI) issues related to
type mismatch, correct input argument type for ol_rx_data_cb().
Change-Id: Iafefe5dc3d946e3d67743de1a662aa3b0511cf5d
CRs-Fixed: 2407160
Change I870a1271a627d47242000f5e04068e628f567216 ("qcacld-3.0: Cleanup
usage of RA rate limit variables in WMA") removed all usage of field
is_ra_ratelimit_enabled in struct cds_config_info. Since this field is
now obsolete, remove it.
Change-Id: Iea020b56cb1927718bccb7bc77d314e40b9c73a6
CRs-Fixed: 2411167
There is duplicate codes about DP INI in function cds_cdp_cfg_attach,
so remove it.
Change-Id: I0e6879cf28944cfd92ae7a3e6f4594641431d571
CRs-Fixed: 2408904
There are a few consumers of the legacy OS_* APIs. Directly use
appropriate QDF APIs instead.
Change-Id: Ibe46172200119c6d293acb301baf796276c5949c
CRs-Fixed: 2403793
Remove the duplicate enumerations in CDS and
use the enums defined in wlan_cmn_ieee80211.h.
Change-Id: I0bf380d0b06d85be8778d985b10246ea2b8aa474
CRs-Fixed: 2395980