Commit Graph

3046 Commits

Author SHA1 Message Date
Ravi Joshi
1eaf7b5b82 qcacmn: Update radiotap header to include HE parameters
Add/extend radiotap header to include high-efficiency (11ax)
parameters.

CRs-Fixed: 2071602
Change-Id: I8bfbed16edca42eb38256bccc2efff8f21e50f15
2017-07-06 21:55:15 -07:00
Adil Saeed Musthafa
0ec675d2cd qcacmn: Add verbose print in wmi_register_event_handler
Add verbose information print in register_event_handler

CRs-Fixed: 2071681
Change-Id: Icf2a81b71a97a0d01a9771ad998f96b5d10f6cb6
2017-07-06 17:50:27 -07:00
Krishna Rao
d03216cbe1 qcacmn: Rename 20/40 coex flags to facilitate 11ax changes
Rename the 20/40 coex related flag WLAN_PEER_F_REQ_HT20 to
WLAN_PEER_F_REQ_20MHZ and WLAN_PEER_F_40_INTOLERANT to
WLAN_PEER_F_40MHZ_INTOLERANT in order to facilitate 802.11ax 20/40
coex changes. This is also in line with relevant clauses in the
standard.

Change-Id: I78ddc0ebcfe70c37283bf81522e6519fa052c50c
CRs-Fixed: 2040816
2017-07-06 14:35:15 -07:00
Srinivas Girigowda
5d4ab79521 qcacmn: Move the logs to appropriate log levels
Move the logs to appropriate log levels.

Change-Id: I9e28ecc7a62be6108ba13e510b8b42b843c97468
CRs-Fixed: 2063646
2017-07-06 11:40:51 -07:00
Kapil Gupta
7401104431 qcacmn: Add support for AES ctr mode for kernel 3.18
Add changes to support AES CTR modes for FILS encryption and
decryption.

Change-Id: I418e85987bfa96efb7b9dc10e9b2125290299c89
CRs-Fixed: 2039626
2017-07-06 08:29:27 -07:00
Wu Gao
f5bb0ac31b qcacmn: Free global pointer ol_sc
For TF SDIO chip, it allocated memory for global pointer ol_sc, but
doesn't free when unloading, which cause memory leak.

Change-Id: Ia27be884ccbaaeb01c9fd5b67898e6f7e4c54364
CRs-Fixed: 2070479
2017-07-06 06:19:48 -07:00
Srinivas Pitla
f4c4186d0d qcacmn: Add notes on Ref count
This change adds the notes in function headers for which ref count
gets incremented internally

Change-Id: Ide232bd7a7361b081edd08c8107451820c2736cc
CRs-Fixed: 2063383
2017-07-05 18:34:42 -07:00
Kiran Kumar Lokere
4decc31941 qcacmn: Add 11d scan as wakeup event
11d scan is scheduled every one hour.The HOST can
be asleep when new country is found. So add 11d
scan as wakeup event.

Change-Id: I495c010b9c1224ab17fc0b082292befaa6b4f1e8
CRs-Fixed: 2057841
2017-07-05 11:04:58 -07:00
Ashish Kumar Dhanotiya
c846868cd8 qcacmn: Add correct api call to get proper boot time
Propagation from qcacld-2.0 to qcacmn

Currently to get clock boottime, qdf_get_monotonic_boottime_ns
api is getting used which does not include the suspend time.

To include the system suspend time also in clock boottime, use
qdf_get_bootbased_boottime_ns api which uses ktime_get_boot_ns
kernel api.

Change-Id: Ibcc628c315201fa3ced7e1ad96753772d91707b2
CRs-Fixed: 2069085
2017-07-05 03:40:50 -07:00
Nandha Kishore Easwaran
f6ddc0cd3e qcacmn: Change keyix in wlan_crypto_getkey for athkey tool
wlan_crypto_getkey only gets key data for default index.
Athkey get with idx 0 retrieves default key else, it will
retrieve custom key data.

