Commit graph

5,092 commits

Author SHA1 Message Date
Pramod Simha
6e10cb2dd6 qcacmn: Add CDP API to set key in data path
1. Add CDP API to set encryption key in datapath.
   Used to perform RX TKIP demic.
2. Fixes to RX TKIP demic function.

Change-Id: Ia14caeb71a320b4746f4303cf6611f1b6e4947ae
CRs-Fixed: 2214749
2018-07-02 16:09:03 -07:00
Pramod Simha
366c1e01e6 qcacmn: Add WAR for fragmented TKIP MIC error
HW wrongly calculates MIC for the last fragment of TKIP
encrypted packets due to which this packet ends up on WBM
execption ring. Add code to handle the last fragment
in WBM execption ring.

Change-Id: I2dea5b3fbcb48036435e26f32f4641e7a0840bcd
CRs-Fixed: 2214749
2018-07-02 16:09:01 -07:00
Abhinav Kumar
bfbf4422a7 qcacmn: Fix qbss calculation in case of good RSSI threshold
Currently, when Current RSSI is better than good RSSI threshold
first driver calculates qbss percentage and set qbss score accordingly
and when current RSSI is weaker than or equal to good RSSI threshold
(-70dBm) driver directly sets 10% as qbss score. But as per requirement
Driver should calulate qbss percentage in order to set qbss score for
RSSI = -70db

Fix is to allow driver to ignore qbss percentag calculation only
when current RSSI is less than good RSSI threshold.

Change-Id: I1be2ab71016d779a60d21923a34340ae19d6c7f5
CRs-Fixed: 2261635
2018-07-02 16:08:58 -07:00
Keyur Parekh
d005ca2492 qcacmn: Added change to correct Tx PPDU BW value
This change required to match Tx PPDU BW value with
FW stats. As per firmware enums its starts with 5MHz
BW value. So to match 20MHz value with enum zero, need
to subtract from BW populated from TLV.

Change-Id: Ifcc49839c08de78c9200b877890fdce2e0846f1d
2018-07-02 16:08:56 -07:00
Frank Liu
1113c5b649 qcacmn: Initialize tdls peer sta_id
TDLS sta_id check logic has changed, the value zero is valid, so
initialize the tdls peer sta_id as 0xff, otherwise add tdls peer
won't happen.

Change-Id: I805e4abdec8806f649d15da4f02980de9ffdc0ea
CRs-Fixed: 2263523
2018-07-02 13:52:48 -07:00
Manjunathappa Prakash
cf4286b730 qcacmn: DPtrace: Do not log to memory during high throughput
During high TPUT scenario logging of DPT trace is not useful,
require more MIPS. Disable datapacket DPtrace logging during
TPUT runs, but contiue to log special packets like ARP/DHCP/ICMP etc..

Change-Id: I70c9368de4cb2423901449b267452a34d652213d
CRs-Fixed: 2255756
2018-07-02 12:23:38 -07:00
Manjunathappa Prakash
617ff247dd qcacmn: Affine NAPIs based INI CPU mask
Affine NAPI CPUs based CPU mask specified in INI config.

Change-Id: I0bea3389a7565f8ec157d4587a442b5e11c33fb2
CRs-Fixed: 2255756
2018-07-02 12:23:36 -07:00
Bala Venkatesh
b5a400ee01 qcacmn: Move the SAP to non DFS channel after STA disconnection
Standalone SAP is not allowed on DFS channel if STA+SAP SCC enabled
on DFS channel. So move the SAP to a non DFS channel as soon as STA
gets disconnect.

CRs-Fixed: 2269249
Change-Id: I27d018739f53997641a7113cfc7c844e02bd7e29
2018-07-02 10:59:57 -07:00
Bala Venkatesh
dea772a6b7 qcacmn: Add support to allow user select preferred band for SAP
Add enum QDF_MCC_TO_SCC_WITH_PREFERRED_BAND(6) for this.
If ini gWlanMccToSccSwitchMode is selected to
QDF_MCC_TO_SCC_WITH_PREFERRED_BAND(6) then following will be the
behaviour of STA+SAP concurrency.
1. If second interface(SAP/STA) comes in same band as
   first interface(STA/SAP) respectively then force SCC
   irrespective of channel.
2. If second interface(SAP/STA) comes in other band as
   first interface(STA/SAP) then dont force SCC allow
   interband MCC or DBS based on DBS capability.
Allow interband MCC but not intraband MCC.

