Commit Graph

11224 Commits

Author SHA1 Message Date
Jinwei Chen
7abd27ed06 qcacld-3.0: limit the log rate for RX invalid peer processing
Limit the log rate to avoid excessive logging when host hanlde RX
data with invalid peer.

Change-Id: I5dba430809d7567905e919676d8cd3245906b884
CRs-Fixed: 2336919
2018-10-24 09:53:45 -07:00
stonez
26388d085a qcacld-3.0: Configure non aggr TX packet retransmission
Wireless application needs to tune parameters per AC based.
Such as VI/VO queue use the different re-transmission attempts
while other queue keeps the default value. It helps to improve
the video/audio performance in noisy environment. this change
add the ability to config re-transmission attempts of non
aggregation QOS packets.

Change-Id: I95404302463275803e3feff3038f04c900b14705
CRs-Fixed: 2323555
2018-10-24 09:53:32 -07:00
nshrivas
8e66eb6163 Release 5.2.0.103A
Release 5.2.0.103A

Change-Id: I352d9cb817f8637b3ca7ef87ee15e4675b81362c
CRs-Fixed: 774533
2018-10-24 08:17:34 -07:00
Ashish Kumar Dhanotiya
2ef479048d qcacld-3.0: Clear oldest cached sta information
Currently host is caching all the connected sta info
in case of SAP, once the sta count reaches to MAX, below
mentioned issues occurs:
1. Driver can not cache the information of newly connected
   stations.
2. Some of the info is cached at the time of connection while
   remaining info is cached during disconnection. In the
   disconnect path driver tries to cache some of the info
   such mc_bc count, disconnect reason code, since driver can't
   cache anymore info, it does not find the current station which
   is getting disconnected in cache sta info structure leading to
   an error, and driver is returning an error without completing
   the wait for disconnect event which is resulting in timeout.
Since sta_disconnect comes with rtnl_held, any other process
is not able to get the rtnl_lock until this timeout occurs.

To address this issue below mentioned two measures taken care:
Clear the oldest cached sta information and save the newly connected
station's information.
In the disconnect path, do not return any error and simply proceed
with disconnection as failure to cache the information of sta
should not stop the disconnection process.

Change-Id: Ia955a6774033fdfa91ff1fa7c8832b3ec7e8e1a0
CRs-Fixed: 2333075
2018-10-24 08:17:33 -07:00
nshrivas
89083f7f48 Release 5.2.0.103
Release 5.2.0.103

Change-Id: I545b43a29341977655e0f2632b43228e94ca6f7a
CRs-Fixed: 774533
2018-10-24 06:26:18 -07:00
Vignesh Viswanathan
a813462a02 qcacld-3.0: Fill Channel width for add_sta params from session entry
Currently the sta_context in add_bss params which is used to send the
peer_assoc command to the FW, the ht_enable and vht_enable are set based
on the AP's capability from the beacon. However, the channel width is
set based on the assoc response frame from the AP.

In a scenario where the AP advertises HT and VHT IEs in the beacon but
does not send HT and VHT IEs in the assoc response frame, we will end up
connecting in VHT/HT mode but with incorrect channel width.

Update the sta_context channel width also based on the AP's capability
from the beacon so that the connection would happen in the right channel
width even if HT/VHT IEs are missing in the assoc response frame.

Change-Id: Idb1907abebf32a34f88e935a30ebb8f1bce1d59c
CRs-Fixed: 2324434
2018-10-24 06:26:17 -07:00
nshrivas
96fd4a81e1 Release 5.2.0.102Z
Release 5.2.0.102Z

Change-Id: Ifdcbce6a6ff64e712c59f5aa3c703d68669a84ec
CRs-Fixed: 774533
2018-10-24 04:49:34 -07:00
Abhishek Singh
fc740bed63 qcacld-3.0: Fix e_sme_command_nss_update stuck issue
Update NSS command is remove once driver receive the tx completion
event for the beacon. If SAP is in CAC wait state driver will not
get the tx completion for the beacon and the update NSS will timeout
after 30 sec and the serialization cmds queues will get stuck.

To avoid this remove the update NSS command from active queue as
soon as beacon is sent to firmware

