Commit graph

5114 Commits

Autor SHA1 Nachricht Datum
Ajit Pal Singh
a63ed8be19 qcacmn: Init tgt_info->target_type for QCN7605 USB
1) Setup target_type for QCN7605(Genoa) USB.
2) Do not reset soc in hif_usb_diag_write_cold_reset() for QCN7605
3) Skip USB_REQ_SET_CONFIGURATION and usb_set_interface() for QCN7605
4) Return false in hif_needs_bmi() for QCN7605

Change-Id: I159b7043d55c5a1a341defde89cd8ccc760bb830
CRs-Fixed: 2266915
2018-07-05 06:42:20 -07:00
Ajit Pal Singh
cd4a1c4308 qcacmn: qcn7605: Add support for HIF_RX_CTRL_PIPE
For QCN7605-USB, WMI_CTRL_SERVICE will use an exclusive
IN USB endpoint.

Change-Id: Ia943c9c3741e91f4b13a85719eee770c08ce8379
CRs-Fixed: 2266915
2018-07-05 06:42:17 -07:00
Bala Venkatesh
9bf4f33852 qcacmn: Avoid possible buffer overflow
In function tdls_ct_sampling_tx_rx, memcpy of
unknown length buffer is done into fixed size
struct array. Mem copying without checking
length can lead to buffer overflow.

Change-Id: I0608bd69d71ff1901f82b44d045963e9d383e6ce
CRs-Fixed: 2269276
2018-07-05 06:42:15 -07:00
Frank Liu
1a3151ed20 qcacmn: Post tdls connet/disconnect event to target_if queue
TDLS will update tdls firmware state according to STA connection status,
the change is to post tdls connect/disconnect event to target_if queue,
otherwise these events will be scheduled too late which would be out of
sync, cause unexpected results.

Change-Id: I76d70339f236b580bfb98fb1b8f5121784cb3465
CRs-Fixed: 2269978
2018-07-04 17:30:42 -07:00
Shreedhar Parande
ced1918365 qcacmn: Commands related to PreCAC auto channel switch support
Added commands for setting intermediate channel and
getting precac channel state.

CRs-fixed: 2272085
Change-Id: I735f70008abdbe60ce2c167e7c0fe9227572b96c
2018-07-04 13:05:10 -07:00
Lihua Liu
0fd49e9a6f qcacmn: Add check for valid length to avoid buffer overflow
Add check for valid length before copying in function
extract_ndp_ind_tlv to avoid potential buffer overflow issue.

CRs-Fixed: 2271344
Change-Id: I2ddcbc46a45d4d5308b1e0cf663598c85512bbaf
2018-07-04 11:38:14 -07:00
Jianmin Zhu
e0abd264db qcacmn: Move SAP to safe channel after STA disconnection
Standalone SAP is not allowed on lte-coex channel if STA+SAP SCC
enabled on lte-coex channel. So move the SAP to a safe channel
once STA disconnected.

Change-Id: I00682f5bbb3da772e3e26ccd8d08183be28cc9ec
CRs-Fixed: 2265263
2018-07-04 10:22:19 -07:00
Jianmin Zhu
143f083967 qcacmn: Fix compile implicit conversion from enumeration type error
Error: implicit conversion from enumeration type
'enum wlan_umac_comp_id' to different enumeration type
 'wlan_objmgr_ref_dbgid' [-Werror,-Wenum-conversion]

Change-Id: I641c1eee77e977547841cebb4fd2fef8c06ca18c
CRs-Fixed: 2271058
2018-07-04 10:22:16 -07:00
Venkateswara Swamy Bandaru
f290a54316 qcacmn: Fix irq imbalance issue
irq imbalance issue happens when some irq is disabled or enabled multiple
times. For group interrupts enabling one interrut can cause irq to come.
By this time other interrupts in the group are not enabled. But the irq
will disable all group interrupts in qir context. Later those interrupts
will be enabled. This can cause race condition and in turn irq imbalance
issue. Fix this issue by protecting request_irq and free_irq of group
interrupts to avoid race condition.

Change-Id: Ic99e80600ef63c0d7aff45231d0dae6767cd084c
CRs-Fixed: 2262333
2018-07-04 08:45:52 -07:00
Dustin Brown
ce28cb1bdb qcacmn: Add optional reason to QDF_DEBUG_PANIC
It is generally useful to log the reason for a panic at the time of
panic. The Linux panic API accepts a reason string, so to aid in moving
from panic() to QDF_DEBUG_PANIC(), add an optional reason parameter.

Change-Id: If4ed0e664f6b15deb4c6edf76bdc25f55ba82fac
CRs-Fixed: 2271764
2018-07-04 06:54:52 -07:00
Yeshwanth Sriram Guntuka
f48e5a8e20 qcacmn: Ignore deauth ind received when in DEAUTH_REQ substate
P2P GO received deauth frame from p2p client and del_station is
received from userspace. As part of del_station FORCE_DEAUTH_STA
command is processed. Deauth frame is processed after this which
sends DEAUTH_IND to csr. Wm status change command is enqueued and
is not processed since there is already an active command. Cleanup
is done as part of del_station. Auth frame received is processed
and auth rsp is sent. Message is posted to lim on receiving assoc
req frame from p2p client. Wm status change command is processed
and DEAUTH_CNF msg is posted to lim. Assoc req frame is processed
and ASSOC_CNF is posted to lim. DEAUTH_CNF is processed before
ASSOC_CNF due to which sta_ds entry is removed. Assoc resp is
not transmitted as a result and p2p group formation fails.

