Commit graph

7,195 commits

Author SHA1 Message Date
Himanshu Batra
032d352263 qcacmn: Replace void * Host Target Communications handle with abstract type
Replace void * Host Target Communications handle with abstract type handles
provided by Host Target Communications component

Change-Id: I16ca87e4f9716791d340da2fda0a8a640fa2ec34
CRs-Fixed: 2487151
2019-07-25 00:25:49 -07:00
Kiran Venkatappa
115309a008 qcacmn: Delay monitor buffers replenish to monitor VAP create
Monitor buffer are required only when monitor VAP is created. Allocate
these buffers only when montior VAP is created. This provides memory
savings when no monitor VAP is created/required.

Change-Id: I3ddaef00615f00fd13adb2789469a62f1a0af165
CRs-Fixed: 2491873
2019-07-24 21:43:36 -07:00
Shashikala Prabhu
ae2a8a6d88 qcacmn: Fix compilation errors for mesh mode feature disable
Fix compilation errors for mesh mode feature disable.

Change-Id: I8dfb401791109099a84d9c40417afddc9be6c7c7
CRs-Fixed: 2495095
2019-07-24 21:43:32 -07:00
Ashish Kumar Dhanotiya
6e7d87df88 qcacmn: Disable ext scan in driver
Currently ext scan is enabled by default in driver which
is increasing driver size significantly and ext scan
is not getting used anymore.
Disable ext scan with feature flag CONFIG_FEATURE_WLAN_EXTSCAN
to reduce driver size and fix related compilation issue.

Change-Id: Id2344e6ed21caefa459773bb6e891ffb1e70cb92
CRs-Fixed: 2491455
2019-07-24 21:43:28 -07:00
Vevek Venkatesan
ad55b14e32 qcacmn: converge target type defines for both MCL and WIN
Converge definitions of target types for both MCL and WIN.

Change-Id: I501d39ff5989747ddd22b08cb390bb4601c5dd0b
CRs-Fixed: 2484512
2019-07-24 21:43:24 -07:00
Karunakar Dasineni
a46da42b53 qcacmn: Remove freed DP structures from minidump
Remove entries previously added to minidump during
data-path detach.

Change-Id: Ib69803e8ea58e5b4e0f045d3037730a5b6700c8d
2019-07-24 17:10:06 -07:00
Karunakar Dasineni
af64fd1868 qcacmn: QDF wrapper to remove minidump entries
As part of minidump support, add QDF wrapper to remove
previously added entries.

Change-Id: Iae5ed874d6dbd2f6701f174b54d839fb0a13989c
2019-07-24 17:10:02 -07:00
Naga
8d8b66b40d qcacmn: Fix bit value to stop target_if timer
Fix bit value to stop target_if timer when
start is attempted for same which is already
in execution.

Change-Id: I0d299719d865d92cd5515de4d0441dd215f0aecf
CRs-Fixed: 2494428
2019-07-24 17:09:58 -07:00
nobelj
2b861f8a49 qcacmn: fix setup tid for non QOS client
fix tid setup in null queue for packet comes in uninitialized tid.

Change-Id: I430e24f46a1782d0ddc3abebbbf32145573d6844
2019-07-24 17:09:54 -07:00
Vignesh Mohan
a1a1945c1c qcacmn: Configure agile preCAC timeout values
Send proper minimum and maximum agile preCAC timeout values to the target
as part of starting agile DFS detector. Add a common agile preCAC
parameter structure with the timeout values, channel and width fields
which are to be sent as part of configuring agile detector.

Change-Id: If5f5b179aa12a6c549cb9a4402aa10e957129d78
CRs-Fixed: 2482929
2019-07-23 13:55:29 -07:00
Shashikala Prabhu
41e5f80e2f qcacmn: Do not print DFS error message for 2.4 GHz pdev
For a 2.4 GHz pdev, dfs object is NULL and hence 'dfs is NULL' print is
in tgt_dfs_set_agile_precac_state().

To fix this, add non 5 GHz pdev check before dfs NULL check.

Change-Id: I32cf622d7b769ce841d30de538527639b87f459b
CRs-Fixed: 2490145
2019-07-23 13:55:25 -07:00
Shashikala Prabhu
0843438590 qcacmn: Use correct skb headroom size to update radiotap header
Size of rx_pkt_hdr tlv structure is used to check if there is enough
space in the SKB to add radiotap header.
The issue is seen due to a single SKB can hold the multiple TLVs and
the next subsequent SKB has the data. In this case, there is no headroom
available in the second SKB. Therefore crash seen while adding the
radiotap header in the second SKB.

