Change WMI initialization sequence to support WMI modularization.
TLV and Non-TLV modules calls WMI module registration based on target type.
WMI attach will call respective attach routines based on registration.
Change-Id: Id56446f491d129758537913d2d5d6633f8dec918
CRs-Fixed: 2179854
WMI service handle is not attached for all Pdev with recent
WMI changes. Fix host panic due to missing WMI service handles
for all Pdev.
Change-Id: Ic6107120ea4a49e49b86ebbfe385e440de3f49a9
wmi_mgmt_cmd_record is used to add WMI mgmt cmd record. But mgmt
cmd tx comp record is missing due to mismatch of is_management_record.
Fix is to change is_management_record WMI cmd id to match those who
call wmi_mgmt_cmd_record. In wmi_unified_cmd_send, mgmt cmd record
add is no longer needed since already added in wmi_mgmt_cmd_record.
Change-Id: I41daf428ac0848dabaf4d87e3ecb7dca5e1c2774
CRs-Fixed: 2168104
After driver init, if not interface is created and the stop modules
gets called, the wmi debugfs dir is removed. After this it is not
created again during start modules. Due to this the wmi debugfs will
be unavailable after this.
Fix the wmi debugfs entry creation when interface creation timeout
happens after driver init.
CRs-Fixed: 2164039
Change-Id: Ib1a9c655b5144b11d506a09268918b63f82adcc0
The wmi data buffer offset passed to record command and event
buffer uses different offset and type for command and event.
Change the recorded wmi data buffer type to uin8_t pointer
for both, wmi command and wmi event record.
CRs-Fixed: 2164395
Change-Id: Ie759248a6a32632dd93f751a856a0588d9a11c25
The datatype of wd_msg_type_id was uint16_t which truncates the
upper bytes of msg id.
Changing the datatype of wd_msg_type_id from uint16_t to uint32_t.
Change-Id: I49b5eefd878660f6ba3d0b7da451df99661c59df
In the event of an WMI work queue watchdog bite, dump the stack
trace to aid in debugging.
Change-Id: I7f3df5a56904748fb80afb1aef1aed90d20fbbc0
CRs-Fixed: 2145913
Receipt of the wmi events wasn't being recoreded when the event
was being processed in the mc thread or tasklet. Log the receipt
in all cases to root-cause unprocessed wmi events faster.
Change-Id: I2543a9ff9049e7d177c1ffa5df1e899035860f91
CRs-Fixed: 2125232
Remove wmi_id_to_name from wmi_unified.c as this
function is define in fw_api project.
Change-Id: I4b7d83ed79fe9a5d3a867149972a9ccb1e2f34c8
CRs-Fixed: 2002773
WMI work queue rx context can block other work queue
shared on the same CPU if it takes more time.
Add watchdog timer for WMI work queue housekeeping and
assert if takes more time in SLUB DEBUG build
Change-Id: I60b1dad21afbf93a5b88aa855a2835bb0f85b82f
CRs-Fixed: 2104106
Extended service bitmap is used by FW to indicate supported services
bitmap for services excedding the current limitation of 128. Add support
to save and use this bitmap to check services supported in FW. Also,
change exisiting services bitmap to be dynamic allocated buffer to
optimize the buffer used to save the bitmap.
Change-Id: I24a0321bc1a06ee3aedf1c6acbc379e907bbd464
CRs-Fixed: 2103617
qcacld-2.0 to qcacmn 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: 1087774
kmsg is flooded with excessive logs from wmi_control_rx.
Fix is to change log level to debug.
Change-Id: I327463387a5dac318ecc0ad7e773006cfc09b42a
CRs-Fixed: 2073718
Remove redundant header file inclusion from wmi layer by abstracting
the dependency with in WMI layer.
Change-Id: Ie113b69006a960b70d781134775bc44c7508fc4c
CRs-Fixed: 2023825
implicit conversion from enumeration type 'A_STATUS' to different enumeration type 'QDF_STATUS'
implicit conversion from enumeration type 'QDF_STATUS' to different enumeration type 'A_STATUS'
CRs-Fixed: 2063344
Change-Id: Id3613d0b7fca58c3d94c5af59838b0bff3ef26de
Target stop and (re)start will free htc_handle and re-negotiate endpoint
ids. Change wmi_unified_get_pdev_handle to update htc_handle and
endpoint data in wmi_handle to reflect latest values.
Change-Id: I2385a73bd1d61a6f36db8bdaca4a22115f6bf68c
CRs-Fixed: 2062439
pdev_id in FW starts from one. Zero is reserved for Soc. But host uses
pdev_id starting from zero. Make WMI changes to take care of this
difference and always provide and accept pdev_id starting from zero at
WMI. Use 0xFF for SoC on host.
Change-Id: I49f481e54bbaeea9359753bc7d3da9092fc9559a
CRs-Fixed: 2045125
With linux4.4 definition of seq_printf is changed. New definition
updated in driver applies va_start twice which causes incorrect
output hence definition is updated to make sure va_start is applied
only once. For write operations using copy_from_user to avoid
crash due to accessing user space area.
CRs-Fixed: 2042210
IRs-Fixed: 201729
Change-Id: I4043ab027411d42e15adaf53e6e92ae57aa987c7
ol_defines header inclusion is invalid in WMI layer.
Remove the header inclusion by abstracting the dependency
with in WMI layer.
Change-Id: I5eb8624605cde20b516a1d8d0c823996c363e119
CRs-Fixed: 2023821
Create a timestamp conversion helper that returns whole seconds and
remaining micro seconds, for easier consumption by logging methods.
Change-Id: I5bc40075566485f3dc9f7e5fd81a13ec462c5da0
CRs-Fixed: 2031564
WMI RX event processing is very critical for WLAN driver and today
we are using kernel's shared event work queue. Shared event work
queue is used by many drivers and if any work submitted in shared
work queue takes longer time to finish then it directly impacts WLAN
control path processing.
Define a dedicated work queue for WMI RX event processing and use
it for WMI RX event handling.
Change-Id: I8ee6ca5b4b20c3357d46f8b56943078a0a76977f
CRs-Fixed: 2029775
Create output agnostic log print APIs for WMI and Credit History to
enhance the debugging experience.
Change-Id: Ie89a9cb3b54c373ac2610d62003e940da17696d8
CRs-Fixed: 2028762
Add new API to unregister event handler to allow
converged components to move to common eventid space.
Change-Id: I97f096ff3e36bc7923718498c535fb6c3c50e7e7
CRs-Fixed: 2023157
Firmware requires WMI commands to be sent on different copy engine for
each MAC. Add support in WMI to use different endpoints for each pdev.
Change-Id: Ie0dfe71043275ac694362f88b625219f089b5303
CRs-Fixed: 2005214
Change incorrect extraction of wmi_handle from file handler
reference during write operations, performed on debugfs files
in wmi_recording/wmi logging.
IR-Fixed: 189093
CRs-Fixed: 1111722
Change-Id: I0603efe8f8e2530950f845f9ef9419b6784c626f
qcacld-2.0 to qcacmn propagation.
Don't Tag Non-WoW packets as Runtime PM packets after
wow suspend. Some WMI Commands can be send in Runtime
PM context and MC thread context. Packets coming via
MC Thread Context can be tagged as Runtime PM packets
when runtime pm in progress.
Packets should be tagged in the same caller context to
avoid any race condition. Being stability issue, addressing
this issue by not tagging any non-wow commands as runtime pm
after wow suspend. This will ensure all the non-wow packets
coming after wow_suspend flag is set as non runtime pm packets
and will trigger a runtime resume.
Git-commit: 4a396d80c5cc2ded75098c61426521b9b2762c17
Git-commit: 2ee4bf4791cc5db30ec03eceaf591367deffe39a
CRs-Fixed: 1106496
Change-Id: I4e55733ad8403581aca0b49ce9442fc5591335c0
Propagation from qcacld-2.0 to qcacmn.
Several Action frame categories are not processed in host and they
are not forwarded to supplicant either, but they are dropped in host.
These unprocessed action frames are forwarded to host by FW and
wake up host unnecessarily which leads to battery drain. With this fix,
host conveys FW the disallowed action frames list at HDD startup
so that the remaining frames can be dropped in FW itself thereafter
when under WoW mode.
Change-Id: I40b49d42df94085784c8f1d8321de0ee61473ae0
CRs-Fixed: 999114
WMI message to allow Specific Absorbtion Rate / tx power
limits to be set per band, chain, or modulation class.
Change-Id: Iece786a4e731462fd282e3eb3107541338a3af30
CRs-Fixed: 865207
Include TLV helper header file to fix implict function decration warning
treated as error. These APIs are required only for TLV target, hence
put it under TLV compilation flag.
Change-Id: I50f3629b3f69c3cdb46e2384e47d2559c803cd4c
CRs-Fixed: 1090087
We want to enable the compiler's -Wmissing-prototypes switch, but
there is existing code that is generating warnings. Fix all warnings
in wmi.
Change-Id: I2452ffa4e9fa1de8a7bd75d04dd4a0f94d7cf55c
CRs-Fixed: 1093298
Using a buffer after passing it to wmi_unified_cmd_send() induces a
race condition that may result in a use-after-freed situation. Fix
several potential use-after-freed situations when calling
wmi_unified_cmd_send() by ensuring all access to a buffer is done
before the call to wmi_unified_cmd_send().
Change-Id: I985aad6e49daf1d823e3751a9cb0a293a298323c
CRs-Fixed: 1089713
qcacld-2.0 to qcacmn propagation
To debug the fwr stuck issue as early as possibile,
reduce the wmi max pending command threshold to 256
from 1024.
Change-Id: Ic3cbe26cca979dcaa68fca03e6fe1af397cf0c4f
CRs-FIXED: 1080761
WMI command buffer is not cleared after WMI command TX completion.
For DISA certification TK and GTK should not remain in the memory
area after disconnection. Since WMI command buffer is not cleared,
hence content of TK and GTK is still in host memory region.
Clear WMI cmd buffer after TX completion.
Propagation from qcacld-2.0 to qcacmn.
Change-Id: Ib09a77b630c932409645b7a989bd959f0ed4f514
CRs-Fixed: 1060982
Log Transport Layer Tag for debugging. The tag differs for
normal command and the runtime pm commands.
CRs-Fixed: 1072520
Change-Id: I7ec085410aaa429cfeb8cc09729e62deee9c7d95
The packet is allocated in wmi_unified_cmd_send so if it doesn't
get sent or added to a queue it needs to be freed.
Change-Id: I763824812d3c0510c53a70caf063568385b9bfc2
CRs-Fixed: 1079509
WMI_RECORDING:Fix implementation of WMI_MGMT_COMMAND_RECORD to
be compatible to WIN.
Current implemantation uses variables not applicable to
WIN.
CRs-Fixed: 1067944
Change-Id: I65b2415e40bd888d3b94ef5f04ec6d53b4d50da2