Commit graph

6,746 commits

Author SHA1 Message Date
Manjunathappa Prakash
05f70da365 qcacmn: Do not update source ring hp in completion process
ce_send_entries_done_nolock_srng() source ring Tx completion processing
callback function making the redundant update of previous HP. Further
when actual Tx updates the HP results in 2nd HP update.
Because of race in hardware HP update detection, second write is lost.
Avoid this scenario by not updating HP in Tx completion processing.

Also remove unused ce_send_entries_done and ce_recv_entries_done APIs.

Change-Id: I1eb288cd7fb0ff418d4cec4f8d127cff8fc9822d
CRs-Fixed: 2407394
2019-04-15 15:21:20 -07:00
Abhishek Singh
bd80d5c8ba qcacmn: API to add scan entry without posting to scheduler thread
Add an API to add scan entry without posting it to scheduler thread.
This will be used to update the beacon/probe during roaming to new AP.

Change-Id: Ia53ba194032eb953c5b102b0cc406db12e58f42d
CRs-Fixed: 2435404
2019-04-15 16:34:20 +05:30
Rohan Dutta
613f7920c7 qcacmn: For PMF return the igtk key in getkey call
Hostapd requests igtk keys with keyix 4,5.
Adding support to wlan_crypto_getkey to send the igtk keys
for keyix 4,5. In absence of the patch, hostapd getkey
call for igtk keys will fail.

Change-Id: I32cd6b417aae92cf3b3ac17bb72e19b581d21bd6
2019-04-12 08:08:12 -07:00
Tallapragada Kalyan
0ef58eec14 qcacmn: Increase the MAX limit of RX Release Ring to 8192
Increase the MAX limit of RX Release ring from 1024 to
8192

Change-Id: I45a4bac2b91b0400fc4acc7cb236f38276a4e0b2
2019-04-12 05:20:28 -07:00
Vivek
445a3a5889 qcacmn: Print all elements of serialization history circular buffer
In the current implementation, we print the ser history
from index 0 to the current index of the ciruclar buffer,
so when buffer overflows we print only few recent items.

Instead, we should print all the elements in the circular buffer
starting from current index to entire length of the circular buffer.
This will print all the elements in the circular buffer
when it overflows and also takes care of printing
required items when buffer is not overflown.

Change-Id: I6c54cb34de7a1ba24ee0204004cc9a203173c66b
CRs-Fixed: 2430483
2019-04-12 02:56:42 -07:00
Pavankumar Nandeshwar
1ab908e62b qcacmn: add CDP function to process CP peer delete response
Add a CDP function which processes the peer delete response
and deletes the static ast entry for the peer

Change-Id: Id646979ed07bd82609ca08e7ef3201382d07b1de
CRs-fixed: 2385115
2019-04-12 02:56:39 -07:00
Tallapragada Kalyan
12a6840949 qcacmn: change qdf_assert_alway to qdf_assert in rx path
change qdf_assert_alway to qdf_assert in rx path

Change-Id: Id9ac6b69b693c3194972cdb61265f867c2267679
CRs-Fixed: 2432396
2019-04-12 02:56:35 -07:00
Chaithanya Garrepalli
58e7c5e121 qcacmn: In add ast entry call the callback inside ast lock
In dp_peer_add_ast() call the CP callback inside ast lock
to ensure the ast add and delete commands are called in a
sequence

Change-Id: If76bf8dca34555e56074e74792f3283b6b5a28d3
CRs-fixed: 2424637
2019-04-11 12:38:49 -07:00
Om Prakash Tripathi
0e3c541835 qcacmn: Change log level to debug for "Failed to create a scan entry"
Its pretty common to simulate malformed beacon/brobe response
frames leading to print "Failed to create a scan entry".

Change-Id: Id89c4e66f0ac449b02e774067932e65d1da9ddc8
CRs-Fixed: 2431173
2019-04-11 12:38:46 -07:00
Harprit Chhabada
8f06c8286f qcacmn: Move the level of some cp stats from kernel to driver
Move some stats from tgt_mc_cp_stats_extract_vdev_summary_stats
and  target_if_cp_stats_extract_vdev_chain_rssi_stats, from kernel
to driver