Change-Id: I3d1d412f7f024b4ed40590be9b74c6a7fcec0303
2017-07-04 04:29:52 -07:00
Rajeev Kumar Sirasanagandla
2a46442db5 qcacmn: Send proper CTL info to fw in world regd
Currently, for world regd and some other regds where conformance test
limit is NO_CTL, host is sending invalid CTL info to fw instead of
NO_CTL (0xff) due to type conversion issues.

To fix this, use proper unsigned type for CTL info.

Change-Id: I0407d30c6cd6f7f485d767c97bc5381c9c731440
CRs-Fixed: 2056847
2017-07-03 15:58:01 +05:30
Rakesh Pillai
13146458f9 qcacmn: Fix CLANG warnings in Data path
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
2017-06-30 22:50:37 -07:00
Pramod Simha
59fcb31d81 qcacmn: check for in use flag during free
Add a in_use flag to identify if a rx desc is associated
with a valid nbuf and use this flag while freeing the nbuf.

Change-Id: Iace002ecadfd95ce60b7d1eaebc42194a433963b
CRs-fixed: 2044907
2017-06-30 20:14:16 -07:00
Karunakar Dasineni
f40efac097 qcacmn: Fix wbm release descriptor settings
Set BM_ACTION, RELEASE_SOURCE and BUFFER_OR_DESC_TYPE fields in WBM release
ring descriptor in hal_rx_msdu_link_desc_set function.
Added HAL API to retrieve RXDMA push reason and error code from REO entrance
descriptor.

Change-Id: I64209d9ebb332136fae43a55b39e0f0d242315fb
CRs-Fixed: 2062922
2017-06-30 19:29:47 -07:00
Sandeep Puligilla
5c41638e14 qcacmn: set logging thread priority to default
Currently logging thread priority is equal to cds
thread which can cause scheduling issues to other
priority tasks when there are too many wlan debug
messages.
Set logging thread priority to default value.

Change-Id: I578ac062a69a34f7f4b7a2450e59e3f934704934
CRs-Fixed: 2047462
2017-06-30 15:50:14 -07:00
wadesong
c79aed0d8c qcacmn: Wakeup target when configuring PCI-E legacy ISR
Wakeup AR6320 target when PCI-E legacy ISR is configured to
avoid a subsequent crash while interrupt is handled

Change-Id: I3d24f3b7e06c05ba43f631daaeb75af419ed13a5
CRs-Fixed: 2035618
2017-06-30 05:40:32 -07:00
Karunakar Dasineni
1018547152 qcacmn: Fix LMAC interrupt mappings
Current data-path interrupt registration/handling assumes PDEV indices to be
in same order as HW MAC IDs, which is not always true. Fixed this by adding
wlan_cfg api to set and get pdev index to mac id mapping.

Change-Id: Iec8e9f4a02cd618a3b244cfd6fc7ead1e7d993c3
CRs-Fixed: 2063673
2017-06-29 18:25:27 -07:00
tfyu
60c2c9836e qcacmn: Fix the TX packet drop after doing the TX bundle
qcacld-2.0 to qcacmn propagation

The driver will drop the TX packet if remaining depth of the sending queue
is less than 2. This will casue the memory leak, credits missing and TCP stall
issue when running the iperf test.

The fix is to add back current packet before return, which just be dequeued.

Change-Id: I9e0c69c16e9562afd627d0fc222a9fbd475c468c
CRs-Fixed: 2056195
2017-06-28 21:33:30 -07:00
tfyu
2c6845fe26 qcacmn: Increase bus request number from 64 to 105 for SDIO
qcacld-2.0 to qcacmn propagation

The resource of bus request buffers will be exhaused after enabling PTP
feature, which change the data path to OTA path for SDIO solution. So
increase bus request number from 64 to 105 will fix this issue to avoid
memory leak, credits missing and throughput drop issue.

Change-Id: Ic3bb5cea72bcc6a8d3dfd910294efd871fe7e938
CRs-Fixed: 2054177
2017-06-28 21:33:29 -07:00
Kai Chen
cbe4c342b6 qcacmn: Fix the issue on setup monitor mode ring
The pdev id in host is not the same as firmware MAC id
Add host pdevid to firmware MAC id mapping code
in set pdev id for htt sring setup and
set pdev id for htt rx ring selection cfg