Change-Id: I6f5b6bce91bdfacd4621020f313be25f74696b9d
CRs-Fixed: 2332302
2018-10-24 04:49:34 -07:00
hangtian
5fe81f014a qcacld-3.0: Update chandef if choosing new channel for softap
Currently if hostapd choose channel 149, enable ieee80211d, and
select country_code JP. Driver will choose random channel after regd
updated to JP got from firmware. Since 149 is invalid for JP
country_code, driver choose random channel in JP channel list.
Driver indicate cfg80211 chandef is changed in hdd_chan_change_notify.
However, if we don't update cfg80211_ap_settings.chandef in
cfg80211_ops.start_ap, cfg80211 will copy old chandef back to
wdev->chandef after cfg80211_ops.start_ap.  Then reg_wdev_chan_valid
will return false and cfg80211_leave leads to stop
AP in reg_leave_invalid_chans.

Change-Id: I3f89da46b4172fdea2774703f32b9cbabff41eeb
CRs-Fixed: 2315627
2018-10-24 04:49:30 -07:00
nshrivas
c3b52360c6 Release 5.2.0.102Y
Release 5.2.0.102Y

Change-Id: Ie51702f7dde349d8341944f2479f305dfe84f080
CRs-Fixed: 774533
2018-10-24 03:17:03 -07:00
nshrivas
f16d12c794 Release 5.2.0.102X
Release 5.2.0.102X

Change-Id: Id58143d21be2816fd5873c8926726212bfc214e6
CRs-Fixed: 774533
2018-10-24 01:45:09 -07:00
Rajeev Kumar
fe6e62f50f qcacld-3.0: Reset cfg_ctx to NULL after its freed
Reset cfg_ctx to NULL after its freed to avoid any use
after free.

Change-Id: Iff0eb6f6db5a1467913cebd09a424776ed3390c1
CRs-Fixed: 2337050
2018-10-24 01:45:08 -07:00
Dustin Brown
4c66322b99 qcacld-3.0: Abstract idle shutdown timer start/stop
The code to start and stop the idle shutdown timer in HDD is currently
copy-pasted in multiple locations. Abstract this logic behind two new
APIs, and call these APIs where appropriate.

Change-Id: I73b05e603454a4817cb9c1606c1207d7fe68e5ab
CRs-Fixed: 2337755
2018-10-24 01:45:05 -07:00
nshrivas
e16cf530ca Release 5.2.0.102W
Release 5.2.0.102W

Change-Id: I56d091d40377a6f66c45eeaa38c0e3c3f5d64ec2
CRs-Fixed: 774533
2018-10-23 16:51:28 -07:00
Rakshith Suresh Patkar
4faeb2e806 qcacld-3.0: Add NULL check for adapter in hdd_nud_filter_netevent
API hdd_nud_filter_netevent is used to filter netevents for
STA interface. It is the driver's responsibility to
filter and act on event if it is for the net device. However,
the NULL check that is present in hdd_validate_adapter comes
with error logs which flood the console.

Add NULL check for adapter after call to hdd_get_adapter_by_macaddr
in hdd_nud_filter_netevent so that if the event is not for
the net device, ignore the event and return to avoid excessive
logging.

Change-Id: Icfb2f27f97712bf8e1422404a85163e801d43641
CRs-Fixed: 2335081
2018-10-23 17:57:56 +05:30
nshrivas
ddf1348378 Release 5.2.0.102V
Release 5.2.0.102V

Change-Id: I1daa6e2ae1183732af263a10d4e7daf54ecfbdd7
CRs-Fixed: 774533
2018-10-22 21:45:04 -07:00
Liangwei Dong
1ba994826c qcacld-3.0: Get proper channel after scan for SSID
If there is no scan cache available, csr_roam_connect
will trigger a scan and after scan complete csr will
call csr_roam_issue_connect to connect one of candidate BSS.
And driver only checks the first candidate BSS's channel
for HW mode change after scan complete.
The issue is if connect first candidate failed, the next
or other candidate BSS may require DBS in concurrency
condition and the check
policy_mgr_is_hwmode_set_for_given_chnl will be failed.
To avoid such the hw mode check failed, we need to change hw
mode early if any of BSS requires DBS mode before try to
connect the BSS candidate in list one by one.

Add API csr_scan_get_channel_for_hw_mode_change which returns
DBS required candidate channel in BSS list if available,
otherwise returns the first candidate's channel.