Change-Id: I3475421828b51a229af4ac3ff6087d7ebb311c33
CRs-Fixed: 2430565
2019-04-11 01:14:25 -07:00
Naga
9dad9767b1 qcacmn: Cleanup duplicate fields in vdev_mlme
Add change to cleanup duplicate fields of
of vdev_mlme, which are also in mlme_channel_param
and their dependencies while updating
vdev_start_param. Cleanup unused mlme_cfg_ids.

Change-Id: Ie32971283a337f04692c0c0bc7f41fff75c090c3
CRs-Fixed: 2407953
2019-04-11 01:14:21 -07:00
jiad
cc43b53e87 qcacmn: Allocate IPA TX skb buffers with srng unlocked
On low memory system, skb allocation failures are observed in
dp_tx_ipa_uc_attach during driver loading phase. Per kernel
memory team analysis, failures are caused by large amount of
atomic allocations. Currently when allocating IPA TX skbs,
srng spinlock is first grabbed and then skb buffers are being
requested, which makes skb allocation happen in atomic context.

Fix is to make skb allocations with srng unlocked since it is
safe for race conditions during driver loading time. This ensures
skb allocations in process context.

Change-Id: I1624276c087c8247d672fb7cea5daded07ab93a3
CRs-Fixed: 2426489
2019-04-11 01:14:17 -07:00
Will Huang
8c82dda691 qcacmn: Fix possible OOB in extract_ocb_dcc_stats_tlv
The correct element number of param_tlvs->stats_per_channel_list is
actually param_tlvs->num_stats_per_channel_list and thus the
qdf_mem_copy() can actually copy more bytes than are in the buffer
causing a buffer overread.

Fix it by checking fix_param->num_channels against the actually
param_tlvs->num_stats_per_channel_list before doing memory copy.

Change-Id: I610920ac1d0a927a52de83935616e8e8fdfec7e7
CRs-Fixed: 2428212
2019-04-11 01:14:14 -07:00
Santosh Anbu
a3d6f77c62 qcacmn: Add API to validate umac_cmd in serialization command
Since umac cmd is specific to the module adding cmd to serialization
queue, an API is needed to validate the umac_cmd associated with that
serialization context holding the serialization queue lock.

Change-Id: Iadb4deb17ffabd780432a29e7cbd37024fd431fe
CRs-Fixed: 2430764
2019-04-11 01:14:10 -07:00
Jingxiang Ge
23c5658da6 qcacmn: Trigger recovery while wmi stuck
Replace QDF_BUG with qdf_trigger_self_recovery while wmi stuck.

Change-Id: If366fbdff356d16b78324051aad99fd4455978b5
CRs-Fixed: 2430743
2019-04-11 01:14:05 -07:00
Chaitanya Kiran Godavarthi
e541e9ccda qcacmn: Add Tx AMPDU statistics
Count of MSDUs Tx with AMPDU aggregation and
MSDUs without AMPDU aggregation is maintained. This
count is obtained from per ppdu stats.

Change-Id: I7c38846534bbe5f2fd0a9b3602a9d453e1c1f449
2019-04-10 05:27:06 -07:00
Naga
613a74a6cf qcacmn: Add change to send custom AMPDU/AMSDU aggr size
Add change to support sending AMPDU/AMSDU custom aggregation
size to FW using converged MLME and target_if framework.

Change-Id: Icf665e3bf30c5ef5903342264e89776611c7774a
CRs-Fixed: 2430278
2019-04-10 05:27:02 -07:00
Ajit Pal Singh
ed6f03ba6e qcacmn: Set MaxMsgsPerBundledRecv in HTC_SETUP_COMPLETE_EX_MSG
Set MaxMsgsPerBundledRecv in HTC_SETUP_COMPLETE_EX_MSG for USB,SDIO
interfaces.
This is required for enabling RX bundling.

Change-Id: Ifb6a9a7167701c051d405bfae125fcfd0c8c55c5
CRs-Fixed: 2414409
2019-04-10 02:13:32 -07:00
Jinwei Chen
2f79dd975f qcacmn: degrade log level when dump rx data TLV
currently host will dump TLV with info level if HW indicate RX
data with invalid sw_peer_id, this will introduce excessive logging
issue, host panic.

