Do following cleanup on fastpath code changes:
1) Remove reaping of Tx HIF buffers in Rx handling, instead handle
reaping in Tx fastpath itself.
2) In ce_per_engine_service_fast check for more Rx packets after
packet processing.
3) Make stub functions as static inline for non-fastpath enabled case.
Change-Id: If07c4344a424ce13b94128bf28931a24255b661a
CRs-Fixed: 987182
With dedicated CE for Rx HTT messages, skip processing in HTC layer.
Do special handling in HIF-CE and HTT layer, this optimization results
in 3-4% CPU utilization gain.
Change-Id: I400148a0e24ac62dd09e2a95d5f35d94d83fe2df
CRs-Fixed: 987182
Make changes so that LRO and FastPath can check whether a
given CE is a datapath RX CE. This is done through new
flags in CE_state which indicate whether or not a given
CE is a htt_[tr]x CE.
Also add support to enable multi-queue NAPI.
Note that the paths are not yet parallel-execution protected,
but this should be OK as all NAPI instances are processing
the same interrupt now and as such as serialized.
Acked-by: Orhan K AKYILDIZ<oka@qca.qualcomm.com>
Change-Id: I57125b3e1fbad0345b6e1f4ed25e71babaf4f520
CRs-Fixed: 982728
qcacld-2.0 to qcacld-3.0 propagation
PTK exchange and install happens during preauthentication if key_mgmt is
FT-PSK. STA TL state moves to authenticated only if ptk_installed is true.
Currently ptk_installed is false after roaming due to which STA TL state
does not move to authenticated state and also does not enter BMPS.
To fix this issue, set ptk_installed to true in case of 11R roaming
Change-Id: I59e4466994e59b055246e86613315b0299b767a7
CRs-Fixed: 961555
qcacld-2.0 to qcacld-3.0 propagation
Fix to add NULL check before dereference of pointer
Change-Id: I520aca1fc46cf3fbb30d2f068f6da43a2b2986e6
CRs-Fixed: 965800
Send UAPSD parameters to FW and enable it only if the device is
in power save mode.
Change-Id: I14ecfc8bace7ec15eebe18296355544cdbdf030e
CRs-Fixed: 991119
Use the pcl channel list to do random channel selection when the
radar is detected.
Change-Id: I286bf447a398bf1d9a7a1493ac4bbfd9847de148
CRs-Fixed: 988325
Modify the routine name of is_roaming_offload_enabled to
roaming_offload_enabled
CRs-Fixed: 978905
Change-Id: I1bfa1ebe1f7dd9dc88c68a0c660fa1886cf0e0fe
Enable compile time featurization support for both LFR2.0
and LFR3.0 using WLAN_FEATURE_HOST_ROAM and
WLAN_FEATURE_ROAM_OFFLOAD respectively
CRs-Fixed: 978905
Change-Id: Ib5976cd0cd5a6e117a1334bfc73a043e36e25f77
Move the scanning related code which is pertinent to roaming
into a separate file so that any future maintenace would be
easy across different projects
CRs-Fixed: 978905
Change-Id: Ia8c81726eb843d0a5aa89affa89d84d77994932e
Move the preauthentication related code in the CSR module
into a separate file so that it is easy to maintain
across different projects
CRs-Fixed: 978905
Change-Id: I56e8441f08dec180f080c305ba5c6541302f107c
Create a new function csr_neighbor_roam_state_transition to
transition the roaming state and also log it
CRs-Fixed: 978905
Change-Id: Id50d51fe1fa09dc9984ba83fbc01e8d9c7d00ffa
Remove WLAN_FEATURE_ROAM_SCAN_OFFLOAD compile time flag from the code
since this is relevant to roaming (LFR2.0) and always enabled by default.
The flag also does not seem to cover the feature entirely and it does
not make any meaning to only cover this piece of code.
CRs-Fixed: 978905
Change-Id: Ifa393c2733e87fcb34aba3e4f4cdb5f534196537
Move all the roaming related timers into a separate file
for easy maintenance and management across different projects
CRs-Fixed: 978905
Change-Id: I3bdbf13d9f962af36d74837bf50be7c9a93e824e
Move the routines which help in building and sending the roaming
related management frames into a separate file for easy
maintenance across different projects
CRs-Fixed: 978905
Change-Id: If8e5cbdabef7747e58359961c3b13c577eb3b777
Move all the reassociation related utilities to a separate
file for easy maintenance across different projects
CRs-Fixed: 978905
Change-Id: I86809ac48659dc91222624fec616bab6533d75dd
Separate the host based roaming MLM code into a separate file
to maintain it easily across different projects
CRs-Fixed: 978905
Change-Id: I1fad25ffbaa49bb2380c32ca9612ad46e3bca65c
Move all the pre-authentication related code in LIM to
a separate file so that it is feature specific and easy to
maintain across different projects
CRs-Fixed: 978905
Change-Id: I3ca443139b974b25be8121fd6df040d858693708
Create separate routines for all the host roaming related
timers and hence they can be compiled out if roaming feature
is not needed
CRs-Fixed: 978905
Change-Id: I29f99a075c72d877fc97f760449e3421ebd64916
Feature WLAN_VOWIFI_DEBUG is not defined. Hence remove it.
Also cleanup the logging.
CRs-Fixed: 960105
Change-Id: I76d83d5d5c93aa7e4669a73c0d3300ed5b727bb1
Revert Change-Id: I1eb4f9dac6520b1ce00cdfc3e0fcef721ae498d6
This change is causing a regression on the UDP SAP -> STA
throughput.
CRs-Fixed: 990954
Change-Id: I09b8b61e70eddc2a85a6b22a186cc2eef0f8510f
During Heart Beat failures, the mlm states are not cleared properly
which resulted in stability issues. Fix it by setting the mlm
states properly during heart beat failure.
Change-Id: Ib54a29758ad31fa95726a59a7118b11931b49970
CRs-Fixed: 967796
There are two utility functions to check if the association
is ESE or not. csr_neighbor_roam_is_ese_assoc() and
csr_roam_is_ese_assoc().
Both serves the same purpose, hence remove csr_neighbor_roam_is_ese_assoc()
and use csr_roam_is_ese_assoc().
Change-Id: I857f9c16eb73a4b0f72e0a622be47ab756fb70f4
CRs-Fixed: 950762
At present and going forward ESE and ESE_UPLOAD will be the
de-facto approach supporting ESE. Hence there is no need of two compile macros
FEATURE_WLAN_ESE and FEATURE_WLAN_ESE_UPLOAD.
Instead Remove FEATURE_WLAN_ESE_UPLOAD and Keep only FEATURE_WLAN_ESE.
Change-Id: If1a04e95211a0d639db7b60a57a6d5f215d26f4e
CRs-Fixed: 950762
Currently channel width has different enum values in
different modules. Move the channel width enum definition
to CDS to maintain single channel width enum value in
the driver
Change-Id: I6a46d0c02546263080a15a3ec7c52486fc51e98e
CRs-Fixed: 983914
- Subsystem restart is not supported in FTM mode
- Do not allow force crash inject command to test SSR in FTM mode
Change-Id: I743aba2082af5537e627b678b159ba9985986e07
CRs-Fixed: 954374
qcacld-2.0 to qcacld-3.0 propagation
Return failure to applications if genie ioctl is invoked to configure
WPS/WPA/RSN IEs with arguments of improper length.
Change-Id: I2e034ef9f2537922be35d46ce266e6b99dab7bb6
CRs-Fixed: 931451
qcacld-2.0 to qcacld-3.0 propagation
Return failure to applications if ioctl is invoked with arguments
of improper length.
Change-Id: I01589f37996510ee130485ef43e1f36811692e28
CRs-Fixed: 930542
Currently, in regulatory callback, we do not update channels
that are out-of-band. For example, if the current band is set
to 2.4 GHz, we do not update channels of 5 GHZ band. Now, if the
band gets changed, the channel list goes wrong. Fix this issue by
updating all the channels and then calling
wlan_hdd_cfg80211_update_band to update wiphy for the current
in-band channels.
Change-Id: If6d6fee01c7a7d6b2aa0f7d3acb862decce0819e
CRs-Fixed: 978660
Add kernel documentation for regdomain data structures. Also
rename some of the data structures to better names.
Change-Id: Iae26079ae8a7f06e2670594694ae36c2c2a0a524
CRs-Fixed: 961806
Correct the definitions from country code to regulatory domains
mappings. Add the missing countries to regulatory domain mappings.
Also streamline the definitions of regulatory domain pairs and
regulatory domains.
Change-Id: I0ff5a13425c6b5d4671864745f6b44a0d16b78aa
CRs-Fixed: 961806
Data structures defined in cds_regdomain_common.h are similar
to those defined in cds_regdomain.h. Therefore remove the file.
Change-Id: I929b03058e9441e4a652314789cf91dbd94d0329
CRs-Fixed: 961806
qcacld-2.0 to qcacld-3.0 propagation.
If back to back connect and disconnect are issued by supplicant,
disconnect ends up queued at the head of roam/sme pending cmd
queue due to its high priority. Thus sme processes the disconnect
command before the connect command making sme and hdd out of sync.
Now if unload is triggered, with hdd in disconnected state,
disconnect is dropped in hdd. Thus no DEL BSS is sent before
HAL STOP leading to firmware crash.
This change removes the roam connect cmd from roam/sme pending list
when disconnect is issued by supplicant.
Change-Id: I34f192b3d549c6179ddc49bba376dbc007efa2c2
CRs-Fixed: 955178
qcacld-2.0 to qcacld-3.0 propagation.
If ADD STA fails for IBSS, sta entry is not cleared from dphHashTable
and gLimIbssPeerList. Thus if same IBSS peer tries to connect again
it fails to connect as driver assume that peer is already connected
as its entry is present in gLimIbssPeerList.
With this change IBSS sta entry is cleared in case ADD STA fails.
Change-Id: I6cc778cf74d91952dfd239d4ca62362b8e95467c
CRs-Fixed: 944480
qcacld-2.0 to qcacld-3.0 propagation
In few APs with power save feature, if no STA is connected, the AP
does not respond to the Auth from STA, unless Auth is sent near to
the AP's CT window. With current implementation host does not
retry the auth and wait for the auth timeout to happen before
returning connect failure.
With this change Host will retry the Auth frame with interval of
3/5 * beacon interval, if no Ack is received for the frame,
until the auth timeout happens.
This increases the probability for the Auth to be received by AP near
to its beacon and thus initiate the connection.
CRs-Fixed: 816177
Change-Id: I51a6032f910b32eb91d67cb078e6434016ae8650
Fix layering violation in wma_get_vht_ch_width by using macros
defined in WMI instead of kernel defined macros.
Use WMI_VHT_CAP_CH_WIDTH_160MHZ and WMI_VHT_CAP_CH_WIDTH_80P80_160MHZ
instead of kernel defined macros.
Change-Id: I7d389c21d8c16fd9528cd06d98f2ec84b84aadf7
CRs-Fixed: 985099
Update dot11f.frms to decode LCI and Fine Time Measurement in
incoming Radio Measurement frames.
Currently we do not have these new types supported leading to
incorrect frame parsing. Adding these types make sure that
incoming radio measurement request frames are unpacked correctly.
Change-Id: I542bb2b782fed144702c372cbfc314c666c72f53
CRs-Fixed: 980863
Fix incorrect struct assignment while handling join request in
SME module.
Fix not to add HT ie in outgoing P2P action frames.
Change-Id: Ic49ca5ca3171be50a16a16281ae68edb35449605
CRs-Fixed: 985273
Instead of using two different enums for setting adapter mode,
combined them to make only one set of enum.
Change-Id: Ic3e7c2944d1b8d66042398c57eb307ab30223524
CRs-Fixed: 985273
Instead of using two different enums for setting adapter mode,
combined them to make only one set of enum.
Change-Id: If408976d5554a50a0023c2a49f80876911fdf1d8
CRs-Fixed: 985273
Instead of using two different enums for setting adapter mode,
combined them to make only one set of enum.
Change-Id: Ia98c4406992c1065850dc70ab3b33c49216d0a24
CRs-Fixed: 985273
Instead of using two different enums for setting adapter mode,
combined them to make only one set of enum.
Change-Id: I62a36b3e4d7f92a6d8b15648645035c6ea7735c2
CRs-Fixed: 985273
Instead of using two different enums for setting adapter mode,
combined them to make only one set of enum.
Change-Id: Iaa945f64dd9f90f6abc0b1716b176fce0971ba71
CRs-Fixed: 985273
Instead of using two different enums for setting adapter mode,
combined them to make only one set of enum.
Change-Id: I963d1d7f854ecdfe8c301cc5c8fc554ce8df4e35
CRs-Fixed: 985273
Instead of using two different enums for setting adapter mode,
combined them to make only one set of enum.
Change-Id: If20617734c5f6f71cef6b85b86d907f8be9d39f9
CRs-Fixed: 985273
Instead of using two different enums for setting adapter mode,
combined them to make only one set of enum.
Change-Id: Ie41244becec39fe1f5f24a721f5b24e137e7fd26
CRs-Fixed: 985273
hdd_adapter_lock is acquired from MC thread and hif_napi soft IRQ
context so it should be acquired using spin_lock_bh such that when
MC thread is holding the lock soft IRQ can't pre-empt it and lead
to deadlock
Change-Id: Iee4a4905bf7cc09cba9bd26f416d505eb47a5c96
CRs-Fixed: 981886
We dont need to set both 80p80 and 160 mhz driver capabilties
in driver. Since 160 is a subset of 80p80 capability; we need to
set only one
Change-Id: I20ea254523bade3ad93e49added35d4bdc1d0509
CRs-Fixed: 985763
Current connection update timeout value for DBS concurrency case
is 500ms, which is not long enough as there are other WMI messages
need to be processed by master thread. Increase the timeout value
to 1000ms to ensure the set hardware mode WMI message has enough
time to be processed
Change-Id: Idecf2e830a7a37258787eb4f8c5f117cbe2a825b
CRs-fixed: 983174
Fix incorrect argument type in lim_chk_assoc_req_parse_error function
Currently uint32_t is passed to the function but this function typecasts
it to uint8_t which results in losing 3 bytes of data. This lead to
incorrect parsing of Assoc request frame.
Change-Id: Ib55f7afa06972234d06edd12098e44608460a10d
CRs-Fixed: 987559
Send channel switch request instead of performing SAP restart when
doing a MCC to SCC switch. This is controlled using the existing INI
item 'gWlanMccToSccSwitchMode'. The new value of '3' will perform
this channel change by sending (E)/CSA whereas the old value of '2'
can still be used to do a channel change by doing SAP restart
Change-Id: I79e7317219503de0a9957940f3cf7a4e91c7a521
CRs-Fixed: 986202
Fix the enum value used while calculating the regulatory class
from the operating channel. Currently, the channel width is of
type 'enum ch_width' whereas the expected enum is of type
'offset_t'. Fixing the same by performing the enum conversion
before calculating the regulatory class to avoid incorrect
value of regulatory class.
Change-Id: I6aabb8ae78836e3c640f41b27e10830adc91a57e
CRs-Fixed: 986246
Enable feature flag FEATURE_WLAN_MCC_TO_SCC_SWITCH in the Kbuild to
make use of the MCC to SCC switch feature. The resulting errors in
compilation are fixed along with some enhancement in the debug logs
in this feature path
Change-Id: I0ddb2f371c28ade6d8fc9ea12ba104a99394827f
CRs-Fixed: 986079
Commit: 6c09e79 ("cfg80211: Allow NL80211_ATTR_IFINDEX to be added
to vendor events")
This commit add parameter wdev to cfg80211_vendor_event_alloc(), that would
be used to check at __cfg80211_alloc_vendor_skb() to assign ifindex to
the skb and is merged in Kernel 4.1, so add a kernel version macro to
support this
Also merge the hdd_vendor_put_ifindex into cfg80211_vendor_event_alloc
to assign the ifindex when wdev is given, that way we can unify the interface.
Change-Id: I321e12bfe3f9160a8a0fcfeb2408f6336d50e2c5
CRs-fixed: 964291
Add support for DFS Master mode NOL channel blacklisting.
In 80+80MHz mode add only the channels to NOL based on the segment
id on which radar has been detected and in 160MHz add all or only
DFS channels skipping the Non-DFS channels, part of the 160MHz bond.
Acked-by: Rakesh Sunki <rsunki@qca.qualcomm.com>
Change-Id: Ie56d14b17997a86e12eacd0ea86cf1742899feb4
CRs-Fixed: 964262
Add support for setting channel width for CSA and modify the
SAP DFS channel width fallback algoritham to support DFS for
80+80Mhz and 160Mhz bandwidth. Also, compile out channel matrix
restriction from channel selection process after radar
indication is received for newer platforms and only compile
for older platforms
Change-Id: I771fc162b18aa1e485c513046a265b2d94612972
CRs-Fixed: 964262
Add support to perform CAC when SAP comes up in 160MHz
or 80+80MHz with any of the 80MHz band is DFS band.
Change-Id: If24d6cd325f747934195598ffe0f456eea939026
CRs-Fixed: 964262
qcacld-2.0 to qcacld-3.0 propagation
As per the current implementation STA is sending Vo tagged data after
delTspec if BMPS disabled.
To fix this issue, make wmmAcAccessAllowed to false in hdd_wmm_delts().
Change-Id: I2351a4fd463e0e80cc7aefa5485046eab491ce45
CRs-Fixed: 967685
Remove obsolete regdomain data structures. Also remove the obsolete
fields from REG_DOMAIN and REG_DMN_PAIR_MAPPING data structures.
Change-Id: I1ff906571dfadf9cf6a4dc963d8eef62acc5f6b5
CRs-Fixed: 961806
Firmware does not require the sub-ctl codes from the host. Therefore,
remove the calculation of sub-ctl codes from the host APIs. Also
remove the associated data structures.
Change-Id: Ib5d5f074b45f2dae2bb9a7c172ee7f8750ad5355
CRs-Fixed: 961806
Define the correct country codes per the data published by the
regulatory compliance team.
Change-Id: I2474acb2657ba1e4a0f62aef013df296aebfcb53
CRs-Fixed: 961806
Functionality for switching antenna mode (TX/RX chains)
from 1x1 to 2x2 and vice versa dynamically without reloading
the driver. This feature is currently supported in the
disconnected state where only scan operation can happen and
standalone station mode.
The changes include the following:
1. Driver command IOCTL to set/get antenna mode as follows
DRIVER SETANTENNAMODE <# of streams>
DRIVER GETANTENNAMODE
2. Processing SETANTENNAMODE and GETANTENNAMODE to dynamically
change the number of TX/RX chains as follows
Dynamic switch request is allowed only when the supported
number of chains in the system is greater than 1.
Dynamic antenna switch is achieved by sending
WMI_PDEV_SET_ANTENNA_MODE command to the FW chain mask
manager with parameters to change the number of TX/RX chains.
This request will be maintained by the chain mask
manager and applied whenever only one MAC is active.
If there is a station association followed by dynamic switch
to 1x1 mode then SM power save IE is included in the HT caps
of the association/reassociation request management frame.
Dynamic switch in the connected standalone station mode is
achieved by sending SMPS force mode command with appropriate
values for smps mode by the chain mask manager.
Change-Id: I65d51d173a627dc2751ef10cc2172a5215e7b8db
CRs-Fixed: 931250
When dynamic antenna selection requests to change the number of
TX/RX chains, the FW chain mask manager will take care of sending
the corresponding SMPS action frames to the AP to put the station
in 1x1 or 2x2 mode. The host driver should only handle setting
the right SMPS mode in the HT capabilities of association
or re-association requests.
CRs-Fixed: 931250
Change-Id: I9bedcc5024a98040f571f730ff084f6fe3e3ad00
If HT SMPS is enabled and if the session supported NSS > 1
then include SMPS IE in the HT capabilities of the association
and the reassociation management frame.Enabling SMPS with an AP
whose capability is only 1x1 will result in association/reassociation
request being rejected or an unexpected behavior. Send SMPS force mode
to FW to trigger SMPS action frame only if SMPS is enabled in the
INI. For dynamic antenna switch, the chain mask manager will send
the SMPS action frames.
CRs-Fixed: 931250
Change-Id: Ifff2ef2c8790994a68e676b8bba2fb03c21370d4
Add support to request for antenna mode to FW to switch from
1x1 to 2x2 and vice versa dynamically and process the response
status of whether the request was sent successfully.
Change-Id: Ie4b0b36981423f9325c48c7ebad445d5cc1f2a21
CRs-Fixed: 931250
Fix potential null pointer access during sap open
session and validation of the session id which could
be reported during static code analysis.
Change-Id: I6146c7223c586df06c08c76abd9e38a3c1ad1c4b
CRs-Fixed: 979960
Avoid message handler of netlink APIs to be OS agnostic. Retain the
message handler to get the concurrency matrix in HDD.
Change-Id: Ieb121512e3d8ae15678da46ed8425c07fd003f69
CRs-Fixed: 946161
Commit: 6bab2e19 ("cfg80211: pass name_assign_type to
rdev_add_virtual_intf)
Above commit add new parameter - name_assign_type to indicate the
ifname is set by userspace or generated by the kernel.
Also add this new param to all underlying interfaces, so that we can
get rid of the conditional flag interleave in APIs but only to the
toppest and lowest one.
Change-Id: I2233391f4e7313cf4134c975e14b6060ad852c5d
CRs-fixed: 966067
qcacld-2.0 to qcacld-3.0 propagation
Currently driver has debug print for EAPOL
but it doesn't tell whether its M1, M2 etc.
As part of fix, add debug print for M1-M4 msg.
Change-Id: I1eb4f9dac6520b1ce00cdfc3e0fcef721ae498d6
CRs-Fixed: 919617
WMI layer is moved to converged repository.
Remove unused WMI layer code from cld3.1 codebase.
Change-Id: I6ca9d468ae9628f6b1d78a53917c9c67994e02dc
CRs-Fixed: 987362
Currently the SME session is deleted during interface change API and
a new session is not opened until SAP is ready to start. This will
cause crash when scan API is invoked. This fix opens the SME session
after interface type is changed, so that it can be used to scan and
SAP later.
Change-Id: I3c4f8da14dbc70a3102fb1892bb101eb1a90a00d
CRs-fixed: 968572
- Add support for 2.4Ghz HT40 STA.
- Add HT40 OBSS scan start and stop operation.
- Add support for extraction of OBSS scan paramters from beacon
and probe response
Change-Id: Idc69d4d17271864c1d3bc2c6e16f25eae73331b0
CRs-Fixed: 947086
- Add support for 2.4Ghz HT40 STA.
- Add HT40 OBSS scan start and stop operation.
- Add support for extraction of OBSS scan paramters from beacon
and probe response.
Change-Id: I58e8d72b8ee922f710af0474ed3efd0438fff3a7
CRs-Fixed: 947086
Redefine dfs filter type to avoid prealloc problem by making one
large chunk into multiple smaller chunks.
With current data structure, dfs attach was requesting huge chunk
of memory from the heap which results in failure. This change set
fixes the issue by modifying the data structure so that one
large chunk is made as multiple smaller chunks.
Change-Id: If944747de63a68d55a83b8595d0a07dd05f53dbe
CRs-Fixed: 975903
qcacld-2.0 to qcacld-3.0 propagation.
Fix incorrect flag setting while sending peer assoc command.
This change set will add a check before setting 40MHZ support bit
and shortGI support bit in the peer flags. If the peer is not HT
capable, these flags should not be set.
Change-Id: I89d43bd86b97637b291dc871aaf7e2a3269df853
CRs-Fixed: 974242
If CONFIG_WLAN_FEATURE_LPSS flag is not enabled, there will be
compilation errors due to missing definitions. Fix them by moving
inline funtions to the corresponding header file.
Change-Id: I90b55daeb0068b2ab40fbb27d650a5382681705c
CRs-fixed: 979523
Re-write part of regulatory code to make more readable.
Rename variables to more intuitive names. Also simplify the
logic.
Change-Id: I4ab896d18a6b5f6e2f9c84884268e2af2077f74b
CRs-Fixed: 856727
40 mhz channel array is redundant and does not give the
correct channel bonding information. Therefore remove
these channels, bonding array, and its associated usage.
Change-Id: I913fb97cdc913b1a027d21b0df526dfd5cd5902f
CRs-Fixed: 856727
Re-arrange core regulatory code between HDD and CDS
layers. Move the OS dependent code to HDD.
Change-Id: I8ac26a48d0e8d613b2f6c23fd764e5cf94365c39
CRs-Fixed: 856727
hdd_indicate_mgmt_frame is defined under CONFIG_CNSS feature flag
which is not defined for MSM8998 SNOC target. Fix this compilation
error by taking out definition of hdd_indicate_mgmt_frame from
CONFIG_CNSS feature flag.
Change-Id: I4b2de5d947ff4fdd21032d6b7e3d5fe4e9eb3eec
CRs-Fixed: 978800
Derive peer from sta id in ol_rx_data_cb to
make sure that peer is still valid before
using peer to avoid NULL pointer dereference
Change-Id: I8f9219d4c6ffbfb207385b08bc704cc0f86a1e1b
CRs-Fixed: 962949
qcacld-2.0 to qcacld-3.0 propagation
Ignore the ack timeout in case of load/unload, as FW is anyways going to
get reset. This handles the CDF_BUG assertion when FW crashed during
driver unload and wma_suspend_target fails to receive ACK for pdev
suspend.
Change-Id: I0883c5161c6db18cf7af2b0c0ca23573ecd985ba
CRs-Fixed: 911696
qcacld-2.0 to qcacld-3.0 propagation
In High dense environment roaming should be triggered early
at dense RSSI threshold which provide better throughput result.
Add support for dense roaming parameters to read from ini file
and send to FW with other roaming parameters
CRs-Fixed: 953579
Change-Id: Ia63bfdd1248b4507d988b019f07164a7c75566af
FW can enter into suspend mode even if the BMPS is not enabled.
Hence the auto PS timer check is not required in suspend request.
Change-Id: Ic2b774cea10516ea0b23141922ba1e16aa33f395
CRs-Fixed: 974918
Fix memory leak in dfs module by removing check for the board id.
During dfs_attach dfs_hw_bd_id was zero, so memory was allocated for
pulses_ext_seg but in wma registration process correct board was
updated. In dfs_detach while freeing the memory we check for the
board id and we leaked the memory for pulses_ext_seg.
Change-Id: Ica9719cc4cd67e895fad850c59c753d39473f46d
CRs-Fixed: 974299
Fix the timeout handler to handle add bss request timeout.
wma_hold_req_timer is not defined to handle WMA_ADD_BSS_REQ. When
WMA_ADD_BSS_REQ times out, no response is sent back to SME which
results in SME command queue stuck. This change set will enable
wma_hold_req_timer to handle add bss request timeout.
Change-Id: I55ec44acafc3af717458134340075b55bca7cddf
CRs-Fixed: 975400
Fix the error in populating oem data capabilities by fixing
incorrect conditional logic.
populate_oem_data_cap API returns zero on success and that
was misinterpreted as failure in the caller. Caller returns
without doing proper assignment.
Change-Id: I579106cb62c08622e8e5ab933747faf671a1d5cd
CRs-Fixed: 975352
Commit: b51f3be ("cfg80211: change bandwidth reporting to explicit field")
Above commit clean up the rate flag and bandwidth info and is merged since
Kernel 4.0.
Remove bandwidth info from rate_info flag, and use a separate bw field
instead.
Change-Id: I655ed919f1069cc04ed71ee1f3d457e228734d33
CRs-fixed: 966065
Commit: 3b06d27 ("cfg80211: Add multiple scan plans for scheduled scan")
Above commit introduces the scan_plan to include the interval parameters,
to support configuring multiple sched scan, and is merged since Kernel 4.4.
Change-Id: I9e232cfd6f82408fb2e21bef905b6e044951089d
CRs-fixed: 966054
Commit: 80279fb ("cfg80211: properly send NL80211_ATTR_DISCONNECTED_BY_AP
in disconnect")
Above commit is merged in Kernel 4.2, it introduces the new parameter
to indicate if the disconnect event is generated locally.
Change-Id: I016df3b400f5f4b8447676882df79fab6915a8f5
CRs-fixed: 966069
Commit: 89c771e ("cfg80211: Convert del_station() callback to
use a param struct")
Commit: 9885686 ("cfg80211: Specify frame and reason code for
NL80211_CMD_DEL_STATION")
These two commits have been merged in Kernel 3.19.
Add a kernel version macro to support this.
And refactor the inclusion of CFG80211_DEL_STA_V2 by adding a
helper function to clean it up, that way we can keep the flag
only in wlan_hdd_cfg80211.h/c as this is the cfg80211 interface
related changes.
Change-Id: I811065b7fa1cf2aee68cfe63c5cf78c2270e5af7
CRs-fixed: 963651
Commit: 319090bf ("cfg80211: remove enum station_info_flags")
The station_info_flags is removed from cfg80211.h since Kernel 4.0.
Since they're duplicate information that's already in nl80211 attributes.
One more small change needed:
* remove STATION_INFO_ASSOC_REQ_IES, nl80211 interface use the length
(assoc_req_ies_len) to check the existence
Change-Id: I9ed324c097ac300c7233f439d71540176744e425
CRs-fixed: 961351
This is qcacld-2.0 to qcacld-3.0 propagation
If cfg80211_mgmt_tx_params.offchan is set, driver need not send ROC
if device is already on correct channel. Check current home channel
of associated adapter and if it is same as target channel requested
skip ROC request and directly send frame over the air.
Change-Id: Ib13a885437a4349702e1706b3a466af262813f8a
CRs-Fixed: 921117
This is qcacld-2.0 to qcacld-3.0 propagation
Fix memory leak at driver unload by freeing memory for lim preauth
timers.
Change-Id: I7be177e6c475a8f8fdc4cc7d2744e34a4bf5dbf5
CRs-Fixed: 960617
Add VENDOR subcmd to support changing of Fine Time Measurement
capability
dynamically. This command can be used by user space application to
change
FTM capability. FTM capability set by user space is intersected with
capability set by firmware to compute new capability value.
Change-Id: I5f3a57e66f2c6a9f3fa8acc7e9da8cb23cb766e3
CRs-Fixed: 968594
This patch fixes multi-level indentation for function
lim_fill_assoc_ind_wapi_info()
Change-Id: I438309425a82bb76c4c31d463b6cead7c661e27b
CRs-Fixed: 824222
This is qcacld-2.0 to qcacld-3.0 propagation.
Fix mem alloc for pre auth timer and add error handling for limInitMlm.
Currently number of preauth timer is taken as cfg param and memory is
allocated in bulk. In case the memory allocation fails, no error is
returned from limInitMlm, which causes undefined behavior. Also preauth
timers do not need contiguous memory allocation, so allocate an array of
pointers instead of single chunk for pre auth timers.
Change-Id: I92677aa9bb7970034630f4c6487fa9d196ccfb4c
CRs-Fixed: 955557
SAP is always coming up in HT20 on 2.4Ghz band even though
hostapd configures HT40 mode.
Remove condition to start BSS only in HT20 for
2.4Ghz channels.
Change-Id: I1e4712ee49bbb079c81a2193e2130d2c846c865f
CRs-Fixed: 970396
Pending scan entries are not cleared during SSR
execution which is causing scan failure after SSR
recovery.
Remove all pendings scans from global scan queue and
send scan complete callback to NL with abort flag set.
Change-Id: Iebffcf56ace59a3ded4df8141caf639c55f0b278
CRs-Fixed: 966580
The ENTER_DEV macro was introduced to log both the function and device
name when a function is entered. Update all cfg80211 vendor command
handlers to use this macro.
Change-Id: I3bb7112c6e5967577fa0f891e0b37ad7412bd2fc
CRs-Fixed: 975826
The ENTER_DEV macro was introduced to log both the function and device
name when a function is entered. Update all STA-mode private
wireless extensions ioctl handlers to use this macro.
Change-Id: I5a69d2a92c82bcf7931350e12ee7610748f5e3ab
CRs-Fixed: 975414
The ENTER_DEV macro was introduced to log both the function and device
name when a function is entered. Update all HostAP-mode private
wireless extensions ioctl handlers to use this macro.
Change-Id: I746788be7dd9a0d5317b483908adde22d96413dc
CRs-Fixed: 975414
The ENTER_DEV macro was introduced to log both the function and device
name when a function is entered. Update all HostAP-mode standard
wireless extensions ioctl handlers to use this macro.
Change-Id: I5cc2ee8c6fbde2778d4153a0dc3d5e509a3bb647
CRs-Fixed: 975414
The ENTER_DEV macro was introduced to log both the function and device
name when a function is entered. Update all STA-mode standard
wireless extensions ioctl handlers to use this macro.
Change-Id: Ia76fb5a471e4e3f03a1b4cd53c95227e6b7a815c
CRs-Fixed: 975414
The ENTER_DEV macro was introduced to log both the function and device
name when a function is entered. Update all control plane netdev
methods to use this macro.
Change-Id: Id73214481616eb34cc40f125ea7fb756b3097dc7
CRs-Fixed: 938146
Currently the HDD code uses a variety of logging APIs. In qcacld-3.0
HDD should converge on a unified set of logging APIs. Update
wlan_hdd_trace.c to use the unified set of APIs.
Change-Id: I41f40000031a6a7203bebfdd4fcf11cc0673a973
CRs-Fixed: 959683
Currently HDD defines an ENTER() macro which is used to log entry into
certain HDD functions. Many of the functions HDD registers with the
kernel are called with either a netdev or wdev parameter. When
logging entry into those functions it would be beneficial to log the
name of the netdev so that in subsequent log analysis we not only know
which functions were called but also know which device was being used.
Introduce a new ENTER_DEV() macro for this purpose which will log both
the function name and the device name.
Change-Id: I32ef2bcc958b8148e6d439b30b21102be144a327
CRs-Fixed: 938146
Fix the reason code used during Nss update request. If
there is MCC upgrade or DBS downgrade, the hw mode change
request internally send the Nss update request. But, the
current implementation uses the same fixed reason code
during Nss update request and due to this on receiving the
hw mode change response, the expected callback function is
not getting invoked. Fix this by passing the right reason
code during Nss update request.
CRs-Fixed: 978663
Change-Id: I706cb9a86d66d8601ec87f560459604e562f6037
Ensure that the session id is sanitized before issuing
the scan request. During the transient stages of a new
interface when no session exists for that interface and
if a scan is received for that particular interface, it
would result in scan with invalid vdev id. Validate the
session id to avoid the same.
Change-Id: Ib22262493a141491d1d86ae682b14113d303685d
CRs-Fixed: 973773
Fix the incorrect value of receive spatial streams added for use
in operating mode field. The Operating Mode field is present in
the Operating Mode Notification frame and Operating Mode
Notification element. These are used to notify STAs that the
transmitting STA is changing its operating channel width, the
maximum number of spatial streams it can receive, or both.
As per the 802.11ac spec:
- If the Rx NSS Type subfield is 0, indicates the maximum number
of spatial streams that the STA can receive.
- If the Rx NSS Type subfield is 1, indicates the maximum number of
spatial streams that the STA can receive as a beamformee in an SU
PPDU using a beamforming steering matrix derived from a VHT
Compressed Beamforming report with Feedback Type subfield
indicating MU in the corresponding VHT Compressed Beamforming
frame sent by the STA.
Set to 0 for Nss = 1
Set to 1 for Nss = 2
...
Set to 7 for Nss = 8
Change-Id: I60cb7259df3986c0356666a357b8a4ef575b7ca4
CRs-Fixed: 973411
Move cdf/cds module related operation from
lim_handle_hw_mode_change_on_csa to cdf_handle_hw_mode_change_on_csa
to keep majority of cdf/cds operation in one place.
Change-Id: I5af9ee941f8430be49cf2e467f9eac77dc09dde4
CRs-Fixed: 972184
Set the hw mode, if needed, during channel switch in STA and
P2P-CLI scenario. The STA/P2P-CLI on receiving the channel change
event may need to do a hw mode change to get the best out of the
hw capabilities.
e.g.1, In a STA+SAP concurrency, the STA and SAP are doing SCC on
channel 6. When the STA interface receives a channel event for
channel 36, it is better the driver moves to a DBS scenario.
e.g.2, In a STA+SAP concurrency, the STA is on channel 6 and the
SAP is on channel 36. When the STA interface receives a channel
event for channel 36, it is better the driver moves from a DBS
scenario to a SCC scenario.
For MCC upgrade, the following steps are taken
1. Opportunistic timer is started
2. vdev restart is initiated on the new channel
3. PM will check if MCC upgrade can be done on timer expiry
For DBS downgrade, the following steps are taken
1. PM will initiate HW mode change to DBS right away
2. vdev restart is initiated on the new channel
Change-Id: I202842bf28c3117e8cc91954cdfd3b39a0062f4e
CRs-Fixed: 972184
qcacld-2.0 to qcacld-3.0 propagation
When self recovery initiated, CRASH_INJECT command is sent to
firmware. If firmware crash doesn't reach the host in time then
RuntimePM may kick in and try to suspend the PCIe link. At this
time, firmware might already been crashed just that host missed
the interrupt. Add the logic to prevent the Runtime suspend when
initiating the recovery so that host driver doesn't attempt the
suspend which may not go through and cause stability issues.
Change-Id: Ie8d5fc6aa08e4864fa5f03119c25037f5aeb5cec
CRs-fixed: 924538
qcacld-2.0 to qcacld-3.0 propagation.
Merge extended capability coming from hostapd and remove it from
extra IE before sending beacon/probe response template to firmware.
Change-Id: Iae50bbf1f70fd280f3366a89e58ad8f2c729720c
CRs-Fixed: 943078
Fix double free of delete sta params by adding appropriate
check in wma_delete_sta.
If the synchronization feature is enabled, memory will be freed
in the wma_peer_delete_handler else memory will be free in
wma_delete_sta.
Change-Id: I40e664f10766faa8a20e9089f1c6b95d490b8658
CRs-Fixed: 971280
Add data length information in oem data response messages. Currently
maximum response size is passed to upper layers.
Change-Id: Id74d44e03755af9a5402e5409ee5f6b5e7abbb7c
CRs-Fixed: 942260
Conditional compilation option WLAN_FEATURE_VOWIFI_11R is always
defined in cld3.0 and underlying code is permanent in the driver.
Hence, remove #ifdef WLAN_FEATURE_VOWIFI_11R check from WMA source
code.
Remove -DWLAN_FEATURE_VOWIFI_11R compilation flag from Kbuild.
CRs-Fixed: 960105
Change-Id: Idbcea2faf9aa31ef62920ef322d6de61378198a6
WoW periodic transmit pattern handler has no error log if
given input format is wrong. Add error log message to indicate
input is wrong and suggest the correct input format.
Change-Id: Ie3a37c7e1a9b9fd8a974c68a5cc7456b1b622168
CRs-Fixed: 973006
Currently WoW debug fs support is limited to 1st interface.
FW supports wow and periodic pattern generation on all
interface types. Extend wow debug fs support to all interfaces.
Change-Id: I83deb1845f921ecf8c5422786e025a051ee3c561
CRs-Fixed: 973003
The self MAC address should be filled from the previous
session in PE and has to be passed to WMA which is used
while creating the new PEER.
CRs-Fixed: 973463
Change-Id: If7f0d4d8400fd8dfcafb08e3795e434621b67a6d
Log the improtant messages with respect to roam synch propagation
by default so that they appear in the kernel logs and give an
hint of roaming. Also ensure not to log too much.
CRs-Fixed: 972498
Change-Id: Ia0bd7c9960a29275f872a9ec18173b8c5a08539a
If roaming is in progress, then there is a good chance to connect
to a better AP very soon, so ignore the sta kickout event that is
received from the firmware.
CRs-Fixed: 947880
Change-Id: I9197ed09a40d9acb706d1bfa535a4eb292a1af74
Do not include replay counter attribute when roaming
is done for CCKM authentication type. For 11R and CCKM
roaming, the re-association frame carries additional
IE's which help cut down the Key exchange post
association. Hence there would be no EAPOL exchange
and hence it is not needed to include the replay
counter attribute to the supplicant after roaming.
CRs-Fixed: 972486
Change-Id: Ib861bdc91e949605788a19df4a706e6544dd4c73
The CB mode could get changed after roaming since the non-AP STA
can roam to an AP which has a different channel bonding mode.
So, derive the CB mode from the IE's and accordingly set in the
connected profile.
CRs-Fixed: 972479
Change-Id: I01daa88d69397fb0e88615656903c43ed623ed38
Current code is using seperate change interface for IBSS and
STA/P2PCLI.
Fix the API such that IBSS/STA/P2PCLI all can use same API.
Change-Id: I7a1d9fa3ef42091fcb7f71d95b604e3dceb8da50
CRs-Fixed: 973626
wma_recreate_ibss_vdev_and_bss_peer is obsoleted API and no longer
needed. Remove this API as part of clean-up efforts.
Change-Id: I277e775b7f44ca5aa05129d45e80c98fe1a53753
CRs-Fixed: 973626
Remove #ifdef WLAN_FEATURE_VOWIFI from host driver source code.
It has alwasys been defined in Kbuild and underlying features
will be permanent in cld3.0. Those features are 11r radio
resource measurement, beacon report, link report, neighbor
report and power constraint.
Please note that WLAN_FEATURE_VOWIFI_11R is used for different
purpose and it is not removed in this change.
CRs-Fixed: 958729
Change-Id: Icd80e9cce08c4662e86ccda94491c1fc22c5756d
Conditional compilation option WLAN_FEATURE_VOWIFI_11R is always
defined in cld3.0 and underlying code is permanent in the driver.
Hence, remove #ifdef WLAN_FEATURE_VOWIFI_11R check from MAC source
code.
CRs-Fixed: 960105
Change-Id: Iae95c169c7e78310d18cbf9ae097501d4c66230c
This patch fixes:
1) Fixes variable names as per linux kernel coding guidelines.
2) Removes PELOG definitions.
3) Fixes few of long debug prints.
4) Fixes function headers
for file lim_process_assoc_req_frame.c. This patch is then used as
base for reindentation of function lim_process_assoc_req_frame()
Change-Id: I5d4a39356b4555789ca9119f54a54766594b26c3
CRs-Fixed: 824222
Log the channel switch and extended channel switch information
element along with the wide channel bandwidth sub element to
debug any channel switch related issues. Since the IEs are
populated only during channel switch, this logging of the IEs
from the beacon should not have any impact in performance.
Change-Id: I7a7e0dcf45f39fb6e4d049dde0b02289bde1d4f7
CRs-Fixed: 972007
Ensure that the PE session is extracted using the SME session id during
Nss update request. The Nss update request carries the SME session id
and not the PE session id. Fixing the implementation by invoking
pe_find_session_by_sme_session_id() to extract the PE session entry
using the SME session id, instead of pe_find_session_by_session_id()
which uses the PE session id.
Change-Id: If388fa917635c7a536d21fcfb664b081babd5c2a
CRs-Fixed: 970802
Update the policy manager table during channel switch in case of
STA/CLI/SAP/P2P-GO mode. The vdev (re)start response carries the
updated vdev parameters such as the new MAC to which the vdev
connection moved to etc.
Change-Id: I55a56acdba8234e09d1439698b2b13751d4e9b2d
CRs-Fixed: 970794
Ensure that application triggered channel switch impacts only the
interface of interest. eSAP_DFS_CHNL_SWITCH_ANNOUNCEMENT_START
gets used for both radar detected channel switch and application
triggered channel switch using ioctl or nl commands. On radar
detected channel switch, if radar was detected by one of the SAP
interface, all SAP interfaces in the driver would vacate the
channel. In application triggered channel switch, only the
interface of interest should vacate the channel.
Change-Id: I8eee8bde89ae44eec31c1bd35a99a78e517b4a5e
CRs-Fixed: 969323
qcacld-2.0 to qcacld-3.0 propagation
When runtime suspend fails because of wma_suspend_req() not
completing in time, PM runtime workqueue posts resume request to
MC thread to clean-up. If MC thread is busy or slow in processing
resume request and after the timeout Runtime PM framework posts
another suspend request then there may be race condition between
MC thread processing resume request (Or even suspend request) and
Runtime PM workqueue posting subsequent suspend request.
Synchronize subsequent suspend request by not allowing the
runtime suspend till resume requests completes in MC thread
context.
Change-Id: Ie9aaf72fbced41f8d23640b9032a3c2236dc6826
CRs-fixed: 921373
WoW is getting enabled even in disconnected state when
PNO, EXT_SCAN or LPASS is not enabled. Enable wow only
when one of interface is in beaconing mode, connected
state or PNO/EXT_SCAN/LPASS is enabled.
Change-Id: I30226700844c9b4adbe3a0659a270b99dc6e66f8
CRs-Fixed: 971738
Ensure that the per vdev rx callback is registered before
registering the peer. The peer registration function may
try to flush the rx frames so we need to ensure that the rx
callback is registered before it is called.
Change-Id: Ibd1d73d89105bbc3f9d29fa2c64e9f515d4b0da5
CRs-Fixed: 1000834
Incremental CLD3.1 Release 5.1.0.1G after relocating
the driver development to new branch and path.
Change-Id: Ib75f16fb56ab6a9306f09377bb3df2094d0fc516
CRs-Fixed: 688141
Incremental CLD3.1 Release 5.1.0.1F after relocating
the driver development to new branch and path.
Change-Id: Ic34b6e6f810f1ab32eaefe0b624b4183b86a43cf
CRs-Fixed: 688141
Core datapath structures should be opaque to non-datapath modules,
remove the references to them.
Change-Id: I3618253566a971c27f16b14923d1ff8028718918
CRs-Fixed: 994638
Changes to register a per vdev tx callback function.
Register a per-vdev transmit function during vdev registration.
The OS interface (HDD) adapter stores this transmit function and
invokes it to transmit data frames.
Change-Id: I1dfe6f58d1d26069dadc2d719fff242c29071bad
CRs-Fixed: 994638
Changes to register a per vdev rx callback function.
Register a per-vdev receive callback function using the vdev registration
API provided by the converged data path API. The changes include
- removing the older method of registering the receive callback
- modify the HDD callback to adhere to the rx callback function defined
by the converged data path API
- modify the invocation of the callback function in the data path
Change-Id: I2aef905132af4b3d7db22c7ec315d114607c9383
CRs-Fixed: 994638
Change the data path and external modules to use the new
converged common data path APIs.
Change-Id: Ifb48178efd012b6ad9ea6f6d5230d0a809922b1c
CRs-Fixed: 994638
Incremental CLD3.1 Release 5.1.0.1E after relocating
the driver development to new branch and path.
Change-Id: I49934210bb4c92f7cf9d700845812e49615af6da
CRs-Fixed: 688141
Add runtime pm enable and delay ini items in hdd.
If runtime pm isn't enabled, the wlan driver will
not perform runtime suspends.
If runtime pm is enabled, the wlan driver will
perform a runtime suspend after delay time in
miliseconds.
Change-Id: I7fa05b9fc1e81bd189e8336efcb3d2977732ed81
CRs-Fixed: 935300
In data path per packet logging is overwriting previous useful
logs. Use HDD data module ID for WMM per packet logging with
debug log level such that by defualt per packet WMM debug log
messages are not logged.
Change-Id: I64053a6d5048a14277e01f35fcb6e0bbf6ac42b9
CRs-Fixed: 969712
Incremental CLD3.1 Release 5.1.0.1D after relocating
the driver development to new branch and path.
Change-Id: Ifc161a74d121e11e9e21c3f2006889de8a5c71b8
CRs-Fixed: 688141
Rename hif_callbacks to hif_driver_state_callbacks and remove
function pointer for monotonic API and fix some minor typos.
Change-Id: Iae2326e26b58a00e4cc197104b31aca36d569a8e
CRs-Fixed: 967765
Incremental CLD3.1 Release 5.1.0.1C after relocating
the driver development to new branch and path.
Change-Id: Icef0cc257781d8baf5f9684ffc08d6808a9bf4d4
CRs-Fixed: 688141
Move tlv formation of wmi vdev start, vdev restart related commands
to common wmi layer from wma layer.
Change-Id: Ic01c9720fd73cb47ea24313c947d6c2a03dbaea4
CRs-Fixed: 987362
Move tlv formation of wmi roam scan commands to common wmi
layer from wma layer.
Change-Id: Iee92f71c6ae7470449f514f60a804a9cf021ccf0
CRs-Fixed: 987362
Move tlv formation of wmi feature related commands to common wmi
layer from wma layer.
Change-Id: Ice267f5fc2b057c0c5e288888c57886a1c61006e
CRs-Fixed: 987362
Move tlv formation of wmi datapath related commands to common wmi
layer from wma layer.
Change-Id: I5f7bf9eb578d0777e131b2b659e64d9365f4faec
CRs-Fixed: 987362
Move tlv formation of wmi peer assoc command to common wmi layer
from wma layer.
CRs-Fixed: 976998
Change-Id: I0562862a7acc16b88bbd295b998397f1acf7973a
Move tlv formation of wmi init and wmi main commands to common wmi
layer from wma layer. Move diag events logs list and saved wmi
init command to wmi handle from of wma handle.
Change-Id: Ie58e10408ea52952021c22f63dd9f3c499e63e74
CRs-Fixed: 976998
Move tlv formation of wmi scan roaming commands to common wmi
layer from wma layer.
Change-Id: I6786ce42d99d6a3f29561c24dea7e3018fb0f3e9
CRs-Fixed: 976998
Move tlv formation of wmi link layer stats commands to common wmi
layer from wma layer.
Change-Id: I58831f16802dc3ca307145654196b7c9238a5e8c
CRs-Fixed: 976998