Change-Id: I42862f100ee56ada41d6397346937219d0e688df
CRs-Fixed: 2335075
2018-10-22 21:45:04 -07:00
nshrivas
bd2381d269 Release 5.2.0.102U
Release 5.2.0.102U

Change-Id: I32ed830390f05bcd623a543e4cb700343dffbf92
CRs-Fixed: 774533
2018-10-22 19:49:19 -07:00
Jeff Johnson
5e15ef5157 qcacld-3.0: Refactor WE_SET_MAX_TX_POWER processing
Currently the HDD function with the highest cyclomatic complexity is
__iw_setint_getnone(). The handing of WE_SET_MAX_TX_POWER has a
complexity greater than 1, so refactor that logic into a separate
function to help reduce the complexity of __iw_setint_getnone().

Change-Id: I9d2390aba4d90f7171de516be68f7073d1f2e4eb
CRs-Fixed: 2336982
2018-10-22 19:49:18 -07:00
Jeff Johnson
5d4a6d15ed qcacld-3.0: Refactor WE_SET_TX_POWER processing
Currently the HDD function with the highest cyclomatic complexity is
__iw_setint_getnone(). The handing of WE_SET_TX_POWER has a complexity
greater than 1, so refactor that logic into a separate function to
help reduce the complexity of __iw_setint_getnone().

Change-Id: I91f5da1593d5c8c6bfacbcc76e8595b3957b3ec2
CRs-Fixed: 2336981
2018-10-22 19:49:15 -07:00
Jeff Johnson
9451194fef qcacld-3.0: Refactor WE_SET_WOW_DATA_INACTIVITY_TO processing
Currently the HDD function with the highest cyclomatic complexity is
__iw_setint_getnone(). The handing of WE_SET_WOW_DATA_INACTIVITY_TO
has a complexity greater than 1, so refactor that logic into a
separate function to help reduce the complexity of
__iw_setint_getnone().

Change-Id: Ibe02deaaf0250b434d72da23088ee0aaec311006
CRs-Fixed: 2336980
2018-10-22 19:49:12 -07:00
Jeff Johnson
693722c4b4 qcacld-3.0: Refactor WE_SET_DATA_INACTIVITY_TO processing
Currently the HDD function with the highest cyclomatic complexity is
__iw_setint_getnone(). The handing of WE_SET_DATA_INACTIVITY_TO has a
complexity greater than 1, so refactor that logic into a separate
function to help reduce the complexity of __iw_setint_getnone().

Change-Id: Ica3c1c31ac8ae88d02d5d34d2fc1e53aa70508b9
CRs-Fixed: 2336979
2018-10-22 19:49:08 -07:00
Jeff Johnson
eb4368a044 qcacld-3.0: Refactor WE_SET_MAX_ASSOC processing
Currently the HDD function with the highest cyclomatic complexity is
__iw_setint_getnone(). The handing of WE_SET_MAX_ASSOC has a
complexity greater than 1, so refactor that logic into a separate
function to help reduce the complexity of __iw_setint_getnone().

Change-Id: Ie24b589f2b32ea495cfaba7a600ef77e10d20f9e
CRs-Fixed: 2336978
2018-10-22 19:47:12 -07:00
Jeff Johnson
daf2e6a888 qcacld-3.0: Refactor WE_SET_POWER processing
Currently the HDD function with the highest cyclomatic complexity is
__iw_setint_getnone(). The handing of WE_SET_POWER has a complexity
greater than 1, so refactor that logic into a separate function to
help reduce the complexity of __iw_setint_getnone().

Change-Id: I4a2c08faf7ec88ca35a353c778fa0269f35eb76d
CRs-Fixed: 2336977
2018-10-22 19:47:08 -07:00
nshrivas
a2949089e8 Release 5.2.0.102T
Release 5.2.0.102T

Change-Id: I1b48421c8b5926ca5832e49392bf5f1c95d55d65
CRs-Fixed: 774533
2018-10-22 18:23:45 -07:00
Jeff Johnson
297a398c27 qcacld-3.0: Refine the SME NAN public interface
Update the SME NAN public interface as follows:
1) Move the sme_nan_event() prototype to nan_api.h
2) Fully document the interfaces (not the implementations)
3) Utilize the new mac_handle_t abstraction
4) Clean up local coding style violations