Change-Id: I91d41b4b0306ed4e362b5bcab9538f5fd5feea7d
CRs-Fixed: 2260677
2018-07-02 08:45:47 -07:00
Nandha Kishore Easwaran
dd68508f03 qcacmn: Check pdevhandle before processing htt msg
Add null check for pdevhandle before processing htt msg.
This is added for polled mode to avoid race between pdev detach
and CE poll timer stop.

Change-Id: I925e70985bd11e05e0679ad0107493aaefe8a273
CRs-fixed: 2352564
2018-07-01 04:37:44 -07:00
Anurag Chouhan
15da7ce9be qcacmn: Fix compilation error on LE target
Fix compilation errors on LE target.

Change-Id: I57c337c8144e4f49a8fd7eefb22164f05beb13c5
2018-06-30 08:58:38 -07:00
Amar Singhal
dbff0cc4f2 qcacmn: Make worker thread processing API non static
Worker thread WMI processing API has more broader use now. So make it
non-static.

CRs-Fixed: 2268243
Change-Id: Iae51e1115f5f3664d08c891e8a42d24bd3ef7bcf
2018-06-30 00:18:01 -07:00
Alok Kumar
e7ac594b6a qcacmn: Fix information leak issue during memcpy
The buffer allocated with length "ATH6KL_FWLOG_PAYLOAD_SIZE"
is not initialized, this may lead to information leak during
memcpy when len < ATH6KL_FWLOG_PAYLOAD_SIZE.

To resolve this issue, memset the buffer for length
(ATH6KL_FWLOG_PAYLOAD_SIZE - len) to 0

Change-Id: If4a49347d674ad2af0438b408a4a4b9308c61026
CRs-Fixed: 2255083
2018-06-29 17:27:48 -07:00
Tushnim Bhattacharyya
2e9e4260c2 qcacmn: Don't move SAP if SCC on lte coex channel is allowed
If STA+SAP is doing SCC & g_sta_sap_scc_on_lte_coex_chan is set,
don't move SAP to a different channel when LTE channel avoidance
event comes.

Change-Id: I3dfdbb6d59769a8ff9b3b2e6d828feee94630569
CRs-Fixed: 2268993
2018-06-29 17:27:46 -07:00
Hanumanth Reddy Pothula
e7b40d657a qcacmn: Send signal strength in user expected unit
User expects signal strength in dBm. But for GET_RSSI IOCTL
driver is sending a relative value, not in dBm unit.

While processing GET_RSSI IOCTL, send signal strength in
dBm unit, as the user expects.

Change-Id: Id8b248f0be558e9b91f3e4675cb7b58cd6b3e940
CRs-Fixed: 2258559
2018-06-29 16:09:29 -07:00
Kabilan Kannan
762ad5db89 qcacmn: Add SAR V2 support
Add changes to support SAR V2 power limits

Change-Id: Ife7af8db51a45660bc27d1e5b857e38f4dd40935
CRs-Fixed: 2217069
2018-06-29 13:31:50 -07:00
Yeshwanth Sriram Guntuka
0c45b0848f qcacmn: Send mode change event after addkey
On STA connection, mode change event is sent to
userspace after association is completed. This causes
delay in processing of M1 frame at supplicant due to
latency associated with nl80211_get_wiphy_index
function as part of processing mode change vendor event.

Fix is to send mode change event for STA after key
is added.

Change-Id: Id403bfdd26ed3a47449ba3f2967f4b4322ad5da6
CRs-Fixed: 2260483
2018-06-29 03:29:52 -07:00
Gurumoorthi Gnanasambandhan
d733cd7d30 qcacmn: Reset seq number during key install
Reset seq number during roaming key set. REO error 5 is seen
when expected seq number is higher than received seq number.

Change-Id: Ifa7be042479685ac52f571d0e94f3165b239db08
2018-06-29 02:15:47 -07:00
Subrat Mishra
4493d2d605 qcacmn: Allow FILS decap for (Re)Assoc frame
Allow FILS decap for (Re)Association request/response frame
by returning keyid as 0.

Change-Id: Icdf6d325eeccda36eeaf5a5635fcf9cf361d1028
CRs-Fixed: 2217523
2018-06-28 17:50:02 -07:00
Arif Hussain
fb2fd39069 qcacmn: dfs: convert pdev id from target to host
Convert pdev id of target to host for radar found event.