To fix this issue, check if the SKB has enough headroom space. If not,
drop the frame.

Change-Id: Icd11f946c0aee974dde2ef21f59cfe3d8b87fa5d
CRs-Fixed: 2480719
2019-07-23 11:59:42 -07:00
Kai Chen
f76d6062ce qcacmn: work around on monitor buffer ring back pressure issue
destination ring MPDU processing is stuck because ppdu id is
not sync between monitor status ring and monitor destination ring.
Add logic to detect destination ring process stuck and jump over
destination ring stuck entry.

Change-Id: I17d9b5fba06a28239ec64d864ae7944ae04a7dae
2019-07-23 08:23:44 -07:00
Rakshith Suresh Patkar
d863f8d6b7 qcacmn: Add new API for registering rx mic error callback
Add new CDP API cdp_register_rx_mic_error_ind_handler to
register rx mic error callback. Also, define new structure
cdp_rx_mic_err_info for holding MIC error information.

Change-Id: I4d5d6426b1d5f04848afd48f6dbf51edba291a20
CRs-Fixed: 2488424
2019-07-22 11:36:23 -07:00
Mohit Khanna
7a200e764d qcacmn: Enable ENABLE_DP_HIST_STATS macro
This macro ENABLE_DP_HIST_STATS is needed for histogram information in
DP layer for both TX and RX. Add support for this macro.

Change-Id: Iffcb93c5e19d667bae35ce562c7ef12d063fb659
CRs-Fixed: 2492090
2019-07-21 16:56:38 -07:00
Abhiram Jogadenu
cede8ed032 qcacmn: Correct the error handling in event registration
wmi_oem_response_event_id is only defined for TLV based
architectures. Current code returns an error if registration to a
particular event fails. But registration failure is not wrong
for legacy architectures, as event is not defined.
So do not check return value for error

Change-Id: Ia54431cee2958b59166394360a3fc961abad85ce
CRs-Fixed: 2492494
2019-07-21 08:28:31 -07:00
Alok Kumar
9551ea2d0e qcacmn: Define tx_status enum in wlan_logging_sock_svc.h
Add the tx_status enum in wlan_logging_sock_svc.h so that
enum can be used for MGMT TX status mapping in wma_mgmt.c

Change-Id: I5681e6fcc39704b6be18bc68b1042e0e6b53f590
CRs-Fixed: 2491787
2019-07-20 02:32:43 -07:00
Santosh Anbu
f0a42162ac qcacmn: Add pdev mlme component attribute
With the addition of the pdev restart command to handle multivdev restart,
a placeholder is required at the mlme to hold pdev restart attribute.

Change-Id: I885bf71d0e7977452120714a659e839769ade33e
CRs-Fixed: 2492531
2019-07-20 00:36:44 -07:00
Ashish Kumar Dhanotiya
c3001e4291 qcacmn: Remove invalid log from cp stats
While processing stats event there is an invalid debug
log which is always getting printed and resulting in
confusing loging.
Remove this invalid log from the stats event handling.

Change-Id: I5c60bf73b6b01afce82ebf93e19254f6e302042f
CRs-Fixed: 2493076
2019-07-20 00:36:41 -07:00
Abhishek Ambure
6825cfe7fe qcacmn: Move rsp timer stop logic from tgt to target if
Currently vdev response start timer logic is in
target_if layer and stop timer logic is in tgt
layer which is asymmetry.

So, move stop timer logic from tgt layer to
target_if layer for vdev start, stop and delete.

Change-Id: Ia06e2e6d90cf9c4366d654e016e2eeab8c2a0719
CRs-Fixed: 2442199
2019-07-19 20:40:38 -07:00
nobelj
2a1312cd25 qcacmn: fix memory leak issue in tx mgmt ctrl payload tlv
fix memory leak issue in tx mgmt ctrl payload tlv.
if any of the mgmt or pkt capture feature is turned on.
htt_t2h_msg is hold in mgmt_buf and not set to NULL on free.
which cause leaking next target to host nbuf.