Change-Id: I7ae6fff6e4a44570463383e9f6f50731fa594192
CRs-Fixed: 2335643
2018-10-22 18:23:44 -07:00
nshrivas
1a662f9e97 Release 5.2.0.102S
Release 5.2.0.102S

Change-Id: I9bd8544606acdd4cbd1c9332e20266405a860344
CRs-Fixed: 774533
2018-10-22 15:06:38 -07:00
nshrivas
1e4e68ef8b Release 5.2.0.102R
Release 5.2.0.102R

Change-Id: I378ce96f8722a3341ed11f348c46a6eb5c64e72e
CRs-Fixed: 774533
2018-10-22 13:20:17 -07:00
Sandeep Puligilla
ec0dd9a38c qcacld-3.0: Remove cfg.txt file
cfg.txt content was moved to cfg_proc_msg.c file due
to change in process to populate the CFG items.
Remove unused cfg.txt file.

Change-Id: I2f942b1dcb11a98a75a4c968d79f9ceef44172fa
CRs-Fixed: 2336129
2018-10-22 13:20:16 -07:00
nshrivas
580fd886ab Release 5.2.0.102Q
Release 5.2.0.102Q

Change-Id: Ib15c32824d2a332cd38f40102624450f9872776e
CRs-Fixed: 774533
2018-10-22 07:00:02 -07:00
Bala Venkatesh
ca29fbceaa qcacld-3.0: Delete all peers in TDLS component
In case of heartbeat failure or deauth from AP,
From lim Del sta requests are sent to FW and with response
required false, Since del sta response is not received
TDLS component is not notified to reset the local
tdls component structures and also upper layers are
notified of this peer deletion.

Change-Id: Ica0b150df7646af60868b2806432795896c75bcd
CRs-Fixed: 2334711
2018-10-22 07:00:01 -07:00
nshrivas
5fbf54f574 Release 5.2.0.102P
Release 5.2.0.102P

Change-Id: I9a5ddf8219f141ce315bc7054071f666d3b5f3e2
CRs-Fixed: 774533
2018-10-22 05:25:50 -07:00
gaurank kathpalia
837f620084 qcacld-3.0: Add wps params to mlme component
Add wps params in respect to CFG
convergence

Change-Id: I462e3e1b3f60c7ec65a7cdf5e3bc7b69c28a5d79
CRs-Fixed: 2326841
2018-10-22 05:25:49 -07:00
nshrivas
8e058a7061 Release 5.2.0.102O
Release 5.2.0.102O

Change-Id: I42e142d90ea3ef7995094314abce34f21c4392b1
CRs-Fixed: 774533
2018-10-22 03:52:12 -07:00
Wu Gao
d7dd6e4157 qcacld-3.0: Rename some ucfg APIs of PMO
To keep names of PMO ucfg APIs consistent, change some of them from
"pmo_ucfg_xxx" to "ucfg_pmo_xxx".

Change-Id: I77165be8c5c408c3f91f84a477c15be1c6ea15e8
CRs-Fixed: 2334109
2018-10-22 03:52:11 -07:00
Dustin Brown
53f51e7c9b qcacld-3.0: Remove wlan_hdd_get_session_type()
wlan_hdd_get_session_type() implements a subset of
hdd_nl_to_qdf_iface_type(). Remove wlan_hdd_get_session_type() and use
hdd_nl_to_qdf_iface_type() instead to reduce duplicate code.

Change-Id: I9186ff28def73edffa027d454540543c8619144d
CRs-Fixed: 2336080
2018-10-22 03:52:07 -07:00
nshrivas
83b8a3540f Release 5.2.0.102N
Release 5.2.0.102N

Change-Id: I4195d128ede013b2b6a744b196b76f6d996f972a
CRs-Fixed: 774533
2018-10-22 01:02:51 -07:00
Min Liu
74a1a5032f qcacld-3.0: HDD: Remove excessive logs - Part 1
Remove log in callers of the following function:

qdf_mem_malloc()

Change-Id: I33019772f0c9289eb7e770cfa98739e0260cca81
CRs-Fixed: 2331653
2018-10-22 01:02:51 -07:00
nshrivas
f13a016797 Release 5.2.0.102M
Release 5.2.0.102M