Change-Id: I4a83214dc913553c2851f5af77928f4373117c36
CRs-Fixed: 2268186
2018-06-28 17:50:00 -07:00
Sathish Kumar
87b8afa143 qcacmn: Suppress unsupported WMI service prints to info level
Few WMI services are defined which are specific to newer WIN
platforms and are not supported for older platforms. Since the
code to check if service is enabled is common between the platforms,
we see prints quoting service is not supported on chipsets having
both new and old generation radios

Suppress these prints to a reduced trace level to avoid flooding.
Change-Id: I83140c8eec7cf337068fff60442b9d6684efd013
CRs-Fixed: 2261754
2018-06-28 16:38:34 -07:00
Krishna Rao
df66989cb2 qcacmn: Add config enumeration for P1 ping failure smart log
Add _ol_ath_param_t configuration enumeration entry for P1 ping
failure smart logging.

CRs-Fixed: 2267807
Change-Id: Iaa7df4b2e69aa252f537ef1362fe80843b82a216
2018-06-28 16:38:32 -07:00
Krishna Rao
2980d724f1 qcacmn: Add type+subtype specific data to WMI fatal event
Update the definition of wmi_fatal_condition_event, to include
type+subtype specific data under type_subtype_specific_data.

CRs-Fixed: 2267901
Change-Id: I7f5be6ced26a88ac86ab16efd915a5e6ca5dc608
2018-06-28 08:19:33 -07:00
Srinivas Girigowda
ea4a324ce5 qcacmn: Not to be hard to make high order page
kcompactd consumes many CPU cycles without being successful
to make high-order page. One of the reason is WIFI driver is
allocating order-3 page a lot.

It shows 46% high-order allocation comes from WIFI driver.
Of course, it should be fixed in MM layer but it is never
easy stuff to fix in near future.
Regardless of MM changes, drivers should do best effort to reduce
high-order allocation, too.

This patch fixes the problem via not waking kcompactd.

Change-Id: I2bc3bf3ec96d32dd1a93c24edf2f590f331c0ed5
CRs-Fixed: 2265578
2018-06-28 04:51:56 -07:00
Jingxiang Ge
c5f0bd188c qcacmn: Bypass QBSS IE length check
Some old ap's QBSS IE length is 4Bytes, in latest 802.11e
spec, the expected length is 5Bytes.

If stop parsing beacon&probe with 4Bytes QBSS IE, DUT can't
scan and connect with AP, so change it to bypass QBSS IE
if AP uses the old format.

Change-Id: Ib6727f5f77c5e5543e862277e1d2d35273f62d59
CRs-Fixed: 2257707
2018-06-28 04:51:53 -07:00
Linux Build Service Account
3dcbc895e0 Merge "qcacmn: Add objmgr check for pdev leaks API" 2018-06-27 20:34:49 -07:00
Gerrit - the friendly Code Review server
2f78ba9708 Merge changes into wlan-cmn.driver.lnx.2.0 2018-06-27 20:05:05 -07:00
Dustin Brown
a8eefc87b9 qcacmn: Add objmgr check for pdev leaks API
During objmgr psoc teardown, it would be useful to assert that there are
no longer any pdevs attached. Add an API that logs a list of all
pdevs attached to a given psoc, and panics if any are found.

Change-Id: Ia171ae1f443c91808c1f465c2570f6d9cb2237bc
CRs-Fixed: 2267143
2018-06-27 17:41:19 -07:00
Dustin Brown
942f939848 qcacmn: Conditionally unmap nbuf in htc_issue_packets
htc_issue_packets currently unmaps all nbufs during error handling.
However, htc_issue_packets only maps nbufs under some situations. Make
the criteria for unmapping match the criteria for mapping.

Change-Id: Ia77cffb30edbdb4d1378af38368f860c6f8c0b18
CRs-Fixed: 2266437
2018-06-27 17:41:17 -07:00
Krunal Soni
3bdf380c03 qcacmn: Don't process scan command when vdev delete is in process
When driver performs vdev delete operation, it changes vdev state
to logically deleted or physically deleted only after receiving vdev
delete command's response from FW. In between (sending vdev del req
and receiving vdev del rsp) if thread gets pre-empted and other thread
start posting command (like scan command) to process then it could
lead to use after free scenario.

Notify scan component when vdev delete is intiated and let scan
component record that in to vdev's scan private object as one of the
flags.

check this flag before processing the scan command.