Change-Id: I0d9e0194e51a21b348aadf747b8c9def5c245eda
2019-07-19 19:10:08 -07:00
Manjunathappa Prakash
5f1b698282 qcacmn: Reduce excessive log and advance error processing
Reduce the excessive loging incase dup detect and advance rx processing
to handle next ring entry.

Change-Id: I1d6e8aa28045ed12dd6d315169483ca56d2c6972
CRs-Fixed: 2489205
2019-07-19 13:37:18 -07:00
Himanshu Batra
e596ea4cbf qcacmn: Replace objmgr void * members with union
Replace objmgr void * members with union of specific datatypes.

Change-Id: I3f9df2b00ca333ebcabdc1a87d1047ea205b0cdc
CRs-Fixed: 2477389
2019-07-19 11:26:07 -07:00
Himanshu Batra
cefe93ef3b qcacmn: Replace void * wmi_hdl with abstract type (7/10)
Replace void * wmi handle with abstract type handles
provided by wmi component.

Change-Id: I53d14cc548e0d9aae4de7db4dcf6f63ed2a74fe5
CRs-Fixed: 2482590
2019-07-19 11:26:03 -07:00
Yeshwanth Sriram Guntuka
4644ff4331 qcacmn: Use appropriate config to include wmi_unified file
Use CONFIG_WMI_BCN_OFFLOAD instead of CONFIG_MCL to
include wmi_unified header file.

Change-Id: I0cc7a4958700c82c7d3e55c965ccac2451b64fd3
CRs-Fixed: 2490681
2019-07-19 10:13:29 -07:00
Chaithanya Garrepalli
b8db1bd02b qcacmn: populate actual framelength for MGMTCTRL TLV
for HTT_PPDU_STATS_TX_MGMTCTRL_PAYLOAD_TLV get the length
from TLV data

Change-Id: I84526a36ebac5a267530d697a4fe51646d0c9cbd
2019-07-19 04:04:20 -07:00
Ankit Kumar
b5549d6468 qcacmn: Placed note section in commit desc
Remove note section from code comment and placed
in commit description for better readability.
Macro for sending data packets Changed from macro function
to static inline function due to error reported by
checkpatch for multiple use of same variable.

Change-Id: I0752cfff7502fabe0c2351a21a94cfac4625278f
CRs-Fixed: 2490594
2019-07-19 02:48:30 -07:00
gaurank kathpalia
18495feac0 qcacmn: Use proper macro instead of config_mcl
Use proper macro instead of config_mcl to compile
the API target_process_bang_radar_cmd.

Change-Id: I3a2fca998d69f2a29243b9ecd2a290af9602d6c2
CRs-Fixed: 2490649
2019-07-19 02:48:26 -07:00
Jinwei Chen
9d3f985a8d qcacmn: deliver RX data to stack evev if no peer found
Deliver RX data to stack even if no peer found, this is
needed for LFR roaming case like eapol data.

Change-Id: Ic81f29993fb4542847bd076042a13de6e9f18173
CRs-Fixed: 2468082
2019-07-19 02:48:23 -07:00
Himanshu Batra
556930bba9 qcacmn: Replace void * tgt_if_handle with abstract type
Replace void * tgt_if_handle of objmgr psoc/pdev with
abstract type handles provided by target interface

Change-Id: I9e0ae991776daa0c25c4ad7b4e4dc022441318a3
CRs-Fixed: 2482708
2019-07-19 02:48:20 -07:00
Ashish Kumar Dhanotiya
3863721077 qcacmn: Unlink hidden bss entry from kernel
Kernel maintains a list of bss and it adds/updates the bss
entries whenever driver informs it. When driver receives
beacon or probe response from any ap it informs kernel to
update the bss list and whenever it disconnects with the
AP driver unlink the bss in the kernel.

If the AP is hidden, when driver gets beacon from this
hidden AP it informs the kernel to update the bss list.
kernel add this entry to it's bss list with NULL SSID.
Now when driver receives probe response from this hidden
AP it again informs the kernel to update the bss list,
as this is probe response and ssid is not hidden,
kernel treats this entry as new entry and adds it to
its bss list and links this entry to the older hidden
AP entry (But still these are two entries for hidden AP).

When driver gets disconnect from the AP it unlink the
bss entry corresponding to this AP from kernel's bss
list, but since there are two entries for the same AP
as the AP is a hidden AP, driver should clear hidden AP
entry (Which was added as part of beacon) which is
not happening currently.
Now when AP moves from hidden to broadcasting SSID
in it's beacon, kernel drops this beacon entry as its
confusing because there is already a beacon entry with
hidden bss for this AP. During connection driver tries
to update the entry in the kernel and it fails as kernel
drops the beacon resulting into the connection failure.