Fix is to ignore deauth indication received when csr substate
is DEAUTH_REQ.

Change-Id: Ia1966a4cced3faf15605aeb3d69b8fafa2176c22
CRs-Fixed: 2269609
2018-07-04 03:01:58 -07:00
Krishna Rao
490ccc914e qcacmn: Add definitions for WMI_HOST_SMART_LOG_SCENARIO
Add definitions for the enum WMI_HOST_SMART_LOG_SCENARIO which defines
individual smart logging scenarios which can be enabled/disabled. Also
add utility macros to set/get the same.

Change-Id: I2b188a6f5cb202868d43253e706115de570cb1e8
CRs-Fixed: 2162053
2018-07-04 03:01:56 -07:00
gaurank kathpalia
cb5ce20e28 qcacmn: Remove DBS logic from scm_calculate_nss_score
Driver calculates nss score for BSS, depending upon the
current DBS status. Thus it does not give more preference
to 2x2 and considers it the same as 1x1.
But the DBS condition can change and driver
can move to single mac.

Fix to give more preference to 2x2 BSS so that
better throughput can be achieved in single mac.

Change-Id: Ib684abe423fd21a81cb13db5f741fdfbb750328d
CRs-Fixed: 2271976
2018-07-04 00:57:47 -07:00
Linux Build Service Account
62b8a9886d Merge "qcacmn: Fix vendor abort scan failure" into wlan-cmn.driver.lnx.2.0 2018-07-03 19:45:22 -07:00
Linux Build Service Account
449009a34c Merge "qcacmn: Map IGMPMLD pdev param to appropriate param supported by target" into wlan-cmn.driver.lnx.2.0 2018-07-03 17:54:57 -07:00
Sandeep Puligilla
dc89e47503 qcacmn: Fix vendor abort scan failure
Vendor abort scan request is cancelling all
the pdev scans instead of a specific scan command.

Modified vendor abort scan API to cancel specific
scan request.

Change-Id: I087637e44b8ee7f6cc12e9e47db04eec3f9ff93e
CRs-Fixed: 2270030
2018-07-03 15:16:46 -07:00
Arif Hussain
9e6c82e47f qcacmn: dfs: Reduce log level for false radar detections
Reduce log level for false radar detections.

Change-Id: I01b822db19204eec8e0294f1555463c6dc0837cd
CRs-Fixed: 2271621
2018-07-03 13:42:22 -07:00
Sathish Kumar
257b307eb0 qcacmn: Map IGMPMLD pdev param to appropriate param supported by target
Pdev parameter to prioritize IGMP packets are supported through
WMI_PDEV_PARAM_IGMPMLD_AC_OVERRIDE. In legacy platforms, they are
supported by different pdev parameters WMI_PDEV_PARAM_IGMPMLD_OVERRIDE
and WMI_PDEV_PARAM_IGMPMLD_TID.

Map host maintained pdev params wmi_pdev_param_igmpmld_override and
wmi_pdev_param_igmpmld_tid to WMI_PDEV_PARAM_IGMPMLD_AC_OVERRIDE since
this is the one supported by TLV based targets.

Change-Id: Ia11787265bd926f257dc1b028552c6e7f1f733d2
CRs-Fixed: 2272219
2018-07-03 08:46:41 -07:00
Linux Build Service Account
cb090521de Merge "qcacmn: Allocate DP_TRACE buffer dynamically" 2018-07-03 05:33:24 -07:00
Linux Build Service Account
fa056a3e14 Merge "qcacmn: Configure Allowed Channels and ACS Allowed Channels" 2018-07-03 05:33:24 -07:00
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
Rachit Kankane
b3ba76975e qcacmn: Allocate DP_TRACE buffer dynamically
Allocate memory for g_qdf_dp_trace_tbl buffer dynamically.

Change-Id: Id5cc51776f4378ecc97d7d758d5e502055423fb2
CRs-Fixed: 2268793
2018-07-02 11:24:53 +05:30
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
Shashikala Prabhu
e874411d1e qcacmn: Configure Allowed Channels and ACS Allowed Channels
Description:-
'wifitool athX setprimarychans ch1 ch2 ... chn' will restart athX if
current channel is not in primary allowed channel list.
'wifitool athX getprimarychans' to get primary allowed channel list.
The channel selected by ACS, random channel selection will be ignored
if it's not present in primary allowed channel list.
When user sets the channel using iwconfig or doth_chanswitch, if the
channel is not present in the primary allowed channel list then HOST
does not honour the channel change.

Change-Id: If37592d4246334a3c8fb17d44aaead7a6f9e969e
CRs-Fixed: 2264102
2018-06-28 23:38:59 -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