CRs-Fixed: 2261704
Change-Id: Id884d6c42cd8766e70835808863632e096158487
2018-06-27 16:14:24 -07:00
Pragaspathi Thilagaraj
e449244e9f qcacmn: Fix possible buffer overflow in send_stats_ext_req_cmd_tlv
In the function __wlan_hdd_cfg80211_stats_ext_request,
data_len is recieved from vendor command and is passed ultimately
to send_stats_ext_req_cmd_tlv.  In send_stats_ext_req_cmd_tlv, len
is calculated as sum of sizeof(*cmd), WMI_TLV_HDR_SIZE,
preq->request_data_len.The len is of type uint16_t
and adding sizeof(*cmd) + WMI_TLV_HDR_SIZE will cause a buffer
overflow.

Changed the datatype of len to size_t so that it doesn't overflow.

Change-Id: I6618042e3c60bbdb1ff5d833188f4bdb4832da7a
CRs-Fixed: 2243169
2018-06-27 16:14:22 -07:00
Naveen Rawat
1e8e057a77 qcacmn: Free NDI peers/vdev at time of ndi_delete/driver unload
Sometime user may not delete active NDP sessions before deleting NDI or
may not delete NDI before driver unload. In such case vdev/peer object
memory will leak. Free all NDI peers for that vdev before processing NDI
delete and free all NDI peers/vdev at driver unload.

Change-Id: I04631ffd611d6ded318ddfb65b2dfeba479c9bdc
CRs-Fixed: 2262769
2018-06-27 14:48:34 -07:00
Naveen Rawat
51f68ff7df qcacmn: Add support for NDP TCP/IP params
Add support for NDP TCP/IP params in ndp initiator
request, responder request, indication and confirm.

Change-Id: I5d60af154ea4a2f33d18d9b86049f316e7fbc524
CRs-Fixed: 2252227
2018-06-27 14:48:30 -07:00
Rachit Kankane
97c4e1efcc qcacmn: Allocate gplog_msg dynamically
Allocate memory for gplog_msg buffer dynamically.

Change-Id: I70b79215b5f318217de180a53c4bad5f237be37d
CRs-Fixed: 2266814
2018-06-27 07:24:40 -07:00
Tallapragada Kalyan
46f90ce4ac qcacmn: Remove WDS AST entry when STA roams from RPTR to ROOT AP
We need to remove the ast entry of STA which initally
got added as WDS entry as soon as the STA roams from
RPTR AP to ROOT AP and vice-versa

Change-Id: I71cac321844cd569a755790f951a7a3c4db283f8
CRs-Fixed: 2264787
2018-06-27 07:24:38 -07:00
Shiva Krishna Pittala
fd7c31dc80 qcacmn: Fix Spectral priority value after stop_scan call
After stop_scan call, Spectral priority is being disabled.
Do not change the value of any spectral parameter unless the command is
configure_spectral.

Change-Id: I25d3458cd49e25533270f89df9f8f29a4b7da16d
CRs-Fixed: 2259952
2018-06-27 05:33:06 -07:00
Anirban Sirkhell
e65eeb0388 qcacmn: Add vdev param to enable/disable buffering of mcast frames
If the feature is enabled macst frames would be sent out
even when there are clients in power save (instead of DTIM).

CRs-Fixed: 2133095
Change-Id: I927be022916674cb008459868b095f15c37d8636
2018-06-27 05:33:03 -07:00
Abhijit Pradhan
56fe2450b5 qcacmn: Cleanup DFS function and corresponding function pointer
Remove the function lmac_is_mode_offload and corresponding function pointer
dfs_is_mode_offload since it is not used by the DFS component.

Change-Id: Ie55f5c8dc89466fa992451373819d148680318f1
CRs-Fixed: 2252565
2018-06-27 05:33:01 -07:00
Sriram Madhvapathi
367a882dc9 qcacmn: Fix printk format error in SDIO HIF
sizeof() operator should be using %zu

Change-Id: Ia0f4938316cf32e9da4db63e3362aca892fc915b
CRs-Fixed: 2267624
2018-06-27 03:44:57 -07:00
Venkata Sharath Chandra Manchala
9347b8dbd0 qcacmn: Select window mask based on target
For QCA6390 PCI address space is reduced to 1MB.
Change bitmask to map it to appropriate range.