degrade the log level to debug level.

Change-Id: Ia24f411bdfd9ec8e315874340d3bf046c245a72b
CRs-Fixed: 2420640
2019-04-09 22:20:55 -07:00
Ajit Pal Singh
5fc9a33c2e qcacmn: usb: Remove usb_set_intfdata()
Remove usb_set_intfdata() as usb interface private data is not being
used in driver.

Change-Id: I65f718b8abe2f33ec7f180ec265baab9772d30d0
CRs-Fixed: 2427944
2019-04-09 11:56:54 -07:00
Akshay Kosigi
48debcb1f6 qcacmn: Move get macaddr API at proper place
Move get macaddr from peer API at appropriate place instead of fetching
it everytime and not using it.

Change-Id: I01349a672215395795cd08cd65d98ad8a08b95b0
CRs-Fixed: 2431163
2019-04-09 11:56:50 -07:00
Pamidipati, Vijay
37d107d2d1 qcacmn: HIF schedule latency measurement
Add support to measure interrupt latencies, store them
in different "bins" and display the constructed histogram
through user command.

Change-Id: I268be6b39745d550ac7db5d321c2d1fdb2d17d41
CRs-Fixed: 2365812
2019-04-09 04:00:32 -07:00
Mohit Khanna
6d22eeb468 qcacmn: Tx desc alloc: remove default wakeup action
When the status is FLOW_POOL_ACTIVE_PAUSED, all queues are expected to
be paused. Still some on the fly packet can make it to the driver. In
such a case, the function dp_tx_desc_alloc takes a default action of
WLAN_WAKE_NON_PRIORITY_QUEUE. This is incorrect, since it will wake all
non priority queues, when they should be paused.
Make default action as WLAN_NETIF_ACTION_TYPE_NONE. If this is the
action to be taken, donot call the pause_cb from dp_tx_desc_alloc.

Rate limit log levels in case dp_tx_desc_alloc fails.

Change-Id: I1ef3018e90576d2c3aaa0d10d56e9b155681271b
CRs-Fixed: 2421813
2019-04-08 22:01:47 -07:00
Akshay Kosigi
3d91d4d32c qcacmn: Add mgmt tx rate code to send to FW
Add a new mgmt tx rate code id to send mgmt rate code to fw

Change-Id: If294982bae5c273c085d1b9bf46f3ad53db60b93
CRs-Fixed: 2428713
2019-04-08 17:43:46 -07:00
Akshay Kosigi
8ca3339524 qcacmn: Add beacon tx rate code to send to FW
Add a new beacon tx rate code id to send rate code to fw instead of
sending beacon tx rate

Change-Id: I8cfe6024b9adf4b25c8686e837c94b86dddceab5
CRs-Fixed: 2428706
2019-04-08 17:43:42 -07:00
Mohit Khanna
f085b61b59 qcacmn: dp_rx_null_q_desc_handle: drop if msdu_len > RX_BUFFER_SIZE
In some cases, the msdu_len as retrieved fromm msdu_start TLV is
greater than RX_BUFFER_SIZE. In such cases, when qdf_nbuf_set_pktlen
is called, it will expand the skb to accommodate the bigger packet.
This makes the rx_tlv_hdr var invalid, since it continues to point to
the older skb->data. Access of this rx_tlv_hdr will cause exception.

Drop the packet if msdu_len > RX_BUFFER_SIZE. This is not expected while
reaping WBM RX Release ring.

Change-Id: I60890e4d3ee0afa451884d4df458eb50be280280
CRs-Fixed: 2426245
2019-04-08 17:43:38 -07:00
Linux Build Service Account
13da9a8463 Merge "qcacmn: Filter data packets in m_copy mode" 2019-04-08 12:06:01 -07:00
Linux Build Service Account
b8a649b3a0 Merge "qcacmn: Add support to cache peer capability info" 2019-04-08 12:06:01 -07:00
phadiman
86911cd6e0 qcacmn: Filter data packets in m_copy mode
Filter out data packets from mon destination
ring in m_copy mode as we already receive
first 100 bytes of data in mon status ring

