Remove false positives for locks acquired with trylock.
Trylock was not recording the timestamp when the lock was
acquired. Therefore an old timestamp was used when releasing
the lock and the infrastructure would report that the lock
was held for longer than it was.
With the infrastructure set to generate a crash when a lock
is held too long, these false positives make the system unstable.
Change-Id: I87989b21daf4a2dfb74c8cfbba09be2af53dd1b2
CRs-Fixed: 1111956
Adding lock stats print upon spinlock & mutex destroy.
The spinlock destroy of the lro unloading lock in the
napi context did not match the create in location.
When a station adapter goes down and is brought back up,
the mismatch appears.
Change-Id: I137e6ffce3fb23f32a085b9fa36b065449a6d8a1
CRs-Fixed: 1111956
The Common subsystem shutdown is allowed after the irq_enable
register is written. A race condition in host (multiple other
interrupts firing on the same core). Can delay the register read
and allow the common sub system to be shutdown before the read.
The read would then cause an SNOC error as the register is unclocked.
Change-Id: Icb90c185eabcbd63b28b02bdf5c1de2d06d3620e
CRs-Fixed: 1108494
Adding lock stats print upon spinlock & mutex destroy.
Without the destroy api invoked the lock stats are not printed.
Change-Id: I670bef0aeca03b61ad6d2f1ffec404b6c33f9002
CRs-Fixed: 1100505
Adding lock stats print upon spinlock & mutex destroy.
Without the destroy api invoked the lock stats are not printed.
Change-Id: I50b4db8412e336fcc22514be3ae4aaa2188415a8
CRs-Fixed: 1100505
Adding lock stats print upon spinlock & mutex destroy.
Without the destroy api invoked the lock stats are not printed.
Change-Id: Id3c432e1f6982ea47bdf1de5c15f1a3568df4eb9
CRs-Fixed: 1100505
LOCK_STATS does profiling and catching of instances where
locks are held too long. Separate out these two concerns
with separate macro flags.
Change-Id: Idb530baa23c5fcde84689bf910988da22e36123d
CRs-Fixed: 1100505
Wish to profile spinlock & mutex usage.
Bug on when spinlock is being used to protect
large regions of time.
(1mS for irq disabled, 5mS for bh disabled,
5ms for regular spinlock).
Change-Id: I95190a0d3d407a91a869f9f015e61d75e80830a7
CRs-Fixed: 1100505
qdf_trace prototype needs to be defined as well.
note: i_qdf_trace.h is still needed for qdf_print
to be used, but we have removed dependencies of
i_qdf_trace.h on other include files (so this is fine).
Change-Id: I01052d00c1619e4847de702a687554badd47882f
CRs-Fixed: 1100505
Allow qdf to print messages without including qdf_trace headers.
qdf_trace.h contents are not available in several qdf headers because
qdf_trace.h includes those headers. By moving the log level enum
to the types.h file, qdf_print will be universally available.
Change-Id: Ia8f53ed86bdd68b79341b4526a404e5d62c91170
CRs-Fixed: 1100505
The api qdf_get_log_timestamp is the fastest way to get a
high resolution timestamp in the system, however its
scaling is not consistent. This adds some conversion
apis for logging time differences in human readible quantities.
This also adds the reverse conversion.
Change-Id: I6c22132514c2cebb67c850260214a7f734bf8670
CRs-Fixed: 1100505
Make sure that NAPI event handler would handle events only
after it has been initialized. Check init flag before procesing
the event and emit a warning and return an error to the caller.
Change-Id: I9d2b84560ee2363ecf2a570dbef0275dfb87786a
CRs-Fixed: 1091678
Update QDF debug framework with API to store and to get the print index.
As a part of QDF framework convergence, we need to update the QDF framework.
Add API to handle the print index in the converged QDF framework.
Change-Id: I871c09189202d021405777db732e8821e7aaca7c
CRs-Fixed: 1108907
The pld_common.h stub doesn't include all the header files it needs
for compilation. Let it get included from hal_internal.h through
hal_api.h. In this manner, all the required .h files will allready
be included.
Change-Id: I40d107d2305baabe57719afe854bad4428d74a23
CRs-Fixed: 1113131
hif_prepare_hal_shadow_register_cfg and hif_print_hal_shadow_register_cfg
needed to be declared static after enabling "Werror=missing-prototypes"
Change-Id: I3682436edb7bcb3ee02f1c4037aefc82863c0ec5
CRs-Fixed: 1113131
When shadow registers replace other register addresses,
ensure that they are configured to point at the registers
that would be written to with shadow registers disabled.
Change-Id: I789021fe394cad2ce50cbbeb2943827b6d5e464f
CRs-Fixed: 1113131
In this change, hif requests hal construct the shadow register
configuration for all the necessary datapath rings. Then hif
requests hal append the configuration for the srng rings used
by the host copy engine module. When constructing the shadow
register configuration, the hal makes note to use the shadow
register addresses instead of the actual addresses.
Change-Id: Ide8f523dece0d1dc6eb05f4c86739ece7909c25a
CRs-Fixed: 1113131
Add pdev_id in FIPS extract params to be used to get appropriate pdev.
Also refactor extart APIs to get all data in one API and implement TLV
APIs.
Change-Id: Ib58d54ad0dcc25814e58f45e7e4a83d01549a523
CRs-Fixed: 1115213
Add TLV APIs to extract DCS intereference event. Add pdev id in
extract API used to derive pdev object.
Change-Id: Ie42ec1e3aec899ddc5b6b13d37dfd468ee29df7c
CRs-Fixed: 1115213
Add extract API for handling UTF event data received from the target
for both TLV and non-TLV cases.
Change-Id: I62525d7c8663fe90e0e3e76cf5286bb9dc86acd0
CRs-Fixed: 1115293
Change the static allocation of tso common info to dynamic
allocation to use this structure later on.
Introduce one more element in tso common info structure
use to store the dma address of EIT header which can be
repeatedly use to assign to the dma address of the 0th fragment
of all the tso segments corresponding to one jumbo skb.
CRs-Fixed: 1106688
Change-Id: I572c7dcd2d29cb19b398e13e0fe7ce6f88ee1641
Correct a dependency between MEMORY_DEBUG and WLAN_DEBUFS. QDF memory
stats is expected to be enabled only when MEMORY_DEBUG feature is
there.
Change-Id: Id14b5ccfa532660b24087f9456f99b1d41f5420c
CRs-Fixed: 1108556
Create debug file system entries to show current QDF memory usage.
The 'list' option adds a little overhead, which is minimized by
locking node by node while traversing the entire allocated memory
list. Major operation is lock-less, using node reference count.
Following debugfs entries are added,
1. /sys/kernel/debug/<module_name>_qdf/mem/list
This lists QDF allocation by file and line number. It takes
some time to traverse the entire allocated list.
2. /sys/kernel/debug/<module_name>_qdf/mem/kmalloc
This file shows total kmalloc done by qdf_mem_alloc().
3. /sys/kernel/debug/<module_name>_qdf/mem/dma
This file shows total allocation done by qdf_mem_alloc_consistent()
Change-Id: Ie40a7cb6ee03dd58aebd0fbda0118ab06b64725a
CRs-Fixed: 1084097
Create a root directory for debugfs at
/sys/kernel/debug/KBUILD_MODNAME_qdf/. The module name,
KBUILD_MODNAME, is used in the path to avoid conflict in case of
multiple instances of the same driver.
Any sub module in QDF can use this as the root directory to add
further files of directories. While unloading the driver the exit
routine does a recursive cleanup of any remaining files or
sub directories.
Even though debugfs is a Linux specific feature, a logic which is
related to file system for debugging can be added here.
This feature is protected with a compilation flag WLAN_DEBUGFS.
Change-Id: I21cae38b69f45c22121dfe70fe84f02423a26020
CRs-Fixed: 1083771
Add hw_mode_id. HW mode is received in extended service ready.
This will be used to determine FW capability to support multiple radio.
This is used on host to create multiple instantces of pdev on host.
Change mac_phy_cap extract API to get mac_phy_cap based on hw_mode_id
and phy_id
Change-Id: I9a6abdac8799d167828f13bef61b1a1d8c3e9769
CRs-Fixed: 1113888
QDF Debug Framework is implemented that will be used across
WIN and MCL to converge the debug methods used currently.
These changes have passed basic dev validation, carried out
by exercising each of the APIs.
Also, WIN validation is complete with these framework changes tested by
registering to the framework and adapting to the new converged trace API
qdf_trace_msg_cmn.
Change-Id: I4b87c910906cf0a49e91b1000f5218402cd45fe2
CRs-Fixed: 1102956
The WIN-specific macro for QDF_TRACE should use the
log-level.Currently,it is defined to printk which
results in flooding the console with debug prints of all
levels.
CR's Fixed: 1112458
Change-Id: Ic63c695fdc667af02595f9217f1bf365f76317f0
Added raw mode descriptor preparation support in tx path when packet is
in Interface configured in raw mode.
Change-Id: I3159bce9ec6f3cd86ccfb157c51d1cb5f6412b89
Disable CHK_2K_MODE and OOR_MODE in REO descriptor. Also set RTY bit for non-BA TID queues as temporary WAR for duplicate detection issue.
Change-Id: Ifa51c20ffbfe31c807d4e7f99014cb76f411e066