Change-Id: I70385df91855b7e7ddbedf7f0c6bf6e364b7d78c
CRs-Fixed: 2259194
2018-06-27 03:44:55 -07:00
chenguo
ee42a3202b qcacmn: Reorganize skb unmap, free and tx_desc free logic for TSO
In TX completion, we need to handle TSO frames release in below
sequence: Unmap skb -> free skb -> free this tx desc. Thus separate
skb unmapping and free tx descriptors for TSO logic.

CRs-Fixed: 2250960
Change-Id: I6979b4ec64e3f51bc6d8e485e843e2ab35eee86e
2018-06-27 03:44:53 -07:00
Soumya Bhat
51240dc6db qcacmn: Fix beacon metadata in debug sniffer mode
In existing code the HTT stats buffer was getting freed after
parsing mgmt. payload TLV, which was leading to missing beacon
metadata.

Add change to continue processing HTT stats buffer even after
receiving mgmt. payload TLV.

Change-Id: Iac67577ea5e362f046a1d5432204362a9559c788
CRs-Fixed: 2248313
2018-06-26 22:43:02 -07:00
Bala Venkatesh
1e9e680a92 qcacmn: Defer the channel switch if it is already in progress
When sta+sap scc enabled on dfs channel then SAP cannot operate on
DFS channel in standalone mode. If STA+SAP are operating in SCC mode
on a DFS channel and STA gets disconnected from reference AP then driver
schedules a workqueue to move the SAP from DFS channel to user configured
channel. At this time if STA again connects to reference AP within few ms
then driver again schedules one more workqueue to move the SAP to STA's
channel. Sometimes the second workqueue may fail to switch the channel
if first one is not yet completed. So added event variable to schedule
second workqueue only when first one is complete.

CRs-Fixed: 2267005
Change-Id: Ia6ce4b6264c35f6d2c809e2a3f65f535e930874e
2018-06-26 18:53:35 -07:00
Naveen Rawat
02c2fb4606 qcacmn: Add channel information in ndp confirm event
Add channel information in NDP confirm event sent to
wifihal.

Change-Id: Icecf050aa5d67519c6278460ad92a2a02fcee2c2
CRs-Fixed: 2252226
2018-06-26 18:53:33 -07:00
Naveen Rawat
b4a29b7a42 qcacmn: Fix vdev reference in NDP commands
Assign the vdev in NDP request message and hold the vdev reference till
the command is processed. Else the consumer of message will fail when
trying to take reference since vdev was not set in request packet.

Change-Id: I4c7e50690eff1f92f151f00209ec786a03252e76
CRs-Fixed: 2252035
2018-06-26 18:53:30 -07:00
Bala Venkatesh
5811d874a6 qcacmn: Ignore CSA if the channel is DFS or disabled
If MCC to SCC switch is enabled, SAP is active and CSA
received for STA interface, then ignore the CSA if channel
is DFS/disabled.

CRs-Fixed: 2263037
Change-Id: I98b8d957766358ea86cc9f50339725cf4bf0038b
2018-06-26 17:36:11 -07:00
Nirav Shah
fdfc25db7f qcacmn: Fix compilation error to enable genoa pcie
Fix compilation error while enabling QCA_WIFI_3_0_ADRASTEA
and HIF_PCIE flag for Genoa.

Change-Id: Ia8c44ae8623c22af415dc66061f38b59169f08a8
CRs-Fixed: 2266809
2018-06-26 02:56:29 -07:00
Nirav Shah
d250672acf qcacmn: Fix compilation error for NAPI disable
Fix compilation error for NAPI disable

Change-Id: I21116cfa061b2c804c3a4cedf106773d538294b3
CRs-Fixed: 2266765
2018-06-26 02:56:26 -07:00
Rakshith Suresh Patkar
09089f1b73 qcacmn: Remove unused APIs qdf_nbuf_set_rx_info and qdf_nbuf_get_rx_info
Currently, the APIs qdf_nbuf_set_rx_info and qdf_nbuf_get_rx_info
are no longer used in our driver code.

Cleanup the unused code for qdf_nbuf_set_rx_info and
qdf_nbuf_get_rx_info.

Change-Id: I57acbd4e5901d8922e3b650f0f3b57f056a0ae3e
CRs-Fixed: 2259212
2018-06-25 23:53:07 -07:00
Kabilan Kannan
8727ab68ff qcacmn: Add sanity check in init/deinit function
Add sanity check in init/deinit memory alloc
function.

Change-Id: Icb9862fabb64d9d82f302c1264c7cd74af1b1a0f
CRs-Fixed: 2196072
2018-06-25 19:54:10 -07:00