To resolve this issue, whenever driver unlink the bss
entries from the kernel bss list unlink the hidden bss
entries also from the kernel's bss list.

Change-Id: I629475db8e8f10a6bc403314a984939e38d0a4da
CRs-Fixed: 2488955
2019-07-19 00:54:27 -07:00
Vignesh U
f00622162c qcacmn: MKK17 should include channel 144
As a part of regulatory update #29,MKK17 should support channels
until 5730MHz(including channel 144). But, it was missed in
regulatory update #29 and MKK17 supports channels only until
5710MHz(until channel 140).

Add channel 144 to MKK17.

Change-Id: Ic4b4c162f03a033b697764d65f4733b49e00c9c8
CRs-Fixed: 2489544
2019-07-19 00:54:23 -07:00
Alok Kumar
3558ddfc61 qcacmn: Remove the CONFIG_MCL for rx_reorder_queue_remove_cmd
On MCL side, crash_on_send_peer_rx_reorder_queue_remove_cmd
causes a crash if command is sent by host. Currently no one
is using this API from MCL side and for non MCL this is No-OP.

Removing this API and CONFIG_MCL as from MCL side no one is
calling this.

Change-Id: I5393074913ccd6b39ca2e31e081783c4b614bd43
CRs-Fixed: 2490819
2019-07-18 16:45:40 -07:00
Mahesh Kumar Kalikot Veetil
bde1772622 qcacmn: Enable ASPM for FTM mode
Modify hif_pci_enable_power_management() API to enable pci ASPM for
FTM mode.

CRs-Fixed: 2491213
Change-Id: Ia421ee2af9ae270f5138ac5b8ff52680fbfe9679
2019-07-18 14:23:13 -07:00
Himanshu Batra
39d27ed230 qcacmn: Replace void * wmi_hdl with abstract type (10/10)
Replace void * wmi handle with abstract type handles
provided by wmi component

Change-Id: Iaf3de67d4933998ac4540ac280d716d534777e7f
CRs-Fixed: 2482647
2019-07-18 14:23:10 -07:00
Himanshu Batra
213192233b qcacmn: Replace void * wmi_hdl with abstract type (8/10)
Replace void * wmi handle with abstract type handles
provided by wmi component

Change-Id: I96309658dd12964c74062418a2b32deb1e915c10
CRs-Fixed: 2482632
2019-07-18 14:23:07 -07:00
Himanshu Batra
0a35a6afb8 qcacmn: Replace void * wmi_hdl with abstract type (6/10)
Replace void * wmi handle with abstract type handles
provided by wmi component

Change-Id: I503438fbaf3bc2d475798bc908a70902d11881af
CRs-Fixed: 2482568
2019-07-18 14:23:04 -07:00
Bala Venkatesh
63b4f6a57e qcacmn: Remove MCL_CONFIG flag
In file wmi_unified.c use appropriate config
flags instead of MCL_CONFIG flag.

Change-Id: I9e43f8853ddd93221679cefa50b4f7b239d2abdb
CRs-Fixed: 2491383
2019-07-18 07:17:29 -07:00
Himanshu Batra
e6eeca68f3 qcacmn: Replace void * wmi_hdl with abstract type (5/10)
Replace void * wmi handle with abstract type handles
provided by wmi component.

Change-Id: Ic8d4ddc90c8e49a9629553debf6c09c7565fcd80
CRs-Fixed: 2475462
2019-07-18 03:46:01 -07:00
Himanshu Batra
453eea49a9 qcacmn: Replace void * wmi_hdl with abstract type (4/10)
Replace void * wmi handle with abstract type handles
provided by wmi component.

Change-Id: I4bb0f9fd921bf53d38dfb257818fee48c4516cd8
CRs-Fixed: 2475457
2019-07-18 03:45:58 -07:00
Himanshu Batra
6abe4bebd6 qcacmn: Replace void * wmi_hdl with abstract type (3/10)
Replace void * wmi handle with abstract type handles
provided by wmi component.