The mon_ppdu_status is not synchronized
Fix the issue on pdev mon_ppdu_status by reset
mon_ppdu_status to DP_PPDU_STATUS_START after
monitor destination ring is processed

Add code for mpdu fcs error for later use

Change-Id: Ia6245cc9441e3339bcd01ed18fdce2f33f3f7699
2017-06-28 17:33:34 -07:00
Srinivas Pitla
d7f096602a qcacmn: Fix issue with locking
logical deleted peer list change has a corner case on lock releasing,
which leads to skip unlock API. This change would fix the issue.

Change-Id: If5ad0da589b0bc933a14de8b101bbd17aec413bc
CRs-Fixed: 2058168
2017-06-28 12:47:52 -07:00
Kapil Gupta
041087bfe8 qcacmn: Resolve compilation errors in lower version kernels
symmetric key cipher APIs are present in linux kernel version 4.3
and above only.

Add changes to protect symmetric key cipher APIs invoke in lower
version kernels.

Change-Id: I512d0d98886c887a242a834763b46b2ec0cd4751
CRs-Fixed: 2034502
2017-06-28 12:47:42 -07:00
Kapil Gupta
830881389a qcacmn: Add changes to support crypto API
Add support for hash, hmac-hash calculation and
aead encryption and decryption.

Change-Id: Idddcfaa2ec4c5689c997559551230bc8f59df032
CRs-Fixed: 2029962
2017-06-28 12:47:14 -07:00
Keyur Parekh
fad6d088fa qcacmn: Packet log changes for wifi3.0
Change-Id: I82462f426e4e449c5bc65331e39f07a062e8e242
2017-06-27 23:37:33 -07:00
Ravi Kumar Bokka
4a517a223e qcacmn: Auto Detect SoC Power Collapse Failure changes
Add host support for detecting SOC power collapse failures in FW and
communicating the same to framework.

Change-Id: Icee39c896802c4d7136e0b8ef442a33feeb4799c
CRs-Fixed: 2016580
2017-06-27 22:13:06 -07:00
Arif Hussain
7e19e88ef8 qcacmn: Fix setting WMI_ROAM_INVOKE_FLAG_REPORT_FAILURE
WMI_ROAM_INVOKE_FLAG_REPORT_FAILURE flag is not set correctly,
bit(1) in flags represents WMI_ROAM_INVOKE_FLAG_REPORT_FAILURE,
fix the same.

Change-Id: I8311b1e6999f3c741ec8be87536a73f3e7e3cb93
CRs-Fixed: 2044160
2017-06-27 21:32:06 -07:00
Varun Reddy Yeturu
defe8d10b7 qcacmn: Indicate firmware to report failure for ROAM_INVOKE
Set the WMI_ROAM_INVOKE_FLAG_REPORT_FAILURE flag in the
WMI_ROAM_INVOKE_CMDID requesting the firmware to always
report the failure to the host

Change-Id: Ie1a10ba774cf43e791b48a2f675225c74e94b958
CRs-Fixed: 2023893
2017-06-27 21:32:05 -07:00
Gurumoorthi Gnanasambandhan
f960724eaf qcacmn: Changes to support pdev stats for TLV
Handle WMI_UPDATE_STATS event to process the PDEV stats

Change-Id: I33ebab8deec41a1c8c361e8ca3e3cde05f650325
2017-06-27 20:02:01 -07:00
Rajeev Kumar
fdcab13767 qcacmn: Do not free leaked memory if halt on kmem leak is enabled
If halt on memory leak is enabled then do not free the leaked memory
because when leaked memory gets freed kernel poisons it with 0x6Bs
and all useful data from leaked memory gets lost. In addition add the
leaked memory in a global trash list such that leaked memory can be
extracted for offline debugging.

Change-Id: Ie37fd810199e845831c3c3f325ef1e9ff60c5f37
CRs-Fixed: 2055470
2017-06-27 20:02:00 -07:00
Tushnim Bhattacharyya
3db6b3cc4e qcacmn: Avoid buffer overread when retrieving cnss diag cmd
In cnss_diag_cmd_handler(), add length check for the command attribute.
This prevents possibility of a buffer overread or underrun.
Also add audit comment to express the intent why policy table
is not used in this API.

Change-Id: I023bbf3789498f315fd1bff8db8ef8257abb2b04
CRs-Fixed: 2058580
2017-06-27 18:12:59 -07:00
Manikandan Mohan
64c3d8438f qcacmn: Add athdiag support for QCA6290
Add support for athdiag read / write using PLD APIs.

Change-Id: I5ce8a10bb44342427c97c02d1b6d05db026ef78a
CRs-fixed: 2046045
2017-06-27 18:12:58 -07:00
Vivek
8fe2d7704c qcacmn: Clean up unwanted prints or change to appropriate log levels
Remove unwanted prints from the dirver and also change tha log levels
from some of the prints which could be useful in debug pruposes only.

Change-Id: I2b4e0c94fcf1571b332fc005b34bc4b7bcb4b7c5
2017-06-27 18:12:57 -07:00
hqu
8c27253b0b qcacmn: Fix cnss diag log capture issue
Presently if the module name is changed to something other than wlan,
then MULTI_IF_NAME is defined and cnss diag log can't be captured
because the driver doesn't register itself to cnss_logger module.
Add fix to resolve this issue.

Also add free skb buffer operation for one case to sync with qcacld-2.0.

Change-Id: I815c5260fbc248e37e1ec0417ed5a8cc476ca8b7
CRs-Fixed: 2029803
2017-06-27 18:12:56 -07:00
Archana Ramachandran
54425cc368 qcacmn: Disallow moving to single MAC mode when a 2.4GHz connection exist
After the P2P GO is up on 2.4 GHZ, the opportunistic upgrade
timer handler is sending request to move to single MAC mode.
Since 2.4 GHZ connection is always on MAC1 in DBS 2X2 capable
HW, this is causing P2P connection failure. Add fix to not
downgrade to single MAC mode when there exist a 2.4 GHZ
connection.

Change-Id: I90e2b5b43a6bc8a5b5b44ea96905410092f2866e
CRs-Fixed: 2055867
2017-06-27 18:12:55 -07:00
Soumya Bhat
5d0786be5e qcacmn: Change to address multiple logically deleted node
In the existing code we check for the first instance of logically deleted
node and return to the caller, but there might be multiple nodes in logically
deleted state at a given instance.

Modify code to populate all the peers in logically deleted state in a list
and return the node with delete response pending from FW, to the caller.

Change-Id: I79ce99cc97404c2260ae18983709707ec6e8cdac
CRs-Fixed: 2058168
2017-06-27 15:16:17 -07:00
Linux Build Service Account
2584ae5d53 Merge "qcacmn: fix skb cb corruption issue" 2017-06-27 11:49:03 -07:00
Tallapragada Kalyan
0cd1793ba5 qcacmn: fix skb cb corruption issue
the ftype in skb->cb is overshooting allocated 48 bytes
causing kernel crash

Change-Id: Ie33508c462a032b28624de5270ce91a93d0b067d
2017-06-27 10:32:46 -07:00
Vivek
b02a649f89 qcacmn: Remove vdev/peer locks for trivial APIs
Remove vdev/peer locks from trivial API's. This follows the changes from
which the lock requirement from few simple APIs are removed.

Change-Id: I9972d51dfd1a42bdedbfd0fd4e67af03d030a1f5
CRs-Fixed: 2060880
2017-06-26 23:32:22 -07:00
Vivek
5ec0bd3636 qcacmn: Remove psoc/pdev locks for trivial APIs
Remove psoc/pdev locks from trivial API's. This follows the changes from
which the lock requirement from few simple APIs are removed.

Change-Id: Ib5769c2234c8d57f485c0eef5a4e3c61fa170508
CRs-Fixed: 2060880
2017-06-26 23:32:19 -07:00
Srinivas Pitla
adbe5caff0 qcacmn: Remove lock requirement for trivial APIs
Function headers updated to reflect lock requirement removal

Change-Id: I67ff64253abc402d41d3e19f3579dcf76b15067a
CRs-Fixed: 2060880
2017-06-26 23:32:18 -07:00
Jeff Johnson
a7acc98b0d qcacmn: Properly validate QCA_WLAN_VENDOR_ATTR_NDP_IFACE_STR
Currently the QCA_WLAN_VENDOR_ATTR_NDP_IFACE_STR nla_policy specifies
a type of NLA_STRING, but the underlying implementation expects a
NUL-terminated string. Update the policy to correctly use a type of
NLA_NUL_STRING with the len updated to remove the allocation needed
for the terminating NUL.

Change-Id: Ic73241511ab73ae63fd7c1a8d6422da91931919c
CRs-Fixed: 2063588
2017-06-26 19:34:12 -07:00
Pamidipati, Vijay
be379457e6 qcacmn: Add a flag to enable/disable per-packet sync of DP stats
Currently all Host collected DP statitics are synced to upper layers
on per-packet basis; This is causing significant CPU overhead.
Add a flag which can be controlled through iwpriv to enable/disable
updating of these statistics from DP to higher layers

Change-Id: I983c6d91803c83c1efd49c5535769a0c10fbc9b5
CRs-Fixed: 2064113
2017-06-26 17:42:34 -07:00
Pamidipati, Vijay
45b1df25fc qcacmn: Configure DP interrupt mitigation values based on ring type
Currently interrupt mitigation values are configured for per-packet interrupts.
Change this for core DP rings (REO Destination and WBM Tx Completions) to reduce
CPU overhead of interrupt processing

Change-Id: I7bf0f6e78c52b5678ad3c8cc4d829444e410fad3
CRs-Fixed: 2064113
2017-06-26 17:42:33 -07:00
Linux Build Service Account
6863f03e13 Merge "qcacmn: Initialize mac_phy_count to zero before populating macphy params" 2017-06-26 17:31:31 -07:00
Kiran Venkatappa
be23decc06 qcacmn: Initialize mac_phy_count to zero before populating macphy params
mac_phy_count should be initialized to zero before populating machphy
params. Target stop/start framework skips attach/detach which means
mac_phy_count should be initialized explicitly.

Change-Id: I9fe537c3a7e375397982174f6a63599a961ba8d3
CRs-Fixed: 2065321
2017-06-26 15:36:01 -07:00
Deepak Dhamdhere
e99d6683f7 qcacmn: Enable PMK cache and OKC with RSO command
Firmware now supports PMK caching in addition to OKC
(Opportunistic Key Caching). Use additional bit flags to enable
PMK caching in PMK configuration in roam offload scan request.

CRs-Fixed: 2004963
Change-Id: I536a4d45d5d915ab02dc13db6124a1ce8949fe48
2017-06-26 11:57:55 -07:00
Jeff Johnson
f155c675e5 qcacmn: Validate vendor abort scan command
In wlan_vendor_abort_scan(), nla_parse() is invoked without specifying
a policy. This can result in a buffer overread when processing the
QCA_WLAN_VENDOR_ATTR_SCAN_COOKIE attribute. To avoid this issue
introduce a "scan_policy" (replicated from qcacld-3.0) and use this
policy when invoking nla_parse().

Change-Id: Ia3e5cb7535bf0f700399e4a49c9c5da362a3ccf6
CRs-Fixed: 2059857
2017-06-26 11:07:16 -07:00
Linux Build Service Account
eba9b1e192 Merge "qcacmn: Incorrect use of tx descriptor" 2017-06-23 18:25:25 -07:00
Venkata Sharath Chandra Manchala
340c0d8903 qcacmn: Incorrect use of tx descriptor
Avoid accessing and releasing tx descriptor when it is
not allocated in tx path.

Change-Id: I36515b679c541d081fd836ea3fb732768031cc06
CRs-Fixed: 2062160
2017-06-23 10:41:30 -07:00
Linux Build Service Account
444e706a79 Merge "qcacmn: Fix buffer overflow when radiotap header is larger than available headroom" 2017-06-23 09:41:45 -07:00