Change-Id: I09321aa42b850d7b3cdc0bda4c7c51f79a6f850e
2019-04-08 10:50:21 -07:00
Visweswara Tanuku
5832077a65 qcacmn: In Epping, Pass BMI context to bmi_done and bmi_cleanup
In epping_enable bmi_done is called with null context due to which
bmi finish is incomplete

Pass BMI Context before invoking bmi_done and bmi_cleanup

Change-Id: Ic7f424a03cb92d6d3218b5fa148ea95d6011cfed
CRs-Fixed: 2419720
2019-04-08 10:50:18 -07:00
Ashish Kumar Dhanotiya
5e3af684b5 qcacmn: Add support to cache peer capability info
Currently capability information and RX multicast broadcast
packet count of the connected peer is not getting
cached.
Add support to cache the capability info from assoc request and
RX multicast broadcast packets from FW.

Change-Id: I105e055b1e440852e8e6b508c25e45f79db2d062
CRs-Fixed: 2409521
2019-04-08 10:50:14 -07:00
Min Liu
a3bad2b70e qcacmn: Reject STA with PMF disabled only when PMF is required
In wlan_crypto_rsn_info, only need to reject STA with PMF disabled
when PMF is required.

Change-Id: I7a7d4b2d1a2d44a95d08eb6bfac14540940f0be3
CRs-Fixed: 2424932
2019-04-08 10:50:10 -07:00
Min Liu
bc3bde34bf qcacmn: Add AP mode support for PMKSA
Currently only STA mode is supported in wlan_crypto_set_del_pmksa.
For SAE SAP, need to add AP mode support in this API.

Change-Id: If45a516713e302b3516d163516263bbcbafeaed2
CRs-Fixed: 2424893
2019-04-08 10:50:06 -07:00
Linux Build Service Account
a156a519cd Merge "qcacmn: Set pcie addr flag for IPA rings" 2019-04-08 08:36:11 -07:00
Gerrit - the friendly Code Review server
4b658c9975 Merge changes into wlan-cmn.driver.lnx.2.0 2019-04-08 08:22:08 -07:00
jiad
443059e723 qcacmn: Set pcie addr flag for IPA rings
IPA driver adds is_txr_rn_db_pcie_addr and
is_evt_rn_db_pcie_addr in ipa_wdi_pipe_setup_info and
ipa_wdi_pipe_setup_info_smmu structure to check if doorbell
address is DDR address or PCIe memory mapped address. Thus
set the addr flag accordingly for IPA transfer and event
rings.

Change-Id: Ia55d14535db3818439e3884cfb61c3a1d81b86fb
CRs-Fixed: 2422162
2019-04-08 06:23:35 -07:00
Ankit Kumar
14b9622193 qcacmn: Flush ME desc while mcastenhancement disable
Flushing ME descriptor while disabling mcastenhancement feature.

Change-Id: Ieeaab082d09135b4c803d68041ebf9b4bf7bb144
CRs-Fixed: 2425078
2019-04-08 04:29:16 -07:00
Akshay Kosigi
aeaa258b54 qcacmn: Change to remove WMI dependency from mlme component
Replace WMI references in mlme component with wlan_mlme macros.

Change-Id: I7fcd241581972674e19e088c44409d7a5f6ebf58
CRs-Fixed: 2414375
2019-04-06 11:36:09 -07:00
Akshay Kosigi
d3f552ff90 qcacmn: Fix the typo for PROFILE_IDX
Fix the typo for PROFILE_IDX and also add WMI macros
for short slot time update under MLME.

Change-Id: I3c09a7f01029af0f075086166be1c85bd1d7de34
CRs-Fixed: 2412160
2019-04-06 11:36:05 -07:00
Arif Hussain
0aaa4b4ec1 qcacmn: Add support to send bcast capability to firmware
If both INI and FW capability is set,
enable capability flag in twt enable command.

Change-Id: I1c070256c4b672b09a1323665fc5a2f166f951fb
CRs-Fixed: 2423718
2019-04-06 11:36:01 -07:00
Sravan Kumar Kairam
d55a74c8c9 qcacmn: Register tx completion callback
At the time of dp vdev registration, register tx completion
callback so that tx completions will be called for packets
whose tx completion is requested.