Change-Id: I4cd84034bb120524a38ad910df61e74fe59ca18b
CRs-Fixed: 774533
2018-10-21 23:14:17 -07:00
Dustin Brown
458027cef4 qcacld-3.0: Remove hdd_device_mode_to_string()
qdf_opmode_str() has recently been added for converting a vdev operating
mode into a human readable string. Historically, HDD has used
hdd_device_mode_to_string() for this purpose. Replace
hdd_device_mode_to_string() with qdf_opmode_str() such that there is one
function for mapping vdev operating mode to human readable string.

Change-Id: I38880f915b617b5c02b2029762eacdf6ef8bac15
CRs-Fixed: 2336065
2018-10-21 23:14:16 -07:00
nshrivas
ce5df07519 Release 5.2.0.102L
Release 5.2.0.102L

Change-Id: I42f8b5a10cfdeaeddfc9d1f8b88f6efa06a59945
CRs-Fixed: 774533
2018-10-19 16:53:15 -07:00
Dustin Brown
61cc393b74 qcacld-3.0: Convert open adapters to vtable map
Using a switch case as a method for mapping an enumerated value to a
handler function has the down side of allowing future changes to pollute
the switch case with additional logic. It also tends to lead to high
cyclomatic complexity. Avoid these issues in hdd_open_adapters_for_mode
by converting the switch case to a vtable.

Change-Id: If91cbaf1e0ed561122b599550f3c450ec47eda31
CRs-Fixed: 2335970
2018-10-19 16:53:14 -07:00
Dustin Brown
a2deeb7047 qcacld-3.0: Unify open_interfaces and register_req_mode
The logic for creating the initial vdevs for a given driver mode is
implemented in two different functions: hdd_open_interfaces() and
hdd_register_req_mode(). This had lead to some duplication between the
two implementations. Instead, unify both functions so the duplicate code
can be removed.

Change-Id: I9a1f74ca14d3d4cda8d05bf6b000038770a1ea05
CRs-Fixed: 2335969
2018-10-19 16:53:10 -07:00
nshrivas
8a437f1a68 Release 5.2.0.102K
Release 5.2.0.102K

Change-Id: Ice371f334d7b7fb1520edfc8be331db200c83b01
CRs-Fixed: 774533
2018-10-19 13:09:51 -07:00
Jeff Johnson
7272ea7cc0 qcacld-3.0: Refine the extscan stop scan logic
Make the following updates to the extscan stop scan logic:
1) Exclusively use the Unified WMI data structures.
2) Update the HDD<=>SME interface to enforce the contract that SME
   must not make any assumptions about the buffers provided by HDD.

Change-Id: Ie4a693b4a91d728a075cffad3ee368b22d9c5b2a
CRs-Fixed: 2335647
2018-10-19 13:09:50 -07:00
nshrivas
a8d1740222 Release 5.2.0.102J
Release 5.2.0.102J

Change-Id: Ia5f17c8d6ea9cdf6d8ec3c2a990a898fc578c263
CRs-Fixed: 774533
2018-10-18 18:41:44 -07:00
Dustin Brown
686d3030e2 qcacld-3.0: Change dot11p_mode to enumerated type
dot11p_mode is currently represented with a uint8_t type, despite an
appropriate enumerated type being available. Change the field's type to
the more restrictive 'enum dot11p_mode' instead of uint8_t.

Change-Id: I847ce0901297b0a3e4312e8ce4124a886320f174
CRs-Fixed: 2335575
2018-10-18 18:41:44 -07:00
nshrivas
37ec52267e Release 5.2.0.102I
Release 5.2.0.102I

Change-Id: Iaf5f1628e200b1a7ce1fa1521913040bb863b80f
CRs-Fixed: 774533
2018-10-18 14:22:19 -07:00
Jeff Johnson
dab5860bf9 qcacld-3.0: Refine the extscan start scan logic
Make the following updates to the extscan start scan logic:
1) Exclusively use the Unified WMI data structures.
2) Update the HDD<=>SME interface to enforce the contract that SME
   must not make any assumptions about the buffers provided by HDD.
3) Address a multitude of checkpatch issues

Change-Id: I68dc988fafb7e14b2b80d1007adf614ddff284e2
CRs-Fixed: 2335045
2018-10-18 14:22:18 -07:00
nshrivas
54ecf6c7d5 Release 5.2.0.102H
Release 5.2.0.102H

Change-Id: I00582cda13e6de5ff77a630861e11e1cd2c63da3
CRs-Fixed: 774533
2018-10-18 08:13:26 -07:00