The qdf_in_interrupt API was defined in the internal
Linux util file.
Move the API from internal to qdf_util.h and provide
the appropriate abstraction
CRs-Fixed: 2853590
Change-Id: I512155776275684223c1901d789853d2529fcc83
Use non-inline OS-abstraction APIs to avoid OS APIs usage directly in
driver.
Add new non-inline OS-abstraction APIs.
CRs-Fixed: 2742480
Change-Id: I177b41d69ca8f102fa67316d8901b6991dea3203
The prints from the driver are rate limited based on the
configurations provided.
Also the prints which are redirected to user space daemon
and of certain log levels are also printed on the console.
Add a rate limiting version of the API for the prints coming
to console via the logging daemon.
CRs-Fixed: 2853590
Change-Id: I9683172ac0665b46581bad13a1050c6d70d72b5c
During TCP Tx traffic account for the Tx nbuf memory mapped
and unmapped in the driver.
Change-Id: I40df92f124eec94f2fa3ddc8bcd910615f4539bf
CRs-Fixed: 2831015
Introduce proper logging APIs for diag module and also rate limit error
logs when skb allocation fails in low memory conditions to avoid excessive
logging side effects
Change-Id: Ia41ff7cfd526180825df61a43f1f59163947f257
CRs-Fixed: 2836681
The current timer modification API does not return the status
of the underlying OS specific API.
The return status of the underlying API could be useful
to detect if the timer was modified even before the timer
has expired before the last update to the timer.
Update the API to return the status of the underlying API.
CRs-Fixed: 2835319
Change-Id: Ieade0ff82386f959d7f29264a25b75a96a72e644
Add new wrapper to get the bus specific register information via
the bus driver.
Change-Id: I544b23c8f6654e9215fb4f03203d6754c766dada
CRs-Fixed: 2833251
Whenever driver does a recovery because of the bus failure the
reason for the recovery is not known until the reason code is
read in the hif layer. So, update the recovery reason if there
is a bus id read failure in the hif.
Change-Id: I5ed6adc92ef2a94a031f682e5ffd17af9ac6893d
CRs-Fixed: 2833247
The QDF_GET_BITS is only applicable to the 32 bits. Add 64 bits version
QDF_GET_BITS64 to support 64bits operation.
Change-Id: Iaa40c5c52e259cd14358162f2b193fcbe257e319
CRs-Fixed: 2828527
The existing QDF implementation does the following
1. The QDF trace either prints to the console
2. The QDF trace message is directed to the utils,
which based on log level
a. redirects to a user space daemon or
b. redirects to console
There is excessive logging detection in the utils code
before redirecting the prints to the console.
If the number of prints to console is more than
the configured threshold, we assert in development builds.
Moving the API for excessive logging detection from utils to
QDF trace.
The configuration for detection of excessive logging currently
is only for the number of prints per second.
Adding time configuration also to detection of excess logging
to the console.
CRs-Fixed: 2809752
Change-Id: Iecc408fc9b576fa900a6d7ee793639f1dde3110d
The TX notify comp flag is used only by MCL, hence moving
to the MCL this field to the MCL specific cb private structure.
Change-Id: I707ab9252dea705552df9678eedd8501f479672e
Add sysfs node for DP level memory stats:
/sys/kernel/wifi/wlan/wlan_dp_mem_stats
These include Tx, Rx SKB memory allocated, Tx/Rx
buffer count, outstanding Tx desc count.
Add and subtract the skb memory for Rx/Tx when
the map/unmap functions are invoked.
Change-Id: If62cc47bb60f7eb63f60e861f755f3417248677f
CRs-Fixed: 2724482
For some 3rd party platforms, get_timestamp through legacy
kernel API is time costing. For spin_lock/unlock statistics
info, the resolution in ms level is enough. So use another
light weight API to save CPU resource for 3rd party
platforms only.
Change-Id: I9182f00adda0d3081a2c40b222ab37bb1ca9d6a1
CRs-Fixed: 2796263
Get reo destination indication from REO2SW ring descriptor,
store it to qdf_nbuf_cb of skb.
Change-Id: I5a4c504b2550229a77a435b1f5ddb78c4abe51aa
CRs-Fixed: 2809080
Add bus related info in hif layer in order to get bus status
when hang issue happened.
Change-Id: If922e0892e0f65de778b9696bbc56fc63c25c169
CRs-Fixed: 2801350
Page fragments can be attached to the chained nbufs present in the
frag_list of the parent nbuf. Update the debug entries for such fragments
in different scenarios.
Change-Id: Ib114ec43dcb6cbcd707552bcca19f1ac0d3c2a22
CRs-Fixed: 2791903
Change ROME IPA pipes from IPA_CLIENT_WLAN1_CONS and
IPA_CLIENT_WLAN1_PROD to IPA_CLIENT_WLAN3_CONS and
IPA_CLIENT_WLAN3_PROD. The MCC pipe is changed to
IPA_CLIENT_WLAN2_CONS
Change-Id: I329eadc28e5730f6e9f73325ba41d69102dc89c0
If the data ether header contains 802.1Q and 802.1AD tag,
current API to identify DHCP/ARP/EAPOL frame will not work properly,
for 802.1Q/802.1AD frame, there is extra 4 or 8 bytes in ether header.
Add 802.1Q and 802.1AD support for DHCP/EAPOL/ARP check.
Change-Id: Ibf00bd9e1497ba9700abca10d840104a73238f56
CRs-Fixed: 2771942
Add function qdf_mem_multi_pages_zero() to support multi-pages
memory zero operation.
Change-Id: I08b5c2722c02881550d3a1da27d5137c0957fd51
CRs-Fixed: 2776365
Add api to qdf abstraction framework to return size of nbuf
from nbuf data pointer to end pointer.
Change-Id: I8a450306ddcaa7c6a85607425bc1c1fd26c4e1e4
CRs-Fixed: 2767763
Update frag global counter and refcount for the frag debug nodes
in debug version of the API qdf_nbuf_unshare.
Change-Id: Ia7ede226701793fe1febb3411aa508ba7967092c
CRs-Fixed: 2776166
If reo_dst_ctrl register writing failed, this is a fatal error for
IPA pipe going to down case as RX frames will still be routed to
IPA rings then hit NOC error. retry register writing to see any
chance to write successfully, if fail always, trigger SSR or panic.
Change-Id: I3c03faa28e6cc93f396944579a360d5405c8138e
CRs-Fixed: 2774789
In qdf_nbuf_queue_free API __qdf_nbuf_free API is
called to free the nbuf which is not clearing the debug
node instead call qdf_nbuf_free API to delete the nbuf
debug node and free nbuf
Change-Id: I34f06a440ce7758d4ea02fbd1d696366460aa871
Add qdf framework apis to clear cpu_mask and loop
through cpus present and excluded in the cpu_mask.
Use the apis to clear the cpu_mask and loop through
cpus included in and excluded from the cpu_mask to
ensure that the latency of the cores is set correctly.
Change-Id: I131ef3df2ec5b1e5a1a78d39cbc5a5dedbaa2903
CRs-Fixed: 2772353
Add major print logic for SKB as it is currently done for kmalloc and
dma allocations so that SKB allocations can be profiled.
Change-Id: Ic78cef61bc1519aa54da9823199add92c116aad7
CRs-Fixed: 2769631
Add sequence number to each packet queued on wmi pipe and
match it against expected sequence number in wmi completion handler.
WMI packets are consumed internally, use the skb mark field to capture
the sequence number of the wmi packet.
Change-Id: I1421e3fcff0a2b326f6d899780c773950544ef26
CRs-Fixed: 2741465
Currently line number is not useful in the logs and to print
the line number consumes lot of memory in driver text area size.
To reduce the driver size add feature flag to enable/disable
line number logging in the driver.
Change-Id: Ie715ff9238545a5041c0241b731dc14460050316
CRs-Fixed: 2766247
These two macros are obsolete and removed.
Use the below new macros
1. For logging MAC address in kernel or driver logs, use QDF_MAC_ADDR_FMT
in combination with QDF_MAC_ADDR_REF
2. For other management interfaces like debugfs, sysfs, ioctl, wext,
unit test code, non-production simulation SW use
QDF_FULL_MAC_FMT and QDF_FULL_MAC_REF
Change-Id: I366ceddfbb86526ebf24366b18b9e847fc5e4cea
CRs-Fixed: 2767703
The idea behind introducing these macros is, if the feature
CONFIG_WLAN_TRACE_HIDE_MAC_ADDRESS is enabled, then the
requirement is to hide 2nd, 3rd and 4th octet of the
MAC address in the kernel logs and driver logs.
But other management interfaces like ioctl, debugfs, sysfs,
wext, unit test code or non-production simulator sw (iot_sim)
should continue to log the full mac address.
If the developer directly introduces %pM in the code, it becomes
difficult to catch this in the code review and may end up breaking
the feature CONFIG_WLAN_TRACE_HIDE_MAC_ADDRESS if enabled.
Hence the plan is to introduce meaningful macros to help code
audit easy and with the help of automation, block the developer
from directly introducing %pM in the code.
Change-Id: Id28663eb6e750febba07ed9bdad168187df3248f
CRs-Fixed: 2763028
Currently there is no api to parse a string to uint32 array.
Write an api to parse a string to uint32 array.
Change-Id: I54ab4ba1009f6efeb535df1ad43c56e1c3e56d2b
CRs-Fixed: 2758878
Add changes to support new definition of
send_roam_scan_offload_mode_cmd() in connection manager.
Change-Id: Iea10907756ea785b0b0de72d01375f50ac3dbd6a
CRs-Fixed: 2758318
SKB frag debug framework is required for debug purpose of frag based
approach in monitor mode
Change-Id: Ic7a5a2c3d7397c4d7dd2c5db32802b0f694e6101
CRs-Fixed: 2736136