Praprogation from qcacld-3.0 to qcacld-3.1.
Change skb->sb such that it is overlayed between tx
and rx and each one of then still fits 48 bytes.
Note that this will break IPA and it will be fixed
subsequently by another change.
Change-Id: I96168aee99dbdbecbdbd4259597e179b02d29f5d
CRs-Fixed: 881090
Acked-by: Orhan K AKYILDIZ <oka@qca.qualcomm.com>
propagation from qcacld-3.0 to qcacld-3.1
Changes for TSO clean-up to address:
- conditional compile within function bodies
- change function return value
- convert macro to static inline function, etc
- Enable TSO for SAP mode
Change-Id: I29e764f64f7866d4c016ac31cd701c54526cc75d
CRs-Fixed: 881090
Clean up driver modules to query hif for the handle, instead
of accessing hif context in other modules.
Change-Id: If179255b355916794c9097cf8ff1cbc64ba5df84
CRs-Fixed: 967765
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 HDD source
code.
CRs-Fixed: 960105
Change-Id: Ifdad17f5b85148dfa4bb459939168beec4b5b1cf
Set the maximum active session count to 3. All the sessions may or
may not be in connected state.
Change-Id: I3f348228fbdf787da0e4c954cb243b2252af9524
CRs-Fixed: 967911
The condition #ifdef WLAN_FEATURE_LFR is used to include some of
the roaming code. It has been defined for all the recent driver
builds. Roaming code underneath is permanent part of the driver.
Remove #ifdef FEATURE_WLAN_LFR compiler flag from HDD so that the code
will always be compiled in.
CRs-Fixed: 936683
Change-Id: If5010bc1470a35b2f1516a5c5d10461352fd87fc
Currently Tx beamformee feature is enabled only in STA mode.
Add knob to enable or disable the Tx beamformee feature in SAP
mode
Change-Id: I6ea218b3bff6c973688aad716a3f1a3c8acc469b
CRs-Fixed: 963034
In HDD, hdd_wlan_startup which is called by probe is beast of a
function to maintain. Over time it has grown to such an extent
that it is almost 800 lines of code with in a single function.
Divide the beast into logical smaller functions.
Fix style issues like conditional compilation with in the
function and other minor ones.
Change-Id: Iec2dc3aac934bbb90b87d4e8581e877e5b0a561c
CRs-fixed: 959287
In HDD, hdd_wlan_startup which is called by probe is beast of a
function to maintain. Over time it has grown to such an extent
that it is almost 800 lines of code with in a single function.
Divide the beast into logical smaller functions.
Make separate function to open the interfaces at probe time.
Change-Id: Ia0044f5b0d0f009950d62556e09928ac578a1d4b
CRs-fixed: 959287
In HDD, hdd_wlan_startup which is called by probe is beast of a
function to maintain. Over time it has grown to such an extent
that it is almost 800 lines of code with in a single function.
Divide the beast into logical smaller functions.
This is the first phase of changes to add a separate function to
allocate and initialize HDD context.
Change-Id: I35b6c95c1b09f853e83752123c44e8d21c8af50a
CRs-fixed: 959287
Add new IOCTL 'CHANNEL_SWITCH' which is used to move the operating
channel of SAP/P2P-GO. This IOCTL is supported only for SAP/P2P-GO
and not for STA/P2P-GC.
E.g., format to issue command through wpa_supplicant:
DRIVER CHANNEL_SWITCH <CH> <BW>
- <CH> is channel number to move (1 for ch1, 149 for ch149 etc.)
- <BW> is bandwidth to move (20 for BW 20, 40 for BW 40 etc.)
Change-Id: Ie65f2ceb9ece04053ab32ee60f83fd09cd232f77
CRs-Fixed: 955368
Add support to include channel bandwidth as one of the inputs to
decide the channel switch parameters. Currently only the target channel
is used as the input to decide the channel switch parameters. With this
fix, user specified channel bandwidth is also taken into consideration.
Change-Id: Ic49b24edde6cabc52aa2b38110763da82da6790d
CRs-Fixed: 955368
The current roam sync propagation for LFR3.0 in the host driver is
based on queuing and message processing mechanism. This can lead
to many unknown sequence of operations as there might be other
messages sitting in the queue which may interrupt with this
operation. Hence, it would be good to introduce a callback mechanism
which take care of running the code to execution completely in case
of roam synch propagation.
It also improves to reduce the roam delay by 50 percent as compared
to the existing mechanism.
CRs-Fixed: 962290
Change-Id: I4af569b1e3020a64beb606e8bbffd7613775138f
sched_scan_lock and connection_status_lock's are using spin lock
APIs directly from kernel. Change to use CDF APIs for spin lock.
Change-Id: I0f56624df34682150b402fc36b9dfdba36a598f3
CRs-fixed: 959287
On M2M emulation platform we have a fixed mapping between macs, hence
vdev transition & MCC support is not possible on this platform. But MPR
platform doesn't have these limitations. This config allows at runtime
enable/disable vdev transition & MCC support depending on the platform
it is running on.
Change-Id: I17a92dce695ee30f7994f040d4bc612a38680f3e
CRs-fixed: 922181
qcacld-2.0 to qcacld-3.0 propagation.
If MC thread stall while waiting on any event, In case of WPS,
probe requests may get accumulated in PE message queue.
Now every time MC thread process a probe request,
eWNI_SME_MGMT_FRM_IND msg is posted in SME message queue. But
unless PE queue is fully processed SME queue won't be processed.
This will gradually use all vos message wrapper.
To avoid this register a callback to send management frame
indication directly to HDD from PE which avoids posting message to
SME queue.
Change-Id: Ib83700825112cc52dade594909bfa8993909ac29
CRs-Fixed: 944961
In adrastea multithreaded firmware WMI logging infrastructure
is not yet ready. Disable WMI FW logging for adrastea and enable
it for ROME based targets.
Change-Id: I64c858681f57a2a013fd23bcd9204f59ff638102
CRs-Fixed: 959416
Driver state of loading, unloading, logp are maintained in
multiple modules like HDD, CDS. Change to maintain the driver
state in CDS and provide CDS APIs to find out the state of the
driver so that any of the module can query it.
Also rename the logp to recovery in progress for clarity purpose.
Change-Id: I8e1864e1bc7f3b1dd6f4eb804ce2578c6695967d
CRs-fixed: 958659
qcacld-2.0 to qcacld-3.0 propagation
Add raw rssi in the beacon header from WMI to beacon descriptor.
Pass it up to SME and report it to supplicant through a call to
wlan_hdd_cfg80211_inform_bss_frame().
It can be enabled as a .ini configuration parameter "gInformBssRssiRaw".
Default is 1, it will report raw rssi by default.
Roaming decisions are based on rssi field of beacon descriptor,
its interpretation and usage are unchanged.
CRs-Fixed: 815344
Change-Id: I6dacdc0b333c093d16a74f8cf36471dfc183ce56
qcacld-2.0 to qcacld-3.0 propagation
This change introduces 4 ini parameters to configure to firmware
- gEenableEGAP: forcely overwrite firmware feature capb
- gEGAPInactTime: inactivity timeout value
- gEGAPWaitTime: wait timeout value before enter EGAP mode
- gEGAPFeatures: the feature flag firmware would support
WMI_AP_PS_EGAP_F_ENABLE_PHYERR_DETECTION 0x1
WMI_AP_PS_EGAP_F_ENABLE_PWRSAVE_BY_PS_STATE 0x2
WMI_AP_PS_EGAP_F_ENABLE_PWRSAVE_BY_INACTIVITY 0x4
Integrate the hdd_wlan_kick_green_ap to execute the Green AP
and EGAP features, depending on the ini and also the tgt_cfg
capability flag,
Change-Id: Ic5db3990aa0a028ed700f6e2f60a11e75c0f1ed1
CRs-fixed: 929063
The condition #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING is used to include
some of the roaming code. It has been defined for all the recent driver
builds. Roaming code underneath is permanent part of the driver.
Remove #ifdef WLAN_FEATURE_NEIGHBOR_ROAMING compiler flag from HDD so
that the code will always be compiled in.
CRs-Fixed: 936683
Change-Id: I777d48f26aea36383747281bd4fef2eadc7beefb
qcacld-2.0 to qcacld-3.0 propagation
Currently, MTRACE logs are not captured for the events posted
from SME to HDD. So, add missing MTRACE log in hdd_smeRoamCallback()
and also add missing eRoamCmdStatus enums in get_eRoamCmdStatus_str().
Change-Id: I26ef8c651b7b873939341b643056ff977a40ea19
CRs-Fixed: 855875
This is a qcacld-2.0 to qcacld-3.0 propagation.
A crash was observed internally where wlan_hdd_ipv6_changed() was
accessing unmapped memory. This function has logic which looks at key
fields in the netdev's private data area to make sure the netdev
belongs to this driver before it further utilizes the netdev. The
problem with this logic is when it is invoked with non-wlan netdevs,
if those netdevs were created with small private data areas, then the
offsets at which the key fields would exist in the wlan netdev may
fall outside the memory mapped for those other netdevs. In order to
avoid accessing unmapped memory in those cases, relocate the key wlan
netdev fields to the beginning of the wlan adapter structure.
Change-Id: Idb830fd18e5724a684505c9d110f6f1de5622eac
CRs-Fixed: 946373
Remove the usage of fixed broadcast sta id of 1 for IBSS.
Fixed broadcast std id of 1 was getting used for IBSS since
no concurrency was supported for IBSS earlier and sta id 1
was always used as broadcast sta id. Now with concurrency
being allowed with IBSS, this fixed broadcast sta id cannot
be used. Make the broadcast sta id dynamic.
Change-Id: I79222e276fbdd41a8938a3a26e58af9335f17ade
CRs-Fixed: 953523
Currently the HDD code uses a variety of logging APIs. In qcacld-3.0
HDD should converge on a unified set of logging APIs. Due to the large
number of changes required, this will have to be done in a phased
approach, with conversions occurring one source file at a time.
One potential problem that could occur, in the absence of any
protection, is that once a particular source file has been converted
to the unified set of logging APIs, someone could introduce new code,
either as a new feature or as a change propagation from qcacld-2.0,
which re-introduces invocations of legacy logging APIs. In order to
help prevent this, add conditional compilation to the hddLog() API so
that it will not be available to source files which have been
converted to the unified set of logging APIs. This will cause a
compilation error if hddLog() is called from source files which have
been converted.
Once all of the source files have been converted, the hddLog() macro
itself can be removed from the source code.
Change-Id: I5debb0eb9cd89c08fdfcc4fc117776160ed34501
CRs-Fixed: 949529
We already know kernel version is more than equal to 3.10.
So remove static checks for any previous kernel.
Change-Id: I4e17614fae47782a02dd528c7b4adf3d2802ec69
CRs-Fixed: 920681
In module init, bunch of initializations are done which are not
required till probe call back gets called. Also in module exit,
some clean-up done which should wait till remove call back gets
called. Move the initialization done in module init to probe call back and
clean-up done in module exit to remove call back.
Change-Id: Id4a0cb21300de1ceab8ed043638b735f31d516d4
CRs-fixed: 950170
For statically linked driver, con_mode is used for moving from
machine mode to FTM mode but it has conditional compilation
issues. Fix the conditional compilation to properly compile when
FTM feature is enabled.
Along with it, unify the usage of con_mode such that
curr_con_mode is the variable which holds the connection mode
passed as part of module parameter as well as set by the driver.
Change-Id: I7d6a5c9b82d1dbb727208caca78089d6be357e71
CRs-fixed: 950170
Add an INI item to configure LFR subnet detection feature.
LFR subnet detection is enabled by default.
Change-Id: Ifb4bba60dfcd0347137f4a690db50b0c453d1ae8
CRs-Fixed: 876335
qcacld-2.0 to qcacld-3.0 propagation
Add configuration option for mpdu density through INI. Update
the default value of mpdu density from 0 to 7.
Change-Id: Ib97869d4aec160065c945cd62876d6fd191d63a5
CRs-Fixed: 941182
qcacld-2.0 to qcacld-3.0 propagation.
Current TDLS default teardown interval does not work in
all the scenarios. Hence, change the default teadown
interval to 5 seconds and default TDLS idle packet
threshold to 3 to support all TDLS use cases.
Change-Id: Idf8b4cd02963d24350a1322ac4c7465fbfc7204f
CRs-Fixed: 936003
qcacld-2.0 to qcacld-3.0 propagation.
Add new TDLS mode for TDLS external control operation to
achieve power save on the target. Firmware will use this mode
to control timers precisely and save the power.
Add configuration "gTDLSPeerKickoutThreshold" to fine tune
TDLS peer sta kick out operation.
Change-Id: Ie941f93b54983ca6323ef4384a66e0807a56a7b1
CRs-Fixed: 929749
qcacld-2.0 to qcacld-3.0 propagation.
Firmware uses same notification interval to send trigger to the
driver for both TDLS setup and TDLS teardown operations. In ideal
scenario firmware needs to have an option to configure different
values for TDLS setup and TDLS tear down operations. This change
will enable firmware to have different values for setup and
teardown operations.
Change-Id: I300350c56d4ef23993953338529f29df2ea122a1
CRs-Fixed: 920835
This is a qcacld-2.0 to qcacld-3.0 propagation.
QCACLD firmware already addresses power concern during PNO scanning by
extending fast_scan_period, slow_scan_period and fast_scan_max_cycles
configuration which need to be set by the host driver.
Add the host driver support to do the same.
Description:
1. fast_scan_period: This is the fast PNO scan period. The scan interval time
sent down by the supplicant is assigned to this.
2. fast_scan_max_cycles: This parameter tells firmware to switch from
fast to slow scan period after this many number of fast_scan_periods
has elapsed.
3. slow_scan_period: This is slow PNO scan period with which scan happens
less frequently to save power. Once the FW switches from fast to slow period,
it remains in slow scan period until next PNO Start.
cfg.ini items:
1. Repurpose gPNOScanTimerRepeatValue to fast_scan_max_cycles.
2. Introduce new cfg.ini gPNOSlowScanMultiplier to act as multiplier of
fast_scan_period.
Change-Id: I453f09d42be3228ecc9c5023eca26eae1e589d6a
CRs-Fixed: 902381