Change-Id: I04cd3ce5b4f36f7073d4644e2fd0d52da41e1af3
CRs-Fixed: 2475447
2019-07-18 01:07:26 -07:00
Himanshu Batra
29bc991911 qcacmn: Replace void * wmi_hdl with abstract type (2/10)
Replace void * wmi handle with abstract type handles
provided by wmi component.

Change-Id: Id12d6446aed8fd389b8677f08765bb31cabf2fb0
CRs-Fixed: 2475444
2019-07-18 01:07:23 -07:00
Himanshu Batra
9173c9192d qcacmn: Replace void * wmi_hdl with abstract type (1/10)
Replace void * wmi handle with abstract type handles
provided by wmi component

Change-Id: Idd1fddffd9e254f367e9ad608729668249bbe758
CRs-Fixed: 2475372
2019-07-18 01:07:20 -07:00
Alan Chen
166fc8d73d qcacmn: Add new reason code for idles restart wakelock
Idle restart needs to prevent system suspend and hence, add new
reason code for idle restart.

Change-Id: I15f7be551f00bd910a61080c087a8f85dd2fe7da
CRs-Fixed: 2490992
2019-07-17 21:27:28 -07:00
Pragaspathi Thilagaraj
bdcce7fcb1 qcacmn: Change the maximum serialization pending commands
The host driver serialization module currently supports upto 4
commands in non scan pending queue. This is calculated at the
wlan_serialization_vdev_create_handler() as:
    max_pending_cmds = (WLAN_SER_MAX_PENDING_CMDS /
                        WLAN_SER_MAX_VDEVS)

But in SAP case, if multiple STA sends deauth at the same time,
4 pending commands in non scan pending queue is not sufficient
and will result in only disassoc from the first 4 STA getting
honored.

The current host wlan driver supports 3 SAP mode and
2 STA vdevs amounting to a total of 5 vdevs supported.
So calculate the total non scan pending commands for
serialization based on the total peers supported for each
mode to fix this issue.

In SAP case, maximum 32 peer are supported and for STA case,
maximum 4 pending commands for serialization. So change the
max pending commands calculation as:
 max_pending_cmds = (No. of sap modes supported * 32) +
                    (No .of STA modes supported *4 )

For MCL case the definition of WLAN_SER_MAX_PENDING_CMDS
will be moved to Kbuild.
For WIN case, the existing maximum count will be retained.

Change-Id: Iff1d9430b45e26812b600560b08e85e6040eafef
CRs-Fixed: 2483520
2019-07-17 17:42:33 -07:00
Ashish Kumar Dhanotiya
002aa7014b qcacmn: Add unit test for uint16 array parsing
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
2019-07-17 16:28:37 -07:00
Venkata Sharath Chandra Manchala
a28e0144fe qcacmn: Initialize variable before use in process_tx_info
Initialize type specific data in process_tx_info
while processing full tx pktlog messages.

Change-Id: Icbdd20e7e4604f117912e5a4402f7aa5048e671e
CRs-Fixed: 2468471
2019-07-17 16:28:33 -07:00
Rajeev Kumar Sirasanagandla
d36ba2d9cf qcacmn: Fix possible overread in wifi_pos_parse_req
In wifi_pos_parse_req(), payload sections of nl attributes ATTR_DATA and
ATTR_META_DATA are type casted to driver internal structures tAniMsgHdr
and wifi_pos_field_info respectively without validating payload lengths
which can lead to buffer overread if the payload lengths are less than
size of internal structures.

To fix this, avoid type-cast and return error if payload lengths of nl
attributes ATTR_DATA and ATTR_META_DATA are less than size of tAniMsgHdr
and wifi_pos_field_info respectively.

Change-Id: Ie9e3197f2cd3852b394e834991aa8d3a5b530d85
CRs-Fixed: 2471275
2019-07-17 08:31:58 -07:00
Himanshu Batra
a61bf79b15 qcacmn: Replace void * wmi_hdl with abstract type (9/10)
Replace void * wmi handle with abstract type handles
rovided by wmi component

Change-Id: I5c9dde2546a763b9f9b87f328e67b6189f031f1e
CRs-Fixed: 2482645
2019-07-17 07:13:52 -07:00
Akshay Kosigi
aefbe07345 qcacmn: Add change to remove void usage
Add code to remove void pointer usage for
API dp_peer_unref_delete

Change-Id: If346ea8c174c1fbf705aa52598e703424be943a2
CRs-Fixed: 2480828
2019-07-17 04:49:54 -07:00