The qdf_trace_msg and qdf_vtrace_msg related API's declaration
are in qdf_types.h but the definition is in qdf_trace.c
Move the declaration to i_qdf_trace.h
Change-Id: I098540347446078bc6d43fd2377d197b2575da1a
CRs-Fixed: 2497779
Change Idbde9d70c64bc131813f5789c0453c9b3736228b has added
a logic to parse a string to uint16 array, there is no test
case written for this in unit test case infrastructure.
Add a unit test case to verify the logic written with the change
Idbde9d70c64bc131813f5789c0453c9b3736228b.
Change-Id: I38d6a0d6003807de7f5ec654926bd75da8b0996c
CRs-fixed: 2478274
The existing hex dump API dumps hex data only.
Add API so that the ascii data can also be
dumped along with hex dump
Change-Id: Icbe74b26f47601a249e3d7ac701f2a19d70fb83b
CRs-Fixed: 2464738
Defines QDF APIs for abstraction of cpumask_clear, cpumask_set_cpu,
and cpumask_setall.
Change-Id: I1678c600c7043b1d4a19e0479ceab9af0ce83d01
CRs-Fixed: 2478893
Target firmware Assert are at times related to Host Driver
interaction with the firmware. To debug these issues, host
driver dump is mandatory. The feature provides memory dump
of data structures registed with this framework. The dumps
are saved which can later be loaded using gdb and analysed.
Add apis support for the feature.
Change-Id: I41c5126a49a698969f24b17187f78f4b4db7a51e
CRs-Fixed: 2478139
htt_command_record, htt_event_record, htt_wbm_event_record
function is used to log command,event, wbm event to
in-memory data-structure.
We call these function from htt path.
Change-Id: Ib3e18b895485c84f0010f8c3ba95c2da85b00bde
CRs-Fixed: 2428742
Currently there is no api to parse a string to uint16 array.
Write an api to parse a string to uint16 array.
Change-Id: Idbde9d70c64bc131813f5789c0453c9b3736228b
CRs-Fixed: 2478267
Add QDF API to set cpu mask - qdf_thread_set_cpus_allowed_ptr.
Linux version of this API is implemented using set_cpus_allowed_ptr
linux API.
Change-Id: I3122e2b30c6d3f02e9c874c19db610e5f09ec064
CRs-Fixed: 2474323
Under memory debug, qdf_mem_multi_pages_alloc function is getting
reported as the culprit of memory leaks when there is no associated
qdf_mem_multi_pages_free call. qdf_mem_multi_pages_alloc is
just an allocator function which uses qdf_mem_malloc internally to
serve the requested allocation and is not the actual source of the leak.
As there are multiple users of qdf_mem_multi_pages_alloc in the code base,
add memory debug versions of qdf_mem_multi_pages_alloc/free to track the
actual users of the allocations.
Change-Id: I8b2159de842a3c5d7f9cdb244ca148cf6df37d0d
CRs-Fixed: 2474749
Clean up CONFIG_MCL from qdf_lock.c file by replacing with
feature flag FEATURE_RUNTIME_PM for which included header
files are used.
Change-Id: I9afff730b1b96a75888ca48b33c0020667d651fc
CRs-Fixed: 2477462
The qdf nbuf cb has members defined as union
which would be used separately either for WIN or MCL.
There are separate header files defined for having
different accessor functions for WIN or MCL.
The inclusion of the header file is differentiated
based on CONFIG_WIN which should be removed.
Use a different macro instead of CONFIG_WIN.
Change-Id: I6709fde22a0458ec184b9a0cba832b848fd2a8fa
CRs-Fixed: 2472886
Currently qdf_print, qdf_alert, qdf_err, qdf_warn,
qdf_info, qdf_debug, qdf_nofl_print, qdf_nofl_alert,
qdf_nofl_err, qdf_nofl_warn, qdf_nofl_info, qdf_nofl_debug
macros are defined under CONFIG_MCL feature flag since
these trace prints are supposed to be used only for QDF
module with module ID as QDF_MODULE_ID_QDF, WIN is using
these definitions with module ID as QDF_MODULE_ID_ANY and
these are separated with feature flag CONFIG_MCL.
As a part of cleanup activity of CONFIG_MCL feature flag
move these WIN specific trace definitions under WIN
specific feature flag QDF_TRACE_PRINT_ENABLE.
Change-Id: I838f76f2e3f4c2dd28f0463fa6c9d981304b136e
CRs-Fixed: 2472021
Currently NBUFF related parameters are declared under CONFIG_MCL
feature flag and are getting used under
FEATURE_NBUFF_REPLENISH_TIMER feature flag.
As part of CONFIG_MCL cleanup, move NBUFF related parameters
under correct feature flag FEATURE_NBUFF_REPLENISH_TIMER.
Change-Id: I438f7dbc0c67343c94ad78ea4df4cfb1fd2f051b
CRs-Fixed: 2472011
There are multiple definitions of __qdf_nbuf_free api based
on CONFIG_MCL feature flag.
As a part of cleanup activity remove multiple definitions
of __qdf_nbuf_free api.
Change-Id: Ib7fce54353561a45a4662c05d56d3af187a269e1
CRs-Fixed: 2472016
QDF_DEFAULT_TRACE_LEVEL macro is not getting used in case of
MCL, as part of cleanup of CONFIG_MCL macro dependency,
move this macro definition to correct WIN specific
feature flag.
Change-Id: I75cbfd856308f0027ecb805a41c15966528f314e
CRs-Fixed: 2468286
Read rssi_chain per nss per bw and from rx status TLVs
and update to host data structures.
CRs-Fixed: 2445933
Change-Id: I275e9e502a0a724410fc189ac293cadc8f2981e0
Add support for iommu domain instead of mapping in
struct __qdf_device to support use of API
pld_smmu_get_domain in place of pld_smmu_get_mapping,
which is to be deprecated.
Change-Id: I89e9eea8ec7095a79493c0adca15c8034c21f79a
CRs-Fixed: 2464861
In the current implementation, qdf runtime apis invocation
is controlled by macro CONFIG_MCL. So replace the CONFIG_MCL
with the feature flag FEATURE_RUNTIME_PM.
Change-Id: If120c87aa9ed1a0b3e4629c6ee1df4922744656b
CRs-Fixed: 2463188
Add interface API to send reject ap list to FW,
also add the blacklist manager UMAC, and QDF component
for the same.
Change-Id: I826e537683441762043003d71dc2b79ceebebbcb
CRs-Fixed: 2460770
The original version of the QDF trace functionality, introduced in
Change-Id I1d0cdfd8730a5c021aaa50b7dc8549d491d760b3, included a log
filtering mechanism inherited from the MCC code. This mechanism used
an internal table g_qdf_trace_info along with the following APIs which
were used to configure and query the table:
- qdf_trace_set_level
- qdf_trace_set_module_trace_level
- qdf_trace_set_value
- qdf_trace_get_level
Subsequently, as part of the MCC/WIN QDF convergence project,
Change-Id I871c09189202d021405777db732e8821e7aaca7c ("qcacmn: Update
QDF Debug Framework") updated the QDF trace functionality, and as a
result the usage of the g_qdf_trace_info table was replaced.
Since the legacy infrastructure is no longer used, remove it.
Change-Id: I1bb0c0e03c1d1e3227550477779d5db1549ff570
CRs-Fixed: 2461904
qdf_mem_malloc/free wrappers are using ksize to update the kmalloc counters
of the driver whereas the debug versions of this wrappers are using
requested size itself. To figure out the actual dynamic memory held by
the driver on the debug profile, use ksize for debug versions as well.
Change-Id: I4311f9a450e3fa3e04ac45b1bf7f36a7ff677057
CRs-Fixed: 2449995
__qdf_dma_get_sgtable_dma_addr() iterates through sgl entries
without appropriately checking for NULL pointers before attempting
to access them.
Fix the above-mentioned issue by adding a NULL check before access.
Change-Id: I7456db834f71b9b5cf3cb254526177b9fdcee664
CRs-Fixed: 2448239
Currently qdf_shared_print_ctrl_cleanup api is defined based on
CONFIG_MCL feature flag, as MCL is not using this api, move
this api under correct WIN specific feature flag
QDF_TRACE_PRINT_ENABLE.
Change-Id: I80117f351e45ad2106524c333f219bba77d49115
CRs-fixed: 2448447
Add support to configure any HAL SRNG descriptor to
be allocated from cached memory area. This is to
optimize of CPU cycles spent on uncached
memory accesses. Also added prefetch of cached
descriptors
Change-Id: I2544e8596d48e2f5549bf687a764c16d73397545
CRs-fixed: 2267945
qcacld-2.0 to qcacmn propagation
This change adds support for driver supported TCP
delayed ack to increase TCP RX performance in
third-party platform which don'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: 2414231
Implement the interface to transfer the info between
host driver and firmware about the ap which has interop
issues with the DUT. It is detected by firmware and
forwarded to user sapce for persistent storage. User
space configs these APs to firmware when the DUT
starts up next time.
CRs-Fixed: 2425197
Change-Id: I3857d2a605baa2673af333a7a0412f1690b59769
Packets sent/received at fixed rate were also considered to
update the client rates as displayed in wlanconfig command output.
An idle client transmits NULL packets at basic rate and hence
rx rate shows up the basic rate when an idle client is connected.
Consider only data packets to update rates. Do not consider
NULL packets for rate update.
CRs-Fixed: 2435447
Change-Id: Icbf9f2a656bb0d36e16d953952c529185c119f17
Add QDF API to check if DRV is connected or not such that
proper decision can be taken during wow enable request.
Change-Id: Ic128882d564b5717b6dc749c6fe229a6dbb86c8f
CRs-Fixed: 2457065
earlier we were extracting the tid from the rx tlvs, this
was in the last cache line of the 384 byte tlv. we are
extracting various fields from REO descriptor, now we are
also getting tid from the descriptor to avoid accessing
the last cache line of rx TLV there by avoiding one
cache miss per packet.
Change-Id: I1f4f12dca402604692ea374599add6763d68ab01
CRs-fixed: 2449706
In qdf_mc_timer_stop_sync acquires the platform_info spinlock
and call's the del_tymer_sync. del_timer_sync waits for callbacks
to execute all CPU's. But callback scheduler_mc_timer_callback
tries to acquire the platform_info lock to execute. This can
lead to deadlock.
Change-Id: Ib21ee5b57e11d1c98e1308ee5318fb47d78a6ba2
CRs-Fixed: 2453603
The current QDF timer multiplier factor is of type
uint32 which takes whole number, so we cannot have multiplier
factors like 0.5 or 1.5
To provide such timer multiplier,
we define timer multiplier, as a macro, provided though
build options and support values like 0.5 or 1.5 through
1/2 and 3/2 respectively and this is used to configure the
timeout value.
Change-Id: I3f5441e33cca71f4a399cbbf9c6f61e2f21ee828
CRs-Fixed: 2450710
Add QDF wrappers for minidump logging, which logs
memory locations to be collected as part of minidump.
Change-Id: I2c6b648d3fbb3aed9aaf7eb4872df5befcae971f
CRs-Fixed: 2444081
Protect SSR protection for wifi pos callback function to prevent
possible race condition between user request and driver unload.
Change-Id: I68d3636429f8891f0a4d6c78642aeecf7d67e105
CRs-Fixed: 2349354
Mc timer is used to initialize the p2p roc timer.
And the actual timer runs in the soft irq thread and
when the timer exipres it posts the message to mc thread.
Currently, qdf_mc_timer_stop is called to stop the timer.
It calls the del_timer internally to delete the timer.
del_timer() ensures that the given timer is not queued
to run anywhere in the system. But the callback may
be running on another CPU core can create race conditions.
So use del_timer_sync to delete the roc timer.
Change-Id: I2c0fd6e335fc342a3acf06ede534c84d40e19346
CRs-Fixed: 2447236
Add target specific HW header for ipq6018 compilation.
Remove the 8074 header dependencies for 6018 compilation.
Change-Id: I8e45e3e039a4596c6722538405dcd381918fa6b1
The file cds_if_upperproto.h is now removed from qcacld-3.0
project and hence remove from including this file.
Change-Id: I8a9974e70bf71916911b994e058b9892c4b5725d
CRs-Fixed: 2436678
This patchset fixes following build errors with
CONFIG_SLUB_DEBUG_ON=y on sdxprairie.
qdf_types_test.c:111:2: error: this decimal constant is
unsigned only in ISO C90 [-Werror]
qdf_types_test.c:199:2: error: this decimal constant is
unsigned only in ISO C90 [-Werror]
Change-Id: I9379eb2754b95ef3a03ed2369d972fdf3ea46322
CRs-Fixed: 2433430
With this feature, using appropriate commands, link layer, network layer,
transport layer and some of the application protocols can be tagged with
the user provided tag values for easier identification of protocols. The
supported protocols today are as follows.
ARP, DHCPv4, DHCPv6, DNS over TCP (v4), DNS over TCP (v6), DNS over UDP
(v4), DNS over UDP (v6), ICMPv4, ICMPv6, TCPv4, TCPv6, UDPv4,
UDPv6, IPv4, IPv6, EAP.
Receive packets are tagged by hardware. Tags are applied after the first
matching rule. Hence it is recommended that the rules are
programmed in such a way that tags are configured from application layer
to data link layer to get expected results.
Change-Id: Ibdc2bd2b78234f482074955e89fb93f05988eaca
To identify the reason for recovery, add parameter
"reason" for qdf_trigger_self_recovery.
And revise comment for qdf_hang_reason, replace "CDS"
with "QDF".
Change-Id: I8b388b5e83dbbdf29246c264ada56290f0dd3bfc
CRs-Fixed: 2431282
Compiler threw error -
implicit declaration of function 'qdf_dp_trace_apply_tput_policy'
when CONFIG_DP_TRACE not enabled.
Change-Id: Ia4e6fdf129b7fdc31c901b6fa78ce2cb0935b369
CRs-Fixed: 2433430