Change-Id: Ic3402f41a0962111901271fc8669974dfea2eb1c
CRs-Fixed: 2416554
2019-04-06 01:54:51 -07:00
Liangwei Dong
51cff6d6e0 qcacmn: Add API for get mgmt cipher
MCL code will need to find the supported mgmt cipher
type from crypto component. Add two api for vdev and
peer for it.

Change-Id: Ic33d4f18a04b48ce4699617569585fd1c2ae6f61
CRs-Fixed: 2421463
2019-04-06 01:54:47 -07:00
Srinivas Girigowda
d8a7efdb29 qcacmn: Add EDCA and QoS element ID and IE max values
Add EDCA and QoS capability element IDs and certain
IE max values.

Change-Id: I25480c1d63d20b4c56637151edcb99bf4739574c
CRs-Fixed: 2427312
2019-04-06 01:54:44 -07:00
Sravan Kumar Kairam
44f3efb9e7 qcacmn: Cleanup CONFIG_MCL from qdf nbuff replenish apis
In the current implementation, qdf nbuff replenish timer apis
invocation is controlled by macro CONFIG_MCL. So replace the
CONFIG_MCL with new flag FEATURE_NBUFF_REPLENISH_TIMER.

Change-Id: I8231483b791edf25c08ec4a794b5cc7b638daec7
CRs-Fixed: 2421538
2019-04-05 18:45:50 -07:00
Rhythm Patwa
49064081e8 qcacmn: Modify the description for peer assoc and service ready param
Modify the comment to avoid the use of restricted words in the
wmi_unified_param and service_ready_param

Change-Id: I50f474bdeed6cfdfd05f0c4bff5bb0c0ed56127f
CRs-fixed: 2427333
2019-04-05 18:45:47 -07:00
Akshay Kosigi
09b50e625d qcacmn: Add psoc id value to debug prints vdev mlme timer APIs
Add psoc id value for the debug prints of, error handling vdev mlme timer
APIs

Change-Id: I7d225114e91ff4b6f898450ca3ef7d2e21be631a
CRs-Fixed: 2427905
2019-04-05 18:45:44 -07:00
Priyadarshnee S
457b26718a qcacmn: Correct issues in DFS Full Offload featurization
Change I498ac1f8cd1d6423032d7b3b8c233656c5f0bf22 ("qcacmn: Have separate
macros for DA/PO/FO to reduce the code size") introduced featurization of
the DFS logic. Two functions, target_if_dfs_reg_offload_events() and
dfs_fill_emulate_bang_radar_test(), were not correctly featurized,
resulting in compilation failures when WLAN_DFS_FULL_OFFLOAD is not
enabled. To prevent these failures properly featurize the functions.

CRs-Fixed: 2366596
Change-Id: I4bcecf95d92cb3ebe2ff893c17755385dda11429
2019-04-05 18:45:40 -07:00
Akshay Kosigi
a178724b30 qcacmn: Add new API to set ratemask config
Introduce new API to set ratemask configuration value and also send it
to FW

Change-Id: Iba236500a896c6f4893f506511483bde98072368
CRs-Fixed: 2415610
2019-04-05 17:21:49 -07:00
Varsha Mishra
0c201e23a3 qcacmn: Typecast address before assigning in multicast enhancement path
Not typecasting 64bit value to 16bit value before assigning is causing
corruption of nearby structure members. Typecasting this value fixes
this corruption.

Change-Id: Iddaf697eb90241f9948aeaafe7985b8c2ea63048
2019-04-05 08:37:38 -07:00
Bala Venkatesh
f96d9cf159 qcacmn: Replace duplicate api's of vdev_connected
Currently, the vdev connection status is checked by getting
the bss peer of that vdev, and if the bss peer is in associated
state then vdev connected status is sent as true. It can happen
vdev is present and bss peer is deleted after getting the bss peer
from vdev pointer. Then bss peer can not be dereferenced to get the
its status.

Instead remove all the duplicate api's tdls_is_vdev_connected,
pmo_core_is_vdev_connected, and wlan_vdev_is_connected with
wlan_vdev_is_up. wlan_vdev_is_up gives success status
if associated.

Change-Id: I863c3c0689f329870bd08c813813c16956135209
CRs-Fixed: 2426092
2019-04-05 08:37